POST /api/v1/accounts/me/bots
Parameters
| Name | Location | Details |
|---|---|---|
X-Juicebox-Account | header / required | Enrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists. |
X-Juicebox-Signer | header / required | Owner wallet or authorized bot address that signed this request. |
X-Juicebox-Issued-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time. |
X-Juicebox-Expires-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt. |
X-Juicebox-Nonce | header / required | Fresh random 32-byte lowercase nonce. A consumed nonce cannot be retried. |
X-Juicebox-Signature | header / required | EIP-712 CenterRequest signature over every signed field. Contract-owner signatures may vary in length. This is a computed request proof, not a reusable API key. |
X-Juicebox-Grant | header / optional | Authorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string. |
Idempotency-Key | header / optional | Signed retry identity. Required on plan creation and transaction submission. Preserve exact method, target, Content-Type, and body bytes; use a fresh request nonce and signature. |
Request body
| Field | Type | Details |
|---|---|---|
botAddress | string required | |
scopes | array optional | Cumulative profiles in canonical order: read; read + plan; read + plan + relay. Validation never expands or reorders the signed list. Default: |
expiresAt | integer required | Future Unix seconds, no more than 365 days from server time. |
label | string optional | Default: |
proofSignature | string required | Bot EOA's 65-byte CenterBotProof EIP-712 signature, bound to the owner request nonce and exact grant fields. The bot address must differ from the owner. |
JSON schema
{
"type": "object",
"properties": {
"botAddress": {
"$ref": "#/components/schemas/Address"
},
"scopes": {
"$ref": "#/components/schemas/BotScopes",
"default": [
"read"
]
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "Future Unix seconds, no more than 365 days from server time."
},
"label": {
"type": "string",
"default": "",
"x-maxUtf8Bytes": 120
},
"proofSignature": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{130}$",
"description": "Bot EOA's 65-byte CenterBotProof EIP-712 signature, bound to the owner request nonce and exact grant fields. The bot address must differ from the owner."
}
},
"required": [
"botAddress",
"expiresAt",
"proofSignature"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bot | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"bot": {
"$ref": "#/components/schemas/BotGrant"
}
},
"required": [
"bot"
],
"additionalProperties": false
}