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

Path Parameters

subnet_id
string
required

The unique identifier of the subnet (ULID format). Must match the subnet your API key was created for.

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

Body

application/json
request_id
string
required

The request_id from your connect URL's query string, read from your server-side session.

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

"01ARZ3NDEKTSV4RRFFQ69G5FAV"

nonce
string
required

The nonce from your connect URL's query string, read from your server-side session.

Example:

"Qm3xk7w2Zr9vL1nB8pT4yH6sD0aF5cG2jK8mN1oP3qR"

wallet_address
string
required

The user's Solana wallet address on your subnet (base58, decodes to 32 bytes).

Example:

"HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH"

subnet_user_id
string

Optional. Your own identifier for the user. Truncated to 128 characters. Do not include personal data.

Example:

"user_8f2c1"

wallet_signature
string

Optional. An Ed25519 signature by the user's wallet key over the UTF-8 string bitrobot-connect:<request_id>:<nonce>, base58-encoded. When present, this connection replaces an unproven connection another account holds for the same address on your subnet.

Maximum string length: 128
Example:

"4vJ9JU1bJJE96FbKCbHmJmL8nT2rZ7yQpF1sWx3dGk8mQ2hVnA5cRt7uYbXe1PqLzMw9NfKd3SgHj6TrBv2CaEyU"

Response

Wallet recorded on the request. Redirect the browser to return_url verbatim, fragment included.

status
enum<string>
required
Available options:
success
return_url
string<uri>
required

Redirect the user's browser here verbatim, fragment included. Check that the scheme is http or https first.

Example:

"https://app.bitrobot.ai/connect/callback?request_id=01ARZ3NDEKTSV4RRFFQ69G5FAV#ac=8Kd2mQx7f3RcVn0Pz_s1TgW6bHuJ4eLpAo9iNr-k5Zw"

auth_code
string
required

The authorization code, also present in return_url's fragment. Check for its presence. Never log, display, or store it. Single-use; expires 5 minutes after it is issued.

Example:

"8Kd2mQx7f3RcVn0Pz_s1TgW6bHuJ4eLpAo9iNr-k5Zw"

expires_at
string<date-time>
required

When the connect request expires: 30 minutes after the user pressed Connect next to your subnet on their BitRobot profile page.

Example:

"2026-09-02T10:30:00Z"