Skip to main content
POST

Authorizations

Authorization
string
header
required

API key authentication. Your API key should start with brb_.

Example: Authorization: Bearer brb_1234567890abcdef

Headers

Idempotency-Key
string

Optional replay key, unique per event attempt. Repeating a request with the same key within 24 hours replays the stored response (with an Idempotency-Replayed: true header) instead of creating a second event; a different body under the same key answers 409.

Maximum string length: 255

Path Parameters

subnet_id
string
required

The unique identifier of the subnet (ULID format)

Pattern: ^[0-9A-HJKMNP-TV-Z]{26}$

Body

application/json
event_type
enum<string>
required

The type of event

Available options:
register_resource
resource_name
string
required

The name of the resource to register. ENT resource names are limited to 32 characters (on-chain NFT name limit); longer names are rejected with 422.

Maximum string length: 32
Example:

"bot_001"

resource_subtype
string
required

The subtype of the resource (e.g., 'frodobot', 'delivery-drone', etc.)

Example:

"frodobot"

owner
string
required

The Solana wallet address of the resource owner. Used to create a wallet record in the system and associate it with the resource for reward tracking. Required.

Example:

"HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH"

resource_type
enum<string>
default:ent

The type of resource to register. Use 'ent' (default) for full ENT NFT resources, or 'resource' for lightweight non-NFT participants that still earn rewards.

Available options:
ent,
resource
ent_owner_email
string<email> | null

Email address of the resource owner. Required on subnets that pay VRW points to email identities whenever the resource is created by name, or is referenced by resource_id but has no owner yet; a resource that already has an owner needs no identity. Optional on other subnets (recorded for attribution). Mutually exclusive with ent_owner_discord_id. The address is resolved to a BitRobot account (a placeholder is created for an unknown address) and VRW points for this resource go to that account.

ent_owner_discord_id
string | null

Discord user ID (snowflake) of the resource owner. Required on subnets that pay VRW points to Discord identities, under the same rules as ent_owner_email. Mutually exclusive with ent_owner_email.

Example:

"1471164890898104436"

ent_metadata
object

Metadata for the ENT (Entity NFT) that represents this resource on-chain, following the Metaplex token standard. Provide this alongside ent_owner (on task_start) or owner (on register_resource) to mint a named, attributed NFT. If omitted, a placeholder metadata URI is used.

Example:

Response

Event created successfully. The response data contains different fields depending on the event type - see examples for details. A points_revoke event that files a reversal request instead of revoking, or finds one pending, returns 202. Sending a points_revoke again with the client_ref of a reversal request a BitRobot admin has decided returns 200 with outcome reversal_approved or reversal_rejected.

status
enum<string>
required
Available options:
success
Example:

"success"

data
object
required