Build with Juicebox.
Read projects, prepare transactions, and follow results across chains. Start with a public request or connect your app in a few steps.
Your first request
Explore supported chains and execution options. No account required.
curl https://juicebox.center/api/v1/capabilitiesFor protected requests, create an API connection, download its file, and install the client:
npm install https://juicebox.center/api/client/juicebox-center-client-0.1.0.tgz
chmod 600 juicebox-connection.json
npx center account --connection juicebox-connection.jsonThe client handles authentication. Your wallet separately approves spending.
Choose a data source
- Read the blockchain: find the deployed contract and its interface (ABI), then call a read-only method. Results identify the verified block they describe.
- Search history: Bendystraw collects blockchain records into a searchable index. Choose real funds (
mainnet) or test funds (testnet), filter to V6, and use the returned cursor to get the next page. Pages may reflect different blocks. - Use a named operation: choose a project or developer task from the operations catalog and follow its required input format, called a schema.
Project routes require source=onchain or source=bendystraw. Keep amounts and large integers as decimal strings. If a value could not be read, report it as unknown.
Prepare → review → sign → check
- Create a saved set of proposed transactions: a plan. Use a named preparation or
contract_calls. Sign the API request and include anIdempotency-Keyso a retry can find the same result. - Review the exact chain, recipient, encoded instructions (calldata), native token amount, required earlier steps, block evidence, plan commitment and expiry. Test each ready step with a simulation.
- Have the plan wallet sign the exact transaction. Submit those signed bytes with a fresh owner-signed API request, or a bot request carrying the owner’s exact approval.
- Retrieve the plan with
refresh=trueto check what happened. Continue only when required earlier steps are confirmed. Check an uncertain submission by its existing transaction hash before retrying.
API access does not let a bot spend the owner's funds. Check capabilities for supported ways to send transactions and pay network costs. Steps on different chains can succeed or fail separately; confirmation on the sending chain does not prove funds arrived on the receiving chain.
Plans, retries, confirmations and partial journeys / Session lifecycle and quotas
Prepay for transactions across chains
Prepare calls on supported chains and pay their network costs together. Center returns the exact calls for your wallet to approve, submits them, and prepares one funding transaction from the verified quote. Review and sign the funding transaction, then follow progress through Center.
Check whether funding already arrived before paying again. Verify each call on its destination chain; a quote or provider status alone does not prove payment or success. See the full guide and agent workflow.
Use one wallet address across networks
On Accounts, choose the networks for a separate transaction wallet. Review the shared setup and approve creation on each network. Then add prepared transactions to one review list and follow each network's result. Balances and permissions remain separate on each network. Your signed-in wallet pays the creation fees; supported later transactions can use sponsored network fees.
For unattended payments, approve a bot's allowed action, recipient, spending limits and expiry once on each network. After activation confirms, the bot can sign and send within those permissions without further owner prompts. Check sessions.configuredChainIds for networks where activation is available. Changes to the limits and transactions outside them need owner approval.
Wallet setup guide / Run an unattended payment / Current capabilities
Endpoint reference
Expand a group, then an endpoint. The OpenAPI document contains exact parameters and schemas; the contract method catalog supplies ABI-specific argument and output schemas.
Discovery (9)
Public, pinned schemas and current capability discovery.
GET/api/v1 public
Find API entry points
Response 200
| Field | Type | Details |
|---|---|---|
version | value required | Values: |
protocolVersion | integer required | Values: |
documentation | string required | |
openapi | string required | |
accounts | string required | |
capabilities | string required |
JSON schema
{
"type": "object",
"properties": {
"version": {
"const": "1"
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"documentation": {
"type": "string"
},
"openapi": {
"type": "string"
},
"accounts": {
"type": "string"
},
"capabilities": {
"type": "string"
}
},
"required": [
"version",
"protocolVersion",
"documentation",
"openapi",
"accounts",
"capabilities"
],
"additionalProperties": false
}operationId: apiDiscovery
GET/api/v1/openapi.json public
Read this OpenAPI 3.1.2 document
Response 200
object
JSON schema
{
"type": "object",
"required": [
"openapi",
"info",
"paths"
],
"additionalProperties": true
}operationId: getOpenApi
GET/api/v1/capabilities public
Check enabled transports, chains and limits
Read before planning. Per-chain relay, confirmation and sponsorship availability is runtime configuration. Unsupported smart-account or session mechanisms are not implied by a bot grant.
Response 200
| Field | Type | Details |
|---|---|---|
version | value required | Values: |
protocolVersion | integer required | Values: |
audience | string (uri) required | |
authentication | object required | |
chains | array required | |
limits | object required | |
transactions | object required | |
sponsorship | object required | |
userOperations | one of required | |
sessions | one of required | |
smartAccounts | one of required | |
omnichain | object required | |
sources | object required | |
catalogs | object required |
JSON schema
{
"type": "object",
"properties": {
"version": {
"const": "1"
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"audience": {
"type": "string",
"format": "uri"
},
"authentication": {
"type": "object",
"additionalProperties": true
},
"chains": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"limits": {
"type": "object",
"additionalProperties": true
},
"transactions": {
"type": "object",
"additionalProperties": true
},
"sponsorship": {
"type": "object",
"additionalProperties": true
},
"userOperations": {
"anyOf": [
{
"$ref": "#/components/schemas/UserOperationCapabilities"
},
{
"type": "object",
"properties": {
"state": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"state"
],
"additionalProperties": false
}
]
},
"sessions": {
"anyOf": [
{
"$ref": "#/components/schemas/SessionCapabilities"
},
{
"type": "object",
"properties": {
"state": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"state"
],
"additionalProperties": false
}
]
},
"smartAccounts": {
"anyOf": [
{
"$ref": "#/components/schemas/SmartAccountCapabilities"
},
{
"type": "object",
"properties": {
"state": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"state"
],
"additionalProperties": false
}
]
},
"omnichain": {
"type": "object",
"additionalProperties": true
},
"sources": {
"type": "object",
"additionalProperties": true
},
"catalogs": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"version",
"protocolVersion",
"audience",
"authentication",
"chains",
"limits",
"transactions",
"sponsorship",
"userOperations",
"sessions",
"smartAccounts",
"omnichain",
"sources",
"catalogs"
],
"additionalProperties": false
}operationId: getCapabilities
GET/api/v1/catalog/contracts public
Browse the complete pinned V6 contract inventory
Parameters
| Name | Location | Details |
|---|---|---|
packageId | query / optional | string
|
category | query / optional | string
|
chainId | query / optional | integer
|
deployedOnly | query / optional | boolean |
executableOnly | query / optional | boolean |
offset | query / optional | integer |
limit | query / optional | integer |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||
packages | array required | |||||||||||||||||||||||||||||||||||||||||||||||||
exclusions | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
total | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
nextOffset | one of required |
JSON schema
{
"type": "object",
"properties": {
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"packages": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"exclusions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"path",
"reason"
],
"additionalProperties": false
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"packageId": {
"type": "string"
},
"category": {
"type": "string"
},
"executable": {
"type": "boolean"
},
"methodCounts": {
"type": "object",
"properties": {
"read": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"write": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"read",
"write"
],
"additionalProperties": false
},
"chains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"status": {
"type": "string",
"enum": [
"published",
"missing"
]
},
"addresses": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Address"
}
},
"instances": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"$ref": "#/components/schemas/Address"
},
"retired": {
"type": "boolean",
"description": "Historical artifact retained for decoding; not a default destination."
},
"generation": {
"type": "string",
"enum": [
"current",
"previous",
"v1"
],
"description": "Router/buyback release generation, independent of chain or project migration."
}
},
"required": [
"address",
"retired"
],
"additionalProperties": false
}
}
},
"required": [
"chainId",
"status",
"addresses",
"instances"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"name",
"packageId",
"category",
"executable",
"methodCounts",
"chains"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"nextOffset": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"protocolVersion",
"provenance",
"packages",
"exclusions",
"items",
"total",
"nextOffset"
],
"additionalProperties": false
}operationId: listContracts
GET/api/v1/catalog/contract public
Read all ABI variants, methods and deployments of one contract type
Parameters
| Name | Location | Details |
|---|---|---|
id | query / required | Qualified package:source-path:contract-name ID from /catalog/contracts. |
Response 200
object
JSON schema
{
"type": "object",
"required": [
"id",
"packageId",
"sourcePath",
"name",
"category",
"executable",
"abi",
"abiHash",
"methods",
"variants",
"deployments",
"cloneFamilies"
],
"additionalProperties": true
}operationId: getContractCatalogEntry
GET/api/v1/catalog/method public
Read exact method argument and output JSON schemas
Parameters
| Name | Location | Details |
|---|---|---|
contractId | query / required | string |
signature | query / required | Full canonical signature, including expanded tuple types. |
abiHash | query / optional | Use the resolved deployment ABI hash; omission selects the catalog default. |
Response 200
| Field | Type | Details |
|---|---|---|
signature | string required | |
selector | one of required | |
name | string required | |
stateMutability | string required | Values: |
kind | string required | Values: |
inputs | array required | |
outputs | array required | |
inputJsonSchema | object required | |
outputJsonSchema | object required |
JSON schema
{
"type": "object",
"properties": {
"signature": {
"type": "string"
},
"selector": {
"anyOf": [
{
"type": "string",
"pattern": "^0x[0-9a-fA-F]{8}$"
},
{
"type": "null"
}
]
},
"name": {
"type": "string"
},
"stateMutability": {
"type": "string",
"enum": [
"view",
"pure",
"nonpayable",
"payable"
]
},
"kind": {
"type": "string",
"enum": [
"read",
"write"
]
},
"inputs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"outputs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"inputJsonSchema": {
"type": "object",
"additionalProperties": true
},
"outputJsonSchema": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"signature",
"selector",
"name",
"stateMutability",
"kind",
"inputs",
"outputs",
"inputJsonSchema",
"outputJsonSchema"
],
"additionalProperties": false
}operationId: getContractMethodSchema
GET/api/v1/catalog/indexer public
Discover V6 tables, filters and selectable fields
Response 200
object
JSON schema
{
"type": "object",
"required": [
"protocolVersion",
"source",
"limits",
"networks",
"semantics",
"entities",
"metadata"
],
"additionalProperties": true
}operationId: getIndexerCatalog
GET/api/v1/catalog/operations public
Discover semantic operations and exact input schemas
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operations | array required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"operations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OperationDescriptor"
}
}
},
"required": [
"operations"
],
"additionalProperties": false
}operationId: listOperationDescriptors
GET/api/v1/catalog/operations/{id} public
Read one semantic operation descriptor
Parameters
| Name | Location | Details |
|---|---|---|
id | path / required | string
|
Response 200
| Field | Type | Details | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
id | string required | ||||||||||
description | string required | ||||||||||
kind | string required | Values: | |||||||||
sources | array required | ||||||||||
transaction | boolean required | ||||||||||
effects | object required | Fields
| |||||||||
inputJsonSchema | object required | ||||||||||
method | string required | Values: | |||||||||
path | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"read",
"prepare",
"reference",
"metadata-write"
]
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"transaction": {
"type": "boolean"
},
"effects": {
"type": "object",
"properties": {
"externalMutation": {
"type": "boolean"
},
"idempotent": {
"type": "boolean"
}
},
"required": [
"externalMutation",
"idempotent"
],
"additionalProperties": false
},
"inputJsonSchema": {
"type": "object",
"additionalProperties": true
},
"method": {
"type": "string",
"enum": [
"GET",
"POST"
]
},
"path": {
"type": "string"
}
},
"required": [
"id",
"description",
"kind",
"sources",
"transaction",
"effects",
"inputJsonSchema",
"method",
"path"
],
"additionalProperties": false
}operationId: getOperationDescriptor
Accounts (6)
Owner enrollment, profile replacement and bounded bot API grants.
POST/api/v1/accounts/enroll owner signature
Enroll the signing owner account
Sign before the account exists. Body is exactly an empty JSON object. Enrollment uses the owner's EIP-712 request signature and performs no blockchain transaction. Account routes reject query strings and cap bodies at 65536 bytes.
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
object
JSON schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
account | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
}
},
"required": [
"account"
],
"additionalProperties": false
}operationId: enrollAccount
GET/api/v1/accounts/me signed read
Read the authenticated account profile
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. |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
account | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
}
},
"required": [
"account"
],
"additionalProperties": false
}operationId: getAccount
PATCH/api/v1/accounts/me owner signature
Replace the owner's profile fields
Omitted fields reset to defaults. This endpoint does not implement transaction idempotency.
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 |
|---|---|---|
displayName | string optional | Default: |
bio | string optional | Default: |
avatarUri | one of optional | Default: |
JSON schema
{
"type": "object",
"properties": {
"displayName": {
"type": "string",
"default": "",
"x-maxUtf8Bytes": 120
},
"bio": {
"type": "string",
"default": "",
"x-maxUtf8Bytes": 2000
},
"avatarUri": {
"anyOf": [
{
"type": "string",
"pattern": "^(?:https|ipfs)://",
"x-maxUtf8Bytes": 2048
},
{
"type": "null"
}
],
"default": null
}
},
"additionalProperties": false,
"description": "Replaces the profile. Omitted `displayName`/`bio` reset to empty strings; omitted `avatarUri` resets to null."
}Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
account | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
}
},
"required": [
"account"
],
"additionalProperties": false
}operationId: replaceProfile
GET/api/v1/accounts/me/bots owner signature
List the owner's API bot grants
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. |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bots | array required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"bots": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BotGrant"
}
}
},
"required": [
"bots"
],
"additionalProperties": false
}operationId: listBots
POST/api/v1/accounts/me/bots owner signature
Register a bot possession proof and expiring API grant
The owner signs the whole registration request; the bot separately signs CenterBotProof bound to that owner's request nonce. Grants authorize API scopes only. No bot key is uploaded.
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
}operationId: registerBot
DELETE/api/v1/accounts/me/bots/{grantId} owner signature
Revoke the owner's bot grant
Revocation prevents new dispatch claims. A bounded request already admitted under its durable claim may finish.
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. |
grantId | path / required | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bot | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"bot": {
"$ref": "#/components/schemas/BotGrant"
}
},
"required": [
"bot"
],
"additionalProperties": false
}operationId: revokeBot
Contracts (2)
Exact V6 deployment ABI resolution and canonical onchain reads.
GET/api/v1/protocol/resolve signed read
Resolve a V6 target and inspect its provenance
The chain and mined canonical block hash are verified. Unknown addresses require a supported factory and canonical association proof. Source-only catalog entries do not establish deployments.
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. |
chainId | query / required | integer
|
contractId | query / required | string |
address | query / optional | string |
projectId | query / optional | Positive project ID when supported by the canonical association adapter. |
blockNumber | query / optional | uint256 as a lossless decimal string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
contractId | string required | ||||||||||||||||||||||||||||||||||||||||||||||
address | string required | ||||||||||||||||||||||||||||||||||||||||||||||
abiHash | string required | ||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | Inspect the verification level. Published address plus observed runtime hash is weaker than source-to-runtime equality. Clone proofs additionally bind the implementation, factory, and modeled canonical association.Fields
| |||||||||||||||||||||||||||||||||||||||||||||
evidence | array required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"contractId": {
"type": "string"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"abiHash": {
"$ref": "#/components/schemas/Sha256"
},
"provenance": {
"$ref": "#/components/schemas/ProtocolProvenance"
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BlockEvidence"
},
"minItems": 1,
"maxItems": 1
}
},
"required": [
"chainId",
"contractId",
"address",
"abiHash",
"provenance",
"evidence"
],
"additionalProperties": false
}operationId: resolveContract
GET/api/v1/protocol/read signed read
Call an exact view or pure method on a verified V6 target
The same canonical block hash is used for resolution and the ABI call. Payable/nonpayable methods are rejected here; prepare them as reviewed calls.
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. |
chainId | query / required | integer
|
contractId | query / required | string |
address | query / optional | string |
projectId | query / optional | Positive project ID when supported by the canonical association adapter. |
blockNumber | query / optional | uint256 as a lossless decimal string |
function | query / required | Full canonical function signature from the resolved deployment ABI. |
args | query / required | Positional arguments validated against the exact ABI. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
contractId | string required | ||||||||||||||||||||||||||||||||||||||||||||||
address | string required | ||||||||||||||||||||||||||||||||||||||||||||||
function | string required | ||||||||||||||||||||||||||||||||||||||||||||||
args | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
outputs | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | Inspect the verification level. Published address plus observed runtime hash is weaker than source-to-runtime equality. Clone proofs additionally bind the implementation, factory, and modeled canonical association.Fields
| |||||||||||||||||||||||||||||||||||||||||||||
evidence | array required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"contractId": {
"type": "string"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"function": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"$ref": "#/components/schemas/JsonValue"
}
},
"outputs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"type": {
"type": "string"
},
"value": {
"$ref": "#/components/schemas/JsonValue"
}
},
"required": [
"name",
"type",
"value"
],
"additionalProperties": false
}
},
"provenance": {
"$ref": "#/components/schemas/ProtocolProvenance"
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BlockEvidence"
},
"minItems": 1,
"maxItems": 1
}
},
"required": [
"chainId",
"contractId",
"address",
"function",
"args",
"outputs",
"provenance",
"evidence"
],
"additionalProperties": false
}operationId: readContract
Indexer (114)
V6 Bendystraw state and event tables with explicit network and cursor scope.
GET/api/v1/indexer/status signed read
Inspect indexer progress for a network
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. |
network | query / required | string
|
Response 200
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
network | string required | Values: | ||||||||||||
protocolVersion | integer required | Values: | ||||||||||||
chains | array required | Fields
| ||||||||||||
provenance | object required | |||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"chains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"block": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"timestamp": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"chainId",
"block",
"timestamp"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 8
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"network",
"protocolVersion",
"chains",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: getIndexerStatus
GET/api/v1/indexer/{entity} signed read
List a supported versioned indexer entity
Use nextCursor until null. Keep network, scope, fields, filters and order unchanged between pages. Pages are not a block-hash snapshot; concurrent indexing can change results. V6 is enforced server-side.
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. |
entity | path / required | string
|
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | ||||||||||||||||
network | string required | Values: | |||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||
items | array required | ||||||||||||||||
totalCount | integer required | ||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||
nextCursor | one of required | ||||||||||||||||
provenance | object required | ||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexerEntity
GET/api/v1/indexer/{entity}/record signed read
Read one exact indexer record
The _meta record accepts only network and returns item.chains. Other entities use their published primary key and selection schema.
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. |
entity | path / required | string
|
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | Exact key names are in the entity's singleArgs catalog entry; version is fixed to 6. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexerEntity
GET/api/v1/indexer/_meta/record signed read
Read network indexing progress as a metadata record
Only network is accepted. Progress is an indexer observation; it does not pin subsequent table queries to one canonical block.
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. |
network | query / required | string
|
Response 200
| Field | Type | Details | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||
network | string required | Values: | ||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||
item | object required | Fields
| ||||||||||||||||||
provenance | object required | |||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "_meta"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"type": "object",
"properties": {
"chains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"block": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"timestamp": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"chainId",
"block",
"timestamp"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 8
}
},
"required": [
"chains"
],
"additionalProperties": false
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexerMetadata
GET/api/v1/indexer/_sucker signed read
List _sucker records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||
network | string required | Values: | ||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||
totalCount | integer required | |||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||
provenance | object required | |||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "_sucker"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow__sucker"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer__sucker
GET/api/v1/indexer/_sucker/record signed read
Read one _sucker record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "_sucker"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow__sucker"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer__sucker
GET/api/v1/indexer/accountingSyncEvent signed read
List accountingSyncEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "accountingSyncEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_accountingSyncEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_accountingSyncEvent
GET/api/v1/indexer/accountingSyncEvent/record signed read
Read one accountingSyncEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "accountingSyncEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_accountingSyncEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_accountingSyncEvent
GET/api/v1/indexer/activityEvent signed read
List activityEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "activityEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_activityEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_activityEvent
GET/api/v1/indexer/activityEvent/record signed read
Read one activityEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "activityEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_activityEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_activityEvent
GET/api/v1/indexer/addNftTierEvent signed read
List addNftTierEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "addNftTierEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_addNftTierEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_addNftTierEvent
GET/api/v1/indexer/addNftTierEvent/record signed read
Read one addNftTierEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "addNftTierEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_addNftTierEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_addNftTierEvent
GET/api/v1/indexer/addToBalanceEvent signed read
List addToBalanceEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "addToBalanceEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_addToBalanceEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_addToBalanceEvent
GET/api/v1/indexer/addToBalanceEvent/record signed read
Read one addToBalanceEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "addToBalanceEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_addToBalanceEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_addToBalanceEvent
GET/api/v1/indexer/autoIssueEvent signed read
List autoIssueEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "autoIssueEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_autoIssueEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_autoIssueEvent
GET/api/v1/indexer/autoIssueEvent/record signed read
Read one autoIssueEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "autoIssueEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_autoIssueEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_autoIssueEvent
GET/api/v1/indexer/borrowLoanEvent signed read
List borrowLoanEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "borrowLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_borrowLoanEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_borrowLoanEvent
GET/api/v1/indexer/borrowLoanEvent/record signed read
Read one borrowLoanEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "borrowLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_borrowLoanEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_borrowLoanEvent
GET/api/v1/indexer/bridgeClaimEvent signed read
List bridgeClaimEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "bridgeClaimEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_bridgeClaimEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_bridgeClaimEvent
GET/api/v1/indexer/bridgeClaimEvent/record signed read
Read one bridgeClaimEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "bridgeClaimEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_bridgeClaimEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_bridgeClaimEvent
GET/api/v1/indexer/bridgeToOutboxEvent signed read
List bridgeToOutboxEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "bridgeToOutboxEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_bridgeToOutboxEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_bridgeToOutboxEvent
GET/api/v1/indexer/bridgeToOutboxEvent/record signed read
Read one bridgeToOutboxEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "bridgeToOutboxEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_bridgeToOutboxEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_bridgeToOutboxEvent
GET/api/v1/indexer/bridgeToRemoteEvent signed read
List bridgeToRemoteEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "bridgeToRemoteEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_bridgeToRemoteEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_bridgeToRemoteEvent
GET/api/v1/indexer/bridgeToRemoteEvent/record signed read
Read one bridgeToRemoteEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "bridgeToRemoteEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_bridgeToRemoteEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_bridgeToRemoteEvent
GET/api/v1/indexer/burnEvent signed read
List burnEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "burnEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_burnEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_burnEvent
GET/api/v1/indexer/burnEvent/record signed read
Read one burnEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "burnEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_burnEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_burnEvent
GET/api/v1/indexer/buybackPool signed read
List buybackPool records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPool"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_buybackPool"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_buybackPool
GET/api/v1/indexer/buybackPool/record signed read
Read one buybackPool record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPool"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_buybackPool"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_buybackPool
GET/api/v1/indexer/buybackPoolEvent signed read
List buybackPoolEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_buybackPoolEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_buybackPoolEvent
GET/api/v1/indexer/buybackPoolEvent/record signed read
Read one buybackPoolEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_buybackPoolEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_buybackPoolEvent
GET/api/v1/indexer/buybackPoolLiquidityEvent signed read
List buybackPoolLiquidityEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolLiquidityEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_buybackPoolLiquidityEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_buybackPoolLiquidityEvent
GET/api/v1/indexer/buybackPoolLiquidityEvent/record signed read
Read one buybackPoolLiquidityEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolLiquidityEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_buybackPoolLiquidityEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_buybackPoolLiquidityEvent
GET/api/v1/indexer/buybackPoolPosition signed read
List buybackPoolPosition records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolPosition"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_buybackPoolPosition"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_buybackPoolPosition
GET/api/v1/indexer/buybackPoolPosition/record signed read
Read one buybackPoolPosition record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolPosition"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_buybackPoolPosition"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_buybackPoolPosition
GET/api/v1/indexer/buybackPoolRange signed read
List buybackPoolRange records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolRange"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_buybackPoolRange"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_buybackPoolRange
GET/api/v1/indexer/buybackPoolRange/record signed read
Read one buybackPoolRange record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "buybackPoolRange"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_buybackPoolRange"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_buybackPoolRange
GET/api/v1/indexer/cashOutTaxSnapshot signed read
List cashOutTaxSnapshot records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "cashOutTaxSnapshot"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_cashOutTaxSnapshot"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_cashOutTaxSnapshot
GET/api/v1/indexer/cashOutTaxSnapshot/record signed read
Read one cashOutTaxSnapshot record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "cashOutTaxSnapshot"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_cashOutTaxSnapshot"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_cashOutTaxSnapshot
GET/api/v1/indexer/cashOutTokensEvent signed read
List cashOutTokensEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "cashOutTokensEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_cashOutTokensEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_cashOutTokensEvent
GET/api/v1/indexer/cashOutTokensEvent/record signed read
Read one cashOutTokensEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "cashOutTokensEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_cashOutTokensEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_cashOutTokensEvent
GET/api/v1/indexer/decorateBannyEvent signed read
List decorateBannyEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "decorateBannyEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_decorateBannyEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_decorateBannyEvent
GET/api/v1/indexer/decorateBannyEvent/record signed read
Read one decorateBannyEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "decorateBannyEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_decorateBannyEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_decorateBannyEvent
GET/api/v1/indexer/deployErc20Event signed read
List deployErc20Event records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "deployErc20Event"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_deployErc20Event"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_deployErc20Event
GET/api/v1/indexer/deployErc20Event/record signed read
Read one deployErc20Event record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "deployErc20Event"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_deployErc20Event"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_deployErc20Event
GET/api/v1/indexer/inboxRootReceivedEvent signed read
List inboxRootReceivedEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "inboxRootReceivedEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_inboxRootReceivedEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_inboxRootReceivedEvent
GET/api/v1/indexer/inboxRootReceivedEvent/record signed read
Read one inboxRootReceivedEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "inboxRootReceivedEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_inboxRootReceivedEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_inboxRootReceivedEvent
GET/api/v1/indexer/liquidateLoanEvent signed read
List liquidateLoanEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "liquidateLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_liquidateLoanEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_liquidateLoanEvent
GET/api/v1/indexer/liquidateLoanEvent/record signed read
Read one liquidateLoanEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "liquidateLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_liquidateLoanEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_liquidateLoanEvent
GET/api/v1/indexer/loan signed read
List loan records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "loan"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_loan"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_loan
GET/api/v1/indexer/loan/record signed read
Read one loan record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "loan"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_loan"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_loan
GET/api/v1/indexer/manualBurnEvent signed read
List manualBurnEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "manualBurnEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_manualBurnEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_manualBurnEvent
GET/api/v1/indexer/manualBurnEvent/record signed read
Read one manualBurnEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "manualBurnEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_manualBurnEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_manualBurnEvent
GET/api/v1/indexer/manualMintTokensEvent signed read
List manualMintTokensEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "manualMintTokensEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_manualMintTokensEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_manualMintTokensEvent
GET/api/v1/indexer/manualMintTokensEvent/record signed read
Read one manualMintTokensEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "manualMintTokensEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_manualMintTokensEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_manualMintTokensEvent
GET/api/v1/indexer/mintNftEvent signed read
List mintNftEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "mintNftEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_mintNftEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_mintNftEvent
GET/api/v1/indexer/mintNftEvent/record signed read
Read one mintNftEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "mintNftEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_mintNftEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_mintNftEvent
GET/api/v1/indexer/mintTokensEvent signed read
List mintTokensEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "mintTokensEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_mintTokensEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_mintTokensEvent
GET/api/v1/indexer/mintTokensEvent/record signed read
Read one mintTokensEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "mintTokensEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_mintTokensEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_mintTokensEvent
GET/api/v1/indexer/nft signed read
List nft records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "nft"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_nft"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_nft
GET/api/v1/indexer/nft/record signed read
Read one nft record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "nft"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_nft"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_nft
GET/api/v1/indexer/nftHook signed read
List nftHook records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "nftHook"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_nftHook"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_nftHook
GET/api/v1/indexer/nftHook/record signed read
Read one nftHook record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "nftHook"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_nftHook"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_nftHook
GET/api/v1/indexer/nftTier signed read
List nftTier records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "nftTier"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_nftTier"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_nftTier
GET/api/v1/indexer/nftTier/record signed read
Read one nftTier record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "nftTier"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_nftTier"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_nftTier
GET/api/v1/indexer/operatorPermissionsSetEvent signed read
List operatorPermissionsSetEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "operatorPermissionsSetEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_operatorPermissionsSetEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_operatorPermissionsSetEvent
GET/api/v1/indexer/operatorPermissionsSetEvent/record signed read
Read one operatorPermissionsSetEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "operatorPermissionsSetEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_operatorPermissionsSetEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_operatorPermissionsSetEvent
GET/api/v1/indexer/participant signed read
List participant records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "participant"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_participant"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_participant
GET/api/v1/indexer/participant/record signed read
Read one participant record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "participant"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_participant"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_participant
GET/api/v1/indexer/participantSnapshot signed read
List participantSnapshot records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "participantSnapshot"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_participantSnapshot"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_participantSnapshot
GET/api/v1/indexer/participantSnapshot/record signed read
Read one participantSnapshot record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "participantSnapshot"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_participantSnapshot"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_participantSnapshot
GET/api/v1/indexer/payEvent signed read
List payEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "payEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_payEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_payEvent
GET/api/v1/indexer/payEvent/record signed read
Read one payEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "payEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_payEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_payEvent
GET/api/v1/indexer/permissionHolder signed read
List permissionHolder records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "permissionHolder"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_permissionHolder"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_permissionHolder
GET/api/v1/indexer/permissionHolder/record signed read
Read one permissionHolder record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "permissionHolder"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_permissionHolder"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_permissionHolder
GET/api/v1/indexer/project signed read
List project records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "project"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_project"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_project
GET/api/v1/indexer/project/record signed read
Read one project record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "project"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_project"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_project
GET/api/v1/indexer/projectCreateEvent signed read
List projectCreateEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectCreateEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_projectCreateEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_projectCreateEvent
GET/api/v1/indexer/projectCreateEvent/record signed read
Read one projectCreateEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectCreateEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_projectCreateEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_projectCreateEvent
GET/api/v1/indexer/projectMoment signed read
List projectMoment records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectMoment"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_projectMoment"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_projectMoment
GET/api/v1/indexer/projectMoment/record signed read
Read one projectMoment record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectMoment"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_projectMoment"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_projectMoment
GET/api/v1/indexer/projectPayer signed read
List projectPayer records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectPayer"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_projectPayer"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_projectPayer
GET/api/v1/indexer/projectPayer/record signed read
Read one projectPayer record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectPayer"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_projectPayer"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_projectPayer
GET/api/v1/indexer/projectTransferEvent signed read
List projectTransferEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectTransferEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_projectTransferEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_projectTransferEvent
GET/api/v1/indexer/projectTransferEvent/record signed read
Read one projectTransferEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "projectTransferEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_projectTransferEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_projectTransferEvent
GET/api/v1/indexer/reallocateLoanEvent signed read
List reallocateLoanEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "reallocateLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_reallocateLoanEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_reallocateLoanEvent
GET/api/v1/indexer/reallocateLoanEvent/record signed read
Read one reallocateLoanEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "reallocateLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_reallocateLoanEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_reallocateLoanEvent
GET/api/v1/indexer/removeNftTierEvent signed read
List removeNftTierEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "removeNftTierEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_removeNftTierEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_removeNftTierEvent
GET/api/v1/indexer/removeNftTierEvent/record signed read
Read one removeNftTierEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "removeNftTierEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_removeNftTierEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_removeNftTierEvent
GET/api/v1/indexer/repayLoanEvent signed read
List repayLoanEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "repayLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_repayLoanEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_repayLoanEvent
GET/api/v1/indexer/repayLoanEvent/record signed read
Read one repayLoanEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "repayLoanEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_repayLoanEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_repayLoanEvent
GET/api/v1/indexer/rulesetQueuedEvent signed read
List rulesetQueuedEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "rulesetQueuedEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_rulesetQueuedEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_rulesetQueuedEvent
GET/api/v1/indexer/rulesetQueuedEvent/record signed read
Read one rulesetQueuedEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "rulesetQueuedEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_rulesetQueuedEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_rulesetQueuedEvent
GET/api/v1/indexer/sendPayoutToSplitEvent signed read
List sendPayoutToSplitEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendPayoutToSplitEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_sendPayoutToSplitEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_sendPayoutToSplitEvent
GET/api/v1/indexer/sendPayoutToSplitEvent/record signed read
Read one sendPayoutToSplitEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendPayoutToSplitEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_sendPayoutToSplitEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_sendPayoutToSplitEvent
GET/api/v1/indexer/sendPayoutsEvent signed read
List sendPayoutsEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendPayoutsEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_sendPayoutsEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_sendPayoutsEvent
GET/api/v1/indexer/sendPayoutsEvent/record signed read
Read one sendPayoutsEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendPayoutsEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_sendPayoutsEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_sendPayoutsEvent
GET/api/v1/indexer/sendReservedTokensToSplitEvent signed read
List sendReservedTokensToSplitEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendReservedTokensToSplitEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_sendReservedTokensToSplitEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_sendReservedTokensToSplitEvent
GET/api/v1/indexer/sendReservedTokensToSplitEvent/record signed read
Read one sendReservedTokensToSplitEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendReservedTokensToSplitEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_sendReservedTokensToSplitEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_sendReservedTokensToSplitEvent
GET/api/v1/indexer/sendReservedTokensToSplitsEvent signed read
List sendReservedTokensToSplitsEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendReservedTokensToSplitsEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_sendReservedTokensToSplitsEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_sendReservedTokensToSplitsEvent
GET/api/v1/indexer/sendReservedTokensToSplitsEvent/record signed read
Read one sendReservedTokensToSplitsEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "sendReservedTokensToSplitsEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_sendReservedTokensToSplitsEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_sendReservedTokensToSplitsEvent
GET/api/v1/indexer/setUriEvent signed read
List setUriEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "setUriEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_setUriEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_setUriEvent
GET/api/v1/indexer/setUriEvent/record signed read
Read one setUriEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "setUriEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_setUriEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_setUriEvent
GET/api/v1/indexer/storeAutoIssuanceAmountEvent signed read
List storeAutoIssuanceAmountEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "storeAutoIssuanceAmountEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_storeAutoIssuanceAmountEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_storeAutoIssuanceAmountEvent
GET/api/v1/indexer/storeAutoIssuanceAmountEvent/record signed read
Read one storeAutoIssuanceAmountEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "storeAutoIssuanceAmountEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_storeAutoIssuanceAmountEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_storeAutoIssuanceAmountEvent
GET/api/v1/indexer/suckerGroup signed read
List suckerGroup records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "suckerGroup"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_suckerGroup"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_suckerGroup
GET/api/v1/indexer/suckerGroup/record signed read
Read one suckerGroup record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "suckerGroup"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_suckerGroup"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_suckerGroup
GET/api/v1/indexer/suckerGroupMoment signed read
List suckerGroupMoment records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "suckerGroupMoment"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_suckerGroupMoment"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_suckerGroupMoment
GET/api/v1/indexer/suckerGroupMoment/record signed read
Read one suckerGroupMoment record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "suckerGroupMoment"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_suckerGroupMoment"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_suckerGroupMoment
GET/api/v1/indexer/suckerTransaction signed read
List suckerTransaction records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "suckerTransaction"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_suckerTransaction"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_suckerTransaction
GET/api/v1/indexer/suckerTransaction/record signed read
Read one suckerTransaction record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "suckerTransaction"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_suckerTransaction"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_suckerTransaction
GET/api/v1/indexer/swapEvent signed read
List swapEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "swapEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_swapEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_swapEvent
GET/api/v1/indexer/swapEvent/record signed read
Read one swapEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "swapEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_swapEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_swapEvent
GET/api/v1/indexer/useAllowanceEvent signed read
List useAllowanceEvent records
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | List filters use the indexer's signed 32-bit GraphQL Int range. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
filters | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
orderBy | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entity | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
network | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protocolVersion | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
items | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageInfo | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provenance | object required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "useAllowanceEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IndexerRow_useAllowanceEvent"
},
"maxItems": 50
},
"totalCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"pageInfo": {
"$ref": "#/components/schemas/IndexerPageInfo"
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"items",
"totalCount",
"pageInfo",
"nextCursor",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: listIndexer_useAllowanceEvent
GET/api/v1/indexer/useAllowanceEvent/record signed read
Read one useAllowanceEvent record
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. |
network | query / required | string
|
chainId | query / optional | Must belong to the chosen indexer network.
|
projectId | query / optional | Exact nonnegative decimal string no greater than 9007199254740991. |
id | query / optional | version is fixed to numeric 6. Supply every remaining primary key in this closed object or via the chainId/projectId query scope. A scalar string is accepted only when exactly one key remains after scope and version injection; it supplies that remaining key regardless of its name. Scope and key identities must agree; chainId must belong to the selected network. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
fields | query / optional | Bounded scalar field paths or supported singular relations. Identity fields are always included. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
| Field | Type | Details |
|---|---|---|
entity | string required | Values: |
network | string required | Values: |
protocolVersion | integer required | Values: |
item | one of required | |
provenance | object required | |
semantics | object required | Bendystraw indexing is not a canonical block-hash snapshot. Preserve lag, pagination, scope, and unknown-field semantics. |
JSON schema
{
"type": "object",
"properties": {
"entity": {
"type": "string",
"const": "useAllowanceEvent"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"protocolVersion": {
"$ref": "#/components/schemas/ProtocolVersion"
},
"item": {
"anyOf": [
{
"$ref": "#/components/schemas/IndexerRow_useAllowanceEvent"
},
{
"type": "null"
}
]
},
"provenance": {
"type": "object",
"additionalProperties": true
},
"semantics": {
"$ref": "#/components/schemas/IndexerSemantics"
}
},
"required": [
"entity",
"network",
"protocolVersion",
"item",
"provenance",
"semantics"
],
"additionalProperties": false
}operationId: readIndexer_useAllowanceEvent
Projects (2)
Project and omnichain views with explicit source selection.
GET/api/v1/projects/{chainId}/{projectId} signed read
Read a V6 project from the chosen source
Select onchain or bendystraw explicitly. The response is the semantic operation's source-specific result. Missing source evidence is never silently replaced by another source.
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. |
chainId | path / required | integer
|
projectId | path / required | uint256 as a lossless decimal string |
source | query / required | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: getProjectBySource
GET/api/v1/projects/{chainId}/{projectId}/omnichain signed read
Inspect the project's omnichain group and partial evidence
Availability is reported by /capabilities. Member chains have separate state and finality. A source-chain receipt does not prove destination settlement. Incomplete group evidence remains explicit.
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. |
chainId | path / required | integer
|
projectId | path / required | uint256 as a lossless decimal string |
source | query / required | string
|
maxMembers | query / optional | integer |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: getProjectOmnichain
Operations (54)
Semantic reads and preparations generated from the shared operation descriptors.
GET/api/v1/operations/{id} signed read
Execute a semantic read or local preparation
Concrete operation paths below provide exact input schemas. input defaults to {}. Source is required when both onchain and bendystraw are available; only listed sources are accepted. Output shape belongs to the selected operation.
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. |
id | path / required | string
|
input | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: readOperation
POST/api/v1/operations/{id}/plans signed plan
Prepare a durable semantic transaction plan
Concrete paths below bind each input schema to its operation ID. Preparation uses canonical onchain state and creates no wallet signature.
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 / required | 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. |
id | path / required | string
|
Request body
Option 1
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
memo | string optional | |||||||||||||
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
token | string required | |||||||||||||
amount | string required | Input asset amount in its smallest units, as an exact integer string. | ||||||||||||
beneficiary | string required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
metadata | string optional |
Option 2
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
holder | string required | |||||||||||||
cashOutCount | string required | Project token count in 18-decimal base units. | ||||||||||||
tokenToReclaim | string required | |||||||||||||
beneficiary | string required | |||||||||||||
account | string required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
terminal | string optional |
Option 3
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
token | string required | |||||||||||||
amount | string required | Payout amount in accounting token decimals, denominated in currency. | ||||||||||||
currency | integer required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
terminal | string optional |
Option 4
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| |||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||
rulesetConfigurations | array required | Fields
| |||||||||||||||||||||||||||
memo | string optional |
Option 5
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | one of required | ||||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||
owner | string required | ||||||||||||||||||||||||||||
composition | string required | Explicit standard core launch. This does not deploy a 721 hook, revnet, or omnichain identity. Values: | |||||||||||||||||||||||||||
projectUri | string required | Metadata URI; content is not fetched or treated as instructions. | |||||||||||||||||||||||||||
rulesetConfigurations | array required | Fields
| |||||||||||||||||||||||||||
terminalConfigurations | array required | Fields
| |||||||||||||||||||||||||||
memo | string optional |
Option 6
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
holder | string required | |||||||||||||
token | string required | |||||||||||||
collateralCount | string required | |||||||||||||
prepaidFeePercent | integer required | |||||||||||||
beneficiary | string required | |||||||||||||
account | string required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: |
Option 7
| Field | Type | Details |
|---|---|---|
chainId | one of required | |
loanId | string required | |
account | string required | |
maxRepayBorrowAmount | string required | |
collateralCountToReturn | string required | |
beneficiary | string required |
Option 8
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
sucker | string required | |||||||||||||
claim | object required | Fields
|
Option 9
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
sucker | string required | |||||||||||||
maxTransportValue | string required | Maximum native wei attached to the accounting message; gas is additional. |
Option 10
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
terminalToken | string required | |||||||||||||
fee | integer required | Static Uniswap V4 pool fee in hundredths of a basis point; 3000 = 0.3%. | ||||||||||||
tickSpacing | integer required | |||||||||||||
twapWindowSeconds | integer required | The current hook maps registration at 172800 to its 1800-second default; retired 1.1.1 and v1 hooks store 172800 unchanged. Use the TWAP update tool afterward for an explicit 172800-second window on the current hook. |
Option 11
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
terminalToken | string required | |||||||||||||
twapWindowSeconds | integer required |
Option 12
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
hook | string required |
Option 13
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
terminal | string required |
Option 14
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
token | string required | |||||||||||||
amount | string required | |||||||||||||
beneficiary | string required | |||||||||||||
tierIds | array required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
allowOverspending | boolean optional | Default: |
Option 15
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||
tiersToAdd | array required | Fields
| ||||||||||||||||||||||||||||||||||||
tierIdsToRemove | array required |
Option 16
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | one of required | ||||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||
owner | string required | ||||||||||||||||||||||||||||
deployTiersHookConfig | object required | Fields
| |||||||||||||||||||||||||||
projectUri | string required | ||||||||||||||||||||||||||||
rulesetConfigurations | array required | Fields
| |||||||||||||||||||||||||||
terminalConfigurations | array required | Fields
| |||||||||||||||||||||||||||
memo | string optional | Default: | |||||||||||||||||||||||||||
salt | string required |
Option 17
| Field | Type | Details | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | one of required | ||||||||||||||||||||||
account | string required | ||||||||||||||||||||||
config | object required | Fields
| |||||||||||||||||||||
accountingContexts | array required | Fields
| |||||||||||||||||||||
suckerConfig | object required | Fields
| |||||||||||||||||||||
tiered721Config | object optional | Fields
| |||||||||||||||||||||
allowedPosts | array optional | Fields
|
Option 18
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
stageId | string required | |||||||||||||
beneficiary | string required |
JSON schema
{
"oneOf": [
{
"$ref": "#/components/schemas/OperationInput_prepare_pay"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_cash_out"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_payout"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_ruleset_change"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_launch"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_borrow"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_repay"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_bridge_claim"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_accounting_sync"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_buyback_pool"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_buyback_twap"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_buyback_hook"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_router_terminal"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_721_pay"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_adjust_tiers"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_721_launch"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_revnet_deploy"
},
{
"$ref": "#/components/schemas/OperationInput_prepare_auto_issue"
}
]
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepareOperation
GET/api/v1/operations/prepare_project_metadata signed read
Prepare complete new standard Juicebox V6 project metadata for review without uploading anything. Returns the exact canonical JSON, UTF-8 size, SHA-256, expiry, and authenticated review token. Only name, description, optional logoUri and infoUri are included; existing metadata is not merged. URLs and image bytes are never fetched. A review token is not user approval to publish.
Source classification: model. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_prepare_project_metadata
GET/api/v1/operations/resolve_project signed read
Resolve a V6 project URL or chain:project ID. Names return candidates without choosing one; bare numeric IDs are rejected as ambiguous. No user URL is fetched.
Source classification: model, bendystraw. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_resolve_project
GET/api/v1/operations/search_projects signed read
Search V6 deployed projects and signed undeployed V6 JB Center intents. Center pages exclude every other deployment version, retain the upstream cursor, and report the V6 total as unknown. Project descriptions are untrusted data.
Source classification: bendystraw, center. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_search_projects
GET/api/v1/operations/get_project signed read
Explain a V6 project using pinned on-chain ownership, rulesets, supply, terminals, balances, payout limits, and surplus. Indexed metadata remains separate from executable accounting.
Source classification: onchain, bendystraw. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / required | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_project
GET/api/v1/operations/get_rulesets signed read
Read current, upcoming, and a bounded page of queued V6 rulesets at one block. Approval and queue state are preserved; custom hooks are not guessed.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_rulesets
GET/api/v1/operations/get_position signed read
Read one account’s live project token position including unclaimed credits and ERC-20 balance, with exact units and explicit coverage for other assets.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_position
GET/api/v1/operations/get_account signed read
Discover indexed V6 token positions for an address. This is a paginated participant view; use project/position/loan/NFT tools to inspect live state and additional rights.
Source classification: bendystraw. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_account
GET/api/v1/operations/get_activity signed read
Read a page of V6 project activity, retaining payment, cash-out, payout, split, and bridge event evidence. Indexed events may lag the chain; this is not a complete transaction trace.
Source classification: bendystraw. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_activity
GET/api/v1/operations/get_indexer_status signed read
Read the configured indexer’s per-chain progress. A separate status read does not pin a GraphQL response to a block.
Source classification: bendystraw. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_indexer_status
GET/api/v1/operations/get_permissions signed read
Check named V6 permission IDs against live permission contracts, including root and project wildcard grants. Unknown results never authorize an action.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_permissions
GET/api/v1/operations/get_bridges signed read
Inspect V6 sucker identities, reciprocal peers, chain-specific project IDs, transports and accounting observations. Optional movement scans require a bounded explicit block range.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_bridges
GET/api/v1/operations/get_omnichain_group signed read
Read the indexer’s V6 sucker group and a bounded project page. This is discovery evidence; validate peers on-chain before preparing bridge actions.
Source classification: bendystraw. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_omnichain_group
GET/api/v1/operations/quote_pay signed read
Quote a terminal payment as the actual payer, including issuance/reserved outputs and supported buyback behavior. The quote explains treasury versus market flow and never claims an unqueried route is optimal.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_quote_pay
GET/api/v1/operations/quote_cash_out signed read
Quote a hook-aware V6 cash-out using net proceeds, correct accounting currency, and route-specific protected metadata. Unsupported custom behavior fails explicitly.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_quote_cash_out
GET/api/v1/operations/quote_payout signed read
Simulate the amount currently payable through a registered V6 terminal. Payout requests may cap at remaining limits; actual results and currency units are returned.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_quote_payout
GET/api/v1/operations/model_economics signed read
Compute an explicit hypothetical issuance/cash-out scenario with integer arithmetic. Inputs and exclusions are reported; this is neither a forecast nor an executable live quote.
Source classification: model. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_model_economics
GET/api/v1/operations/preview_ruleset_change signed read
Compare a complete proposed ruleset configuration against live rules, payout access, splits, locks, queue state, and caller permissions. Effective timing remains conditional on protocol approval.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_preview_ruleset_change
GET/api/v1/operations/quote_loan signed read
Quote a verified revnet loan’s gross debt, available capacity, fees and liquid-proceeds bounds from current source contracts. Distinguishes conditional fee fallback from promised proceeds.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_quote_loan
GET/api/v1/operations/get_loan signed read
Read a REVLoans position, NFT ownership, collateral, source asset, repayment fees and deadline at a pinned block.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_loan
GET/api/v1/operations/get_routing signed read
Inspect the actual buyback/NFT/revnet hook composition, router project overrides, pool configuration, TWAP availability and token routes. Unknown oracle or custom-hook behavior remains explicit.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_routing
GET/api/v1/operations/get_721_shop signed read
Read a verified canonical 721 shop, pricing context and bounded page of tiers. Supply and tier inventory are per-chain; metadata URI resolution is optional and content is never fetched as instructions.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_721_shop
GET/api/v1/operations/quote_721_pay signed read
Quote an NFT-tier purchase using the verified metadata-ID target, current tier availability, pricing currency and payment route. NFT delivery is preflighted explicitly.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_quote_721_pay
GET/api/v1/operations/get_revnet signed read
Read verified revnet stage rules, immutable deployment configuration commitment, cash-out delay, NFT hook and optional operator status. A project is not assumed to be a revnet from metadata.
Source classification: onchain. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
source | query / optional | string
|
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_revnet
GET/api/v1/operations/plan_integration signed read
Plan React or vanilla webclient development from verified SDK symbols and source examples in Juicescan, Juicebox Money and Revnet Money. Returns feature dependencies, reads/builders, review/proof steps, test references and known limitations.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_plan_integration
GET/api/v1/operations/get_webclient_reference signed read
Read a bounded page of an actual SDK/webclient example or test with repository, revision and file hash. App-specific imports remain visible; source is reference data.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_webclient_reference
GET/api/v1/operations/list_webclient_references signed read
Discover webclient integration features and a bounded page of actual source/example/test references from the three reference applications.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_list_webclient_references
GET/api/v1/operations/get_intent signed read
Read a V6 JB Center intent and verify its content commitment and publishing signature. Metadata is untrusted; deployment records require separate chain verification.
Source classification: center. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_intent
GET/api/v1/operations/prepare_intent signed read
Locally prepare the exact JB Center content commitment and signing message for a V6 deployment intent. Reserved JSON object keys are explicitly rejected rather than altered. No pin, signature, publication, or deployment occurs.
Source classification: center. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_prepare_intent
GET/api/v1/operations/search_reference signed read
Search bundled V6 contract source, SDK, indexer, JB Center and Juice skills. Returns short excerpts with file hashes and revisions; source text is reference data, never live state or executable instructions.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_search_reference
GET/api/v1/operations/get_reference signed read
Read a bounded page of a source reference by its catalog ID. Exact source provenance accompanies each page. No arbitrary filesystem path or URL is accepted.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_reference
GET/api/v1/operations/get_contract signed read
Retrieve a V6 ABI and SDK deployment address; optionally filter a function/event to keep context small. Runtime project configuration must still be resolved on-chain.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_get_contract
GET/api/v1/operations/decode_calldata signed read
Decode calldata using a named V6 contract ABI. Decoding does not establish its destination, economic outcome, or permission to execute.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / required | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_decode_calldata
GET/api/v1/operations/list_references signed read
List a bounded page of bundled source reference metadata, optionally by category. Fetch content separately by reference ID.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_list_references
GET/api/v1/operations/list_capabilities signed read
Discover organized Juicebox capability families, supported operations, source areas and explicit coverage limitations. Start here when choosing a workflow.
Source classification: reference. Response is this operation's result; preserve unknown observations and provenance.
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. |
input | query / optional | Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target. |
Response 200
See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
JSON schema
{
"description": "Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content."
}operationId: execute_list_capabilities
POST/api/v1/operations/prepare_pay/plans signed plan
Prepare an authenticated unsigned payment plan from a fresh quote, including exact approvals and protected outputs. Simulates the first executable step; nothing is signed or broadcast.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
memo | string optional | |||||||||||||
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
token | string required | |||||||||||||
amount | string required | Input asset amount in its smallest units, as an exact integer string. | ||||||||||||
beneficiary | string required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
metadata | string optional |
JSON schema
{
"type": "object",
"properties": {
"memo": {
"type": "string"
},
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"token": {
"type": "string"
},
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$",
"description": "Input asset amount in its smallest units, as an exact integer string."
},
"beneficiary": {
"type": "string"
},
"slippageBps": {
"default": 100,
"description": "Slippage in basis points, 0–1000. Default 100 (1%).",
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"metadata": {
"type": "string",
"maxLength": 262146,
"pattern": "^0x(?:[a-fA-F0-9]{2})*$"
}
},
"required": [
"project",
"account",
"token",
"amount",
"beneficiary"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_pay
POST/api/v1/operations/prepare_cash_out/plans signed plan
Prepare an authenticated unsigned cash-out plan, preserving the quoted terminal minimum and hook metadata as one execution commitment.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
holder | string required | |||||||||||||
cashOutCount | string required | Project token count in 18-decimal base units. | ||||||||||||
tokenToReclaim | string required | |||||||||||||
beneficiary | string required | |||||||||||||
account | string required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
terminal | string optional |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"holder": {
"type": "string"
},
"cashOutCount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$",
"description": "Project token count in 18-decimal base units."
},
"tokenToReclaim": {
"type": "string"
},
"beneficiary": {
"type": "string"
},
"account": {
"type": "string"
},
"slippageBps": {
"default": 100,
"description": "Slippage in basis points, 0–1000. Default 100 (1%).",
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"terminal": {
"type": "string"
}
},
"required": [
"project",
"holder",
"cashOutCount",
"tokenToReclaim",
"beneficiary",
"account"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_cash_out
POST/api/v1/operations/prepare_payout/plans signed plan
Prepare a payout with a nonzero protected minimum derived from the live payable amount, exact sender, terminal, currency, and project.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
token | string required | |||||||||||||
amount | string required | Payout amount in accounting token decimals, denominated in currency. | ||||||||||||
currency | integer required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
terminal | string optional |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"token": {
"type": "string"
},
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$",
"description": "Payout amount in accounting token decimals, denominated in currency."
},
"currency": {
"type": "integer",
"minimum": 1,
"maximum": 4294967295
},
"slippageBps": {
"default": 100,
"description": "Slippage in basis points, 0–1000. Default 100 (1%).",
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"terminal": {
"type": "string"
}
},
"required": [
"project",
"account",
"token",
"amount",
"currency"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_payout
POST/api/v1/operations/prepare_ruleset_change/plans signed plan
Prepare exact reviewed V6 ruleset calldata after a live diff and permission check. Does not silently overwrite omitted configuration or promise approval timing.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rulesetConfigurations | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memo | string optional |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"rulesetConfigurations": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"mustStartAtOrAfter": {
"description": "Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"duration": {
"description": "Seconds per cycle. Zero has no automatic cycles.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"weight": {
"description": "18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"weightCutPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"approvalHook": {
"description": "Gates the next ruleset, not this ruleset.",
"type": "string"
},
"metadata": {
"type": "object",
"properties": {
"reservedPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"cashOutTaxRate": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"baseCurrency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"pausePay": {
"type": "boolean"
},
"pauseCreditTransfers": {
"type": "boolean"
},
"allowOwnerMinting": {
"type": "boolean"
},
"allowSetCustomToken": {
"type": "boolean"
},
"allowTerminalMigration": {
"type": "boolean"
},
"allowSetTerminals": {
"type": "boolean"
},
"allowSetController": {
"type": "boolean"
},
"allowAddAccountingContext": {
"type": "boolean"
},
"allowAddPriceFeed": {
"type": "boolean"
},
"ownerMustSendPayouts": {
"type": "boolean"
},
"holdFees": {
"type": "boolean"
},
"scopeCashOutsToLocalBalances": {
"type": "boolean"
},
"useDataHookForPay": {
"type": "boolean"
},
"useDataHookForCashOut": {
"type": "boolean"
},
"dataHook": {
"type": "string"
},
"metadata": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"reservedPercent",
"cashOutTaxRate",
"baseCurrency",
"pausePay",
"pauseCreditTransfers",
"allowOwnerMinting",
"allowSetCustomToken",
"allowTerminalMigration",
"allowSetTerminals",
"allowSetController",
"allowAddAccountingContext",
"allowAddPriceFeed",
"ownerMustSendPayouts",
"holdFees",
"scopeCashOutsToLocalBalances",
"useDataHookForPay",
"useDataHookForCashOut",
"dataHook",
"metadata"
],
"additionalProperties": false
},
"splitGroups": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"splits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"percent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"preferAddToBalance": {
"type": "boolean"
},
"lockedUntil": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"hook": {
"type": "string"
}
},
"required": [
"percent",
"projectId",
"beneficiary",
"preferAddToBalance",
"lockedUntil",
"hook"
],
"additionalProperties": false
}
}
},
"required": [
"groupId",
"splits"
],
"additionalProperties": false
}
},
"fundAccessLimitGroups": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"terminal": {
"type": "string"
},
"token": {
"type": "string"
},
"payoutLimits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
},
"surplusAllowances": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
}
},
"required": [
"terminal",
"token",
"payoutLimits",
"surplusAllowances"
],
"additionalProperties": false
}
}
},
"required": [
"mustStartAtOrAfter",
"duration",
"weight",
"weightCutPercent",
"approvalHook",
"metadata",
"splitGroups",
"fundAccessLimitGroups"
],
"additionalProperties": false
}
},
"memo": {
"type": "string",
"maxLength": 4096
}
},
"required": [
"project",
"account",
"rulesetConfigurations"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_ruleset_change
POST/api/v1/operations/prepare_launch/plans signed plan
Prepare a standard core V6 project launch using complete typed configuration and a chain-specific live creation fee. Explicit core composition does not attach NFT/revnet/omnichain extensions.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
owner | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
composition | string required | Explicit standard core launch. This does not deploy a 721 hook, revnet, or omnichain identity. Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
projectUri | string required | Metadata URI; content is not fetched or treated as instructions. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rulesetConfigurations | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
terminalConfigurations | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memo | string optional |
JSON schema
{
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"account": {
"type": "string"
},
"owner": {
"type": "string"
},
"composition": {
"type": "string",
"const": "core",
"description": "Explicit standard core launch. This does not deploy a 721 hook, revnet, or omnichain identity."
},
"projectUri": {
"type": "string",
"maxLength": 4096,
"description": "Metadata URI; content is not fetched or treated as instructions."
},
"rulesetConfigurations": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"mustStartAtOrAfter": {
"description": "Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"duration": {
"description": "Seconds per cycle. Zero has no automatic cycles.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"weight": {
"description": "18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"weightCutPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"approvalHook": {
"description": "Gates the next ruleset, not this ruleset.",
"type": "string"
},
"metadata": {
"type": "object",
"properties": {
"reservedPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"cashOutTaxRate": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"baseCurrency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"pausePay": {
"type": "boolean"
},
"pauseCreditTransfers": {
"type": "boolean"
},
"allowOwnerMinting": {
"type": "boolean"
},
"allowSetCustomToken": {
"type": "boolean"
},
"allowTerminalMigration": {
"type": "boolean"
},
"allowSetTerminals": {
"type": "boolean"
},
"allowSetController": {
"type": "boolean"
},
"allowAddAccountingContext": {
"type": "boolean"
},
"allowAddPriceFeed": {
"type": "boolean"
},
"ownerMustSendPayouts": {
"type": "boolean"
},
"holdFees": {
"type": "boolean"
},
"scopeCashOutsToLocalBalances": {
"type": "boolean"
},
"useDataHookForPay": {
"type": "boolean"
},
"useDataHookForCashOut": {
"type": "boolean"
},
"dataHook": {
"type": "string"
},
"metadata": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"reservedPercent",
"cashOutTaxRate",
"baseCurrency",
"pausePay",
"pauseCreditTransfers",
"allowOwnerMinting",
"allowSetCustomToken",
"allowTerminalMigration",
"allowSetTerminals",
"allowSetController",
"allowAddAccountingContext",
"allowAddPriceFeed",
"ownerMustSendPayouts",
"holdFees",
"scopeCashOutsToLocalBalances",
"useDataHookForPay",
"useDataHookForCashOut",
"dataHook",
"metadata"
],
"additionalProperties": false
},
"splitGroups": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"splits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"percent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"preferAddToBalance": {
"type": "boolean"
},
"lockedUntil": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"hook": {
"type": "string"
}
},
"required": [
"percent",
"projectId",
"beneficiary",
"preferAddToBalance",
"lockedUntil",
"hook"
],
"additionalProperties": false
}
}
},
"required": [
"groupId",
"splits"
],
"additionalProperties": false
}
},
"fundAccessLimitGroups": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"terminal": {
"type": "string"
},
"token": {
"type": "string"
},
"payoutLimits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
},
"surplusAllowances": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
}
},
"required": [
"terminal",
"token",
"payoutLimits",
"surplusAllowances"
],
"additionalProperties": false
}
}
},
"required": [
"mustStartAtOrAfter",
"duration",
"weight",
"weightCutPercent",
"approvalHook",
"metadata",
"splitGroups",
"fundAccessLimitGroups"
],
"additionalProperties": false
}
},
"terminalConfigurations": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"terminal": {
"type": "string"
},
"accountingContextsToAccept": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"decimals": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"token",
"decimals",
"currency"
],
"additionalProperties": false
}
}
},
"required": [
"terminal",
"accountingContextsToAccept"
],
"additionalProperties": false
}
},
"memo": {
"type": "string",
"maxLength": 4096
}
},
"required": [
"chainId",
"account",
"owner",
"composition",
"projectUri",
"rulesetConfigurations",
"terminalConfigurations"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_launch
POST/api/v1/operations/prepare_borrow/plans signed plan
Prepare a revnet borrow with a protected gross-debt minimum and any explicitly reviewed BURN_TOKENS permission prerequisite, preserving existing permissions. Liquid proceeds remain conditional on fees.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
holder | string required | |||||||||||||
token | string required | |||||||||||||
collateralCount | string required | |||||||||||||
prepaidFeePercent | integer required | |||||||||||||
beneficiary | string required | |||||||||||||
account | string required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"holder": {
"type": "string"
},
"token": {
"type": "string"
},
"collateralCount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"prepaidFeePercent": {
"type": "integer",
"minimum": 25,
"maximum": 500
},
"beneficiary": {
"type": "string"
},
"account": {
"type": "string"
},
"slippageBps": {
"default": 100,
"description": "Slippage in basis points, 0–1000. Default 100 (1%).",
"type": "integer",
"minimum": 0,
"maximum": 1000
}
},
"required": [
"project",
"holder",
"token",
"collateralCount",
"prepaidFeePercent",
"beneficiary",
"account"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_borrow
POST/api/v1/operations/prepare_repay/plans signed plan
Prepare a loan repayment with bounded spend, correct native/ERC-20 funding and explicit approval prerequisites.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 |
|---|---|---|
chainId | one of required | |
loanId | string required | |
account | string required | |
maxRepayBorrowAmount | string required | |
collateralCountToReturn | string required | |
beneficiary | string required |
JSON schema
{
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"loanId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"account": {
"type": "string"
},
"maxRepayBorrowAmount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"collateralCountToReturn": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
}
},
"required": [
"chainId",
"loanId",
"account",
"maxRepayBorrowAmount",
"collateralCountToReturn",
"beneficiary"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_repay
POST/api/v1/operations/prepare_bridge_claim/plans signed plan
Prepare a claim only through a sucker verified for the project. Exact claim proof and beneficiary are preserved and simulation validates current claimability.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||
sucker | string required | |||||||||||||||||||||||||||||||
claim | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"sucker": {
"type": "string"
},
"claim": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"leaf": {
"type": "object",
"properties": {
"index": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"projectTokenCount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"terminalTokenAmount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"metadata": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
}
},
"required": [
"index",
"beneficiary",
"projectTokenCount",
"terminalTokenAmount",
"metadata"
],
"additionalProperties": false
},
"proof": {
"type": "array",
"prefixItems": [
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
{
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
}
],
"items": false,
"minItems": 32,
"maxItems": 32
}
},
"required": [
"token",
"leaf",
"proof"
],
"additionalProperties": false
}
},
"required": [
"project",
"account",
"sucker",
"claim"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_bridge_claim
POST/api/v1/operations/prepare_accounting_sync/plans signed plan
Prepare permissionless sucker accounting synchronization with an explicitly bounded, verified transport budget. This synchronizes accounting; it does not transfer or claim holder tokens.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
sucker | string required | |||||||||||||
maxTransportValue | string required | Maximum native wei attached to the accounting message; gas is additional. |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"sucker": {
"type": "string"
},
"maxTransportValue": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$",
"description": "Maximum native wei attached to the accounting message; gas is additional."
}
},
"required": [
"project",
"account",
"sucker",
"maxTransportValue"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_accounting_sync
POST/api/v1/operations/prepare_buyback_pool/plans signed plan
Prepare registration of an existing Uniswap V4 buyback pool for a verified project hook. Validates pool identity, token pair, permissions and TWAP window.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
terminalToken | string required | |||||||||||||
fee | integer required | Static Uniswap V4 pool fee in hundredths of a basis point; 3000 = 0.3%. | ||||||||||||
tickSpacing | integer required | |||||||||||||
twapWindowSeconds | integer required | The current hook maps registration at 172800 to its 1800-second default; retired 1.1.1 and v1 hooks store 172800 unchanged. Use the TWAP update tool afterward for an explicit 172800-second window on the current hook. |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"terminalToken": {
"type": "string"
},
"fee": {
"type": "integer",
"minimum": 0,
"maximum": 1000000,
"description": "Static Uniswap V4 pool fee in hundredths of a basis point; 3000 = 0.3%."
},
"tickSpacing": {
"type": "integer",
"minimum": 1,
"maximum": 32767
},
"twapWindowSeconds": {
"type": "integer",
"minimum": 300,
"maximum": 172800,
"description": "The current hook maps registration at 172800 to its 1800-second default; retired 1.1.1 and v1 hooks store 172800 unchanged. Use the TWAP update tool afterward for an explicit 172800-second window on the current hook."
}
},
"required": [
"project",
"account",
"terminalToken",
"fee",
"tickSpacing",
"twapWindowSeconds"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_buyback_pool
POST/api/v1/operations/prepare_buyback_twap/plans signed plan
Prepare an authorized buyback TWAP-window change with exact contract bounds and current project hook resolution.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
terminalToken | string required | |||||||||||||
twapWindowSeconds | integer required |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"terminalToken": {
"type": "string"
},
"twapWindowSeconds": {
"type": "integer",
"minimum": 300,
"maximum": 172800
}
},
"required": [
"project",
"account",
"terminalToken",
"twapWindowSeconds"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_buyback_twap
POST/api/v1/operations/prepare_buyback_hook/plans signed plan
Prepare a reviewed project buyback-registry override, with explicit target and authority checks.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
hook | string required |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"hook": {
"type": "string"
}
},
"required": [
"project",
"account",
"hook"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_buyback_hook
POST/api/v1/operations/prepare_router_terminal/plans signed plan
Prepare an authorized router-terminal registry project override. The exact implementation address and resulting routing authority are reviewed.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
terminal | string required |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"terminal": {
"type": "string"
}
},
"required": [
"project",
"account",
"terminal"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_router_terminal
POST/api/v1/operations/prepare_721_pay/plans signed plan
Prepare a verified NFT-tier payment with exact metadata, protected outputs and explicit funding prerequisites. Does not assume a successful fungible payment proves NFT delivery.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
token | string required | |||||||||||||
amount | string required | |||||||||||||
beneficiary | string required | |||||||||||||
tierIds | array required | |||||||||||||
slippageBps | integer optional | Slippage in basis points, 0–1000. Default 100 (1%). Default: | ||||||||||||
allowOverspending | boolean optional | Default: |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"token": {
"type": "string"
},
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"tierIds": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"slippageBps": {
"default": 100,
"description": "Slippage in basis points, 0–1000. Default 100 (1%).",
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"allowOverspending": {
"default": false,
"type": "boolean"
}
},
"required": [
"project",
"account",
"token",
"amount",
"beneficiary",
"tierIds"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_721_pay
POST/api/v1/operations/prepare_adjust_tiers/plans signed plan
Prepare additions/removals of NFT tiers with typed price, supply, category, voting, reserve, discount and split configuration. Validates canonical hook identity and caller permissions.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tiersToAdd | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tierIdsToRemove | array required |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"tiersToAdd": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"initialSupply": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"votingUnits": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"reserveFrequency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"reserveBeneficiary": {
"type": "string"
},
"encodedIpfsUri": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"category": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"discountPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"flags": {
"type": "object",
"properties": {
"allowOwnerMint": {
"type": "boolean"
},
"useReserveBeneficiaryAsDefault": {
"type": "boolean"
},
"transfersPausable": {
"type": "boolean"
},
"useVotingUnits": {
"type": "boolean"
},
"cantBeRemoved": {
"type": "boolean"
},
"cantIncreaseDiscountPercent": {
"type": "boolean"
},
"cantBuyWithCredits": {
"type": "boolean"
}
},
"required": [
"allowOwnerMint",
"useReserveBeneficiaryAsDefault",
"transfersPausable",
"useVotingUnits",
"cantBeRemoved",
"cantIncreaseDiscountPercent",
"cantBuyWithCredits"
],
"additionalProperties": false
},
"splitPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"splits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"percent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"preferAddToBalance": {
"type": "boolean"
},
"lockedUntil": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"hook": {
"type": "string"
}
},
"required": [
"percent",
"projectId",
"beneficiary",
"preferAddToBalance",
"lockedUntil",
"hook"
],
"additionalProperties": false
}
}
},
"required": [
"price",
"initialSupply",
"votingUnits",
"reserveFrequency",
"reserveBeneficiary",
"encodedIpfsUri",
"category",
"discountPercent",
"flags",
"splitPercent",
"splits"
],
"additionalProperties": false
}
},
"tierIdsToRemove": {
"maxItems": 32,
"type": "array",
"items": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
}
},
"required": [
"project",
"account",
"tiersToAdd",
"tierIdsToRemove"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_adjust_tiers
POST/api/v1/operations/prepare_721_launch/plans signed plan
Prepare a standard project with a canonical tiered 721 hook attached at launch, complete typed rulesets/tiers/terminals and a verified per-chain creation fee. The factory owns hook metadata wiring.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
owner | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deployTiersHookConfig | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
projectUri | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rulesetConfigurations | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
terminalConfigurations | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memo | string optional | Default: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
salt | string required |
JSON schema
{
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"account": {
"type": "string"
},
"owner": {
"type": "string"
},
"deployTiersHookConfig": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"symbol": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"baseUri": {
"type": "string",
"maxLength": 4096
},
"tokenUriResolver": {
"type": "string"
},
"contractUri": {
"type": "string",
"maxLength": 4096
},
"tiersConfig": {
"type": "object",
"properties": {
"tiers": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"initialSupply": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"votingUnits": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"reserveFrequency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"reserveBeneficiary": {
"type": "string"
},
"encodedIpfsUri": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"category": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"discountPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"flags": {
"type": "object",
"properties": {
"allowOwnerMint": {
"type": "boolean"
},
"useReserveBeneficiaryAsDefault": {
"type": "boolean"
},
"transfersPausable": {
"type": "boolean"
},
"useVotingUnits": {
"type": "boolean"
},
"cantBeRemoved": {
"type": "boolean"
},
"cantIncreaseDiscountPercent": {
"type": "boolean"
},
"cantBuyWithCredits": {
"type": "boolean"
}
},
"required": [
"allowOwnerMint",
"useReserveBeneficiaryAsDefault",
"transfersPausable",
"useVotingUnits",
"cantBeRemoved",
"cantIncreaseDiscountPercent",
"cantBuyWithCredits"
],
"additionalProperties": false
},
"splitPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"splits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"percent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"preferAddToBalance": {
"type": "boolean"
},
"lockedUntil": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"hook": {
"type": "string"
}
},
"required": [
"percent",
"projectId",
"beneficiary",
"preferAddToBalance",
"lockedUntil",
"hook"
],
"additionalProperties": false
}
}
},
"required": [
"price",
"initialSupply",
"votingUnits",
"reserveFrequency",
"reserveBeneficiary",
"encodedIpfsUri",
"category",
"discountPercent",
"flags",
"splitPercent",
"splits"
],
"additionalProperties": false
}
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"decimals": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"tiers",
"currency",
"decimals"
],
"additionalProperties": false
},
"flags": {
"type": "object",
"properties": {
"noNewTiersWithReserves": {
"type": "boolean"
},
"noNewTiersWithVotes": {
"type": "boolean"
},
"noNewTiersWithOwnerMinting": {
"type": "boolean"
},
"preventOverspending": {
"type": "boolean"
},
"issueTokensForSplits": {
"type": "boolean"
}
},
"required": [
"noNewTiersWithReserves",
"noNewTiersWithVotes",
"noNewTiersWithOwnerMinting",
"preventOverspending",
"issueTokensForSplits"
],
"additionalProperties": false
}
},
"required": [
"name",
"symbol",
"baseUri",
"tokenUriResolver",
"contractUri",
"tiersConfig",
"flags"
],
"additionalProperties": false
},
"projectUri": {
"type": "string",
"maxLength": 4096
},
"rulesetConfigurations": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"mustStartAtOrAfter": {
"description": "Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"duration": {
"description": "Seconds per cycle. Zero has no automatic cycles.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"weight": {
"description": "18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.",
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"weightCutPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"approvalHook": {
"description": "Gates the next ruleset, not this ruleset.",
"type": "string"
},
"metadata": {
"type": "object",
"properties": {
"reservedPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"cashOutTaxRate": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"baseCurrency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"pausePay": {
"type": "boolean"
},
"pauseCreditTransfers": {
"type": "boolean"
},
"allowOwnerMinting": {
"type": "boolean"
},
"allowSetCustomToken": {
"type": "boolean"
},
"allowTerminalMigration": {
"type": "boolean"
},
"allowSetTerminals": {
"type": "boolean"
},
"allowSetController": {
"type": "boolean"
},
"allowAddAccountingContext": {
"type": "boolean"
},
"allowAddPriceFeed": {
"type": "boolean"
},
"ownerMustSendPayouts": {
"type": "boolean"
},
"holdFees": {
"type": "boolean"
},
"scopeCashOutsToLocalBalances": {
"type": "boolean"
},
"useDataHookForCashOut": {
"type": "boolean"
},
"metadata": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"reservedPercent",
"cashOutTaxRate",
"baseCurrency",
"pausePay",
"pauseCreditTransfers",
"allowOwnerMinting",
"allowSetCustomToken",
"allowTerminalMigration",
"allowSetTerminals",
"allowSetController",
"allowAddAccountingContext",
"allowAddPriceFeed",
"ownerMustSendPayouts",
"holdFees",
"scopeCashOutsToLocalBalances",
"useDataHookForCashOut",
"metadata"
],
"additionalProperties": false
},
"splitGroups": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"splits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"percent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"preferAddToBalance": {
"type": "boolean"
},
"lockedUntil": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"hook": {
"type": "string"
}
},
"required": [
"percent",
"projectId",
"beneficiary",
"preferAddToBalance",
"lockedUntil",
"hook"
],
"additionalProperties": false
}
}
},
"required": [
"groupId",
"splits"
],
"additionalProperties": false
}
},
"fundAccessLimitGroups": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"terminal": {
"type": "string"
},
"token": {
"type": "string"
},
"payoutLimits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
},
"surplusAllowances": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
}
},
"required": [
"terminal",
"token",
"payoutLimits",
"surplusAllowances"
],
"additionalProperties": false
}
}
},
"required": [
"mustStartAtOrAfter",
"duration",
"weight",
"weightCutPercent",
"approvalHook",
"metadata",
"splitGroups",
"fundAccessLimitGroups"
],
"additionalProperties": false
}
},
"terminalConfigurations": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"terminal": {
"type": "string"
},
"accountingContextsToAccept": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"decimals": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"token",
"decimals",
"currency"
],
"additionalProperties": false
}
}
},
"required": [
"terminal",
"accountingContextsToAccept"
],
"additionalProperties": false
}
},
"memo": {
"default": "",
"type": "string",
"maxLength": 4096
},
"salt": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
}
},
"required": [
"chainId",
"account",
"owner",
"deployTiersHookConfig",
"projectUri",
"rulesetConfigurations",
"terminalConfigurations",
"salt"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_721_launch
POST/api/v1/operations/prepare_revnet_deploy/plans signed plan
Prepare a complete typed revnet deployment: stages, issuance, splits, accounting contexts, sucker configuration and optional 721/Croptop settings, with a live per-chain creation fee.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chainId | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
config | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountingContexts | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
suckerConfig | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tiered721Config | object optional | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allowedPosts | array optional | Fields
|
JSON schema
{
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"account": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"description": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"ticker": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"uri": {
"type": "string",
"maxLength": 4096
},
"salt": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
}
},
"required": [
"name",
"ticker",
"uri",
"salt"
],
"additionalProperties": false
},
"baseCurrency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"operator": {
"type": "string"
},
"scopeCashOutsToLocalBalances": {
"type": "boolean"
},
"stageConfigurations": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"startsAtOrAfter": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"autoIssuances": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"chainId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"count": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
}
},
"required": [
"chainId",
"count",
"beneficiary"
],
"additionalProperties": false
}
},
"splitPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"splits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"percent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"preferAddToBalance": {
"type": "boolean"
},
"lockedUntil": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"hook": {
"type": "string"
}
},
"required": [
"percent",
"projectId",
"beneficiary",
"preferAddToBalance",
"lockedUntil",
"hook"
],
"additionalProperties": false
}
},
"initialIssuance": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"issuanceCutFrequency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"issuanceCutPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"cashOutTaxRate": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"extraMetadata": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"startsAtOrAfter",
"autoIssuances",
"splitPercent",
"splits",
"initialIssuance",
"issuanceCutFrequency",
"issuanceCutPercent",
"cashOutTaxRate",
"extraMetadata"
],
"additionalProperties": false
}
}
},
"required": [
"description",
"baseCurrency",
"operator",
"scopeCashOutsToLocalBalances",
"stageConfigurations"
],
"additionalProperties": false
},
"accountingContexts": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"decimals": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"token",
"decimals",
"currency"
],
"additionalProperties": false
}
},
"suckerConfig": {
"type": "object",
"properties": {
"salt": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"deployerConfigurations": {
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"deployer": {
"type": "string"
},
"peer": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"mappings": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"localToken": {
"type": "string"
},
"minGas": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"remoteToken": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
}
},
"required": [
"localToken",
"minGas",
"remoteToken"
],
"additionalProperties": false
}
}
},
"required": [
"deployer",
"peer",
"mappings"
],
"additionalProperties": false
}
}
},
"required": [
"salt",
"deployerConfigurations"
],
"additionalProperties": false
},
"tiered721Config": {
"type": "object",
"properties": {
"baseline721HookConfiguration": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"symbol": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"baseUri": {
"type": "string",
"maxLength": 4096
},
"tokenUriResolver": {
"type": "string"
},
"contractUri": {
"type": "string",
"maxLength": 4096
},
"tiersConfig": {
"type": "object",
"properties": {
"tiers": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"initialSupply": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"votingUnits": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"reserveFrequency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"reserveBeneficiary": {
"type": "string"
},
"encodedIpfsUri": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"category": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"discountPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"flags": {
"type": "object",
"properties": {
"allowOwnerMint": {
"type": "boolean"
},
"useReserveBeneficiaryAsDefault": {
"type": "boolean"
},
"transfersPausable": {
"type": "boolean"
},
"useVotingUnits": {
"type": "boolean"
},
"cantBeRemoved": {
"type": "boolean"
},
"cantIncreaseDiscountPercent": {
"type": "boolean"
},
"cantBuyWithCredits": {
"type": "boolean"
}
},
"required": [
"allowOwnerMint",
"useReserveBeneficiaryAsDefault",
"transfersPausable",
"useVotingUnits",
"cantBeRemoved",
"cantIncreaseDiscountPercent",
"cantBuyWithCredits"
],
"additionalProperties": false
},
"splitPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"splits": {
"maxItems": 32,
"type": "array",
"items": {
"type": "object",
"properties": {
"percent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
},
"preferAddToBalance": {
"type": "boolean"
},
"lockedUntil": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"hook": {
"type": "string"
}
},
"required": [
"percent",
"projectId",
"beneficiary",
"preferAddToBalance",
"lockedUntil",
"hook"
],
"additionalProperties": false
}
}
},
"required": [
"price",
"initialSupply",
"votingUnits",
"reserveFrequency",
"reserveBeneficiary",
"encodedIpfsUri",
"category",
"discountPercent",
"flags",
"splitPercent",
"splits"
],
"additionalProperties": false
}
},
"currency": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"decimals": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"required": [
"tiers",
"currency",
"decimals"
],
"additionalProperties": false
},
"flags": {
"type": "object",
"properties": {
"noNewTiersWithReserves": {
"type": "boolean"
},
"noNewTiersWithVotes": {
"type": "boolean"
},
"noNewTiersWithOwnerMinting": {
"type": "boolean"
},
"preventOverspending": {
"type": "boolean"
}
},
"required": [
"noNewTiersWithReserves",
"noNewTiersWithVotes",
"noNewTiersWithOwnerMinting",
"preventOverspending"
],
"additionalProperties": false
}
},
"required": [
"name",
"symbol",
"baseUri",
"tokenUriResolver",
"contractUri",
"tiersConfig",
"flags"
],
"additionalProperties": false
},
"salt": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"preventOperatorAdjustingTiers": {
"type": "boolean"
},
"preventOperatorUpdatingMetadata": {
"type": "boolean"
},
"preventOperatorMinting": {
"type": "boolean"
},
"preventOperatorIncreasingDiscountPercent": {
"type": "boolean"
}
},
"required": [
"baseline721HookConfiguration",
"salt",
"preventOperatorAdjustingTiers",
"preventOperatorUpdatingMetadata",
"preventOperatorMinting",
"preventOperatorIncreasingDiscountPercent"
],
"additionalProperties": false
},
"allowedPosts": {
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"minimumPrice": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"minimumTotalSupply": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"maximumTotalSupply": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$",
"description": "0 means unlimited; actual minted NFT tiers remain subject to the store supply cap."
},
"maximumSplitPercent": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"allowedAddresses": {
"maxItems": 32,
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"category",
"minimumPrice",
"minimumTotalSupply",
"maximumTotalSupply",
"maximumSplitPercent",
"allowedAddresses"
],
"additionalProperties": false
}
}
},
"required": [
"chainId",
"account",
"config",
"accountingContexts",
"suckerConfig"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_revnet_deploy
POST/api/v1/operations/prepare_auto_issue/plans signed plan
Prepare an eligible revnet stage auto-issuance for a beneficiary after verifying live deployment and claim state.
Creates an immutable, durable unsigned plan from canonical onchain state. Review its exact calls, evidence, commitment and expiry before wallet signing.
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 / required | 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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
project | object required | Fields
| ||||||||||||
account | string required | |||||||||||||
stageId | string required | |||||||||||||
beneficiary | string required |
JSON schema
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"chainId": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 8453
},
{
"type": "number",
"const": 42161
},
{
"type": "number",
"const": 11155111
},
{
"type": "number",
"const": 11155420
},
{
"type": "number",
"const": 84532
},
{
"type": "number",
"const": 421614
}
]
},
"projectId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"version": {
"default": 6,
"type": "number",
"const": 6
}
},
"required": [
"chainId",
"projectId"
],
"additionalProperties": false
},
"account": {
"type": "string"
},
"stageId": {
"type": "string",
"maxLength": 78,
"pattern": "^(0|[1-9][0-9]*)$"
},
"beneficiary": {
"type": "string"
}
},
"required": [
"project",
"account",
"stageId",
"beneficiary"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: prepare_prepare_auto_issue
Transactions (6)
Durable reviewed plans, simulation, exact signed transaction relay and reconciliation.
POST/api/v1/plans signed plan
Prepare reviewed ABI calls or a named semantic operation
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 / required | 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
Option 1
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 2
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 3
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 4
| Field | Type | Details | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||
input | object required | Fields
|
Option 5
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 6
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 7
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 8
| Field | Type | Details | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||
input | object required | Fields
|
Option 9
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 10
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 11
| Field | Type | Details | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||
input | object required | Fields
|
Option 12
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 13
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 14
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 15
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 16
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 17
| Field | Type | Details | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||||||||
input | object required | Fields
|
Option 18
| Field | Type | Details | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||
input | object required | Fields
|
Option 19
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
JSON schema
{
"oneOf": [
{
"type": "object",
"properties": {
"operation": {
"const": "contract_calls",
"type": "string"
},
"input": {
"$ref": "#/components/schemas/PrepareContractCalls"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_pay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_pay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_cash_out"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_cash_out"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_payout"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_payout"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_ruleset_change"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_ruleset_change"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_launch"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_launch"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_borrow"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_borrow"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_repay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_repay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_bridge_claim"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_bridge_claim"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_accounting_sync"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_accounting_sync"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_pool"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_pool"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_twap"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_twap"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_hook"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_hook"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_router_terminal"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_router_terminal"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_721_pay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_721_pay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_adjust_tiers"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_adjust_tiers"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_721_launch"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_721_launch"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_revnet_deploy"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_revnet_deploy"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_auto_issue"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_auto_issue"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
}
],
"description": "contract_calls uses the full pinned ABI surface; named preparations use semantic schemas. Every result is a durable unsigned plan."
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: createTransactionPlan
GET/api/v1/plans signed read
List plans visible to the authenticated principal
Owners may read account bot plans; bots see their own principal's plans. Listing does not authorize relay mutation of another principal's plan.
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. |
account | query / optional | string |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | one of required |
JSON schema
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Plan"
},
"maxItems": 100
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "null"
}
]
}
},
"required": [
"items",
"nextCursor"
],
"additionalProperties": false
}operationId: listTransactionPlans
GET/api/v1/plans/{id} signed read
Read or reconcile a stored transaction plan
refresh=true reconciles canonical receipts and configured confirmations; it never broadcasts. transactions_confirmed describes only these exact calls and verified modeled effects, not bridge settlement.
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. |
id | path / required | string |
refresh | query / optional | boolean |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: getTransactionPlan
GET/api/v1/plans/{id}/steps/{step}/simulation signed read
Simulate a ready plan step at current canonical state
Dependencies must be canonically confirmed with verified or explicitly unmodeled semantics. State overrides are not supplied. Simulation is an observation, not an inclusion guarantee.
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. |
id | path / required | string |
step | path / required | integer |
Response 200
| Field | Type | Details |
|---|---|---|
planId | string (uuid) required | |
commitment | string required | |
stepIndex | integer required | |
simulated | boolean required | Values: |
blockNumber | string required | uint256 as a lossless decimal string |
blockHash | string required | |
result | string required | |
estimatedGas | string required | uint256 as a lossless decimal string |
limitations | array required |
JSON schema
{
"type": "object",
"properties": {
"planId": {
"type": "string",
"format": "uuid"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"stepIndex": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"simulated": {
"const": true,
"type": "boolean"
},
"blockNumber": {
"$ref": "#/components/schemas/Uint256"
},
"blockHash": {
"$ref": "#/components/schemas/Hash"
},
"result": {
"$ref": "#/components/schemas/HexBytes"
},
"estimatedGas": {
"$ref": "#/components/schemas/Uint256"
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"planId",
"commitment",
"stepIndex",
"simulated",
"blockNumber",
"blockHash",
"result",
"estimatedGas",
"limitations"
],
"additionalProperties": false
}operationId: simulateTransactionStep
POST/api/v1/plans/{id}/steps/{step}/submissions signed relay
Relay the exact wallet-signed transaction for one plan step
Requires a separate valid transaction signature from the plan wallet and fresh owner consent for each new dispatch. Bots include ownerApproval. Destination, calldata, native value, chain, sender and nonce are checked against the immutable call. A step permanently binds one transaction hash. Reconcile unknown broadcast results before retrying identical bytes.
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 / required | 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. |
id | path / required | string |
step | path / required | integer |
Request body
| Field | Type | Details | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
rawSignedTransaction | string required | Exact serialized EIP-155 legacy, EIP-2930, or EIP-1559 transaction signed by the plan wallet. Server policy bounds size, nonce, gas, fees, and cost. | |||||||||||||||||||||||||||||||||
ownerApproval | object optional | Fresh owner CenterTransactionApproval EIP-712 consent for this exact account, originating principal, plan commitment, step and serialized transaction hash. Required for a bot's new dispatch. Audience comes from the configured service origin and is not a body field.Fields
|
JSON schema
{
"type": "object",
"properties": {
"rawSignedTransaction": {
"$ref": "#/components/schemas/HexBytes",
"description": "Exact serialized EIP-155 legacy, EIP-2930, or EIP-1559 transaction signed by the plan wallet. Server policy bounds size, nonce, gas, fees, and cost."
},
"ownerApproval": {
"$ref": "#/components/schemas/TransactionApproval"
}
},
"required": [
"rawSignedTransaction"
],
"additionalProperties": false
}Response 202
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
plan | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dispatch | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"plan": {
"$ref": "#/components/schemas/Plan"
},
"dispatch": {
"$ref": "#/components/schemas/Dispatch"
}
},
"required": [
"plan",
"dispatch"
],
"additionalProperties": false
}operationId: submitSignedTransactionStep
POST/api/v1/plans/{id}/submissions signed relay
Process an explicit ordered set of signed plan steps
Stops at the first blocked step and returns partial progress. Each bot-dispatched entry needs its own fresh ownerApproval. complete means all supplied submissions were processed, not confirmed. Resume remaining ready steps later. Multi-call and multi-chain journeys are not atomic.
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 / required | 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. |
id | path / required | string |
Request body
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
submissions | array required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"submissions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stepIndex": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"rawSignedTransaction": {
"$ref": "#/components/schemas/HexBytes"
},
"ownerApproval": {
"$ref": "#/components/schemas/TransactionApproval"
}
},
"required": [
"stepIndex",
"rawSignedTransaction"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 32
}
},
"required": [
"submissions"
],
"additionalProperties": false
}Response 202
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
atomic | boolean required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
complete | boolean required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
results | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plan | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stoppedAt | integer optional | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error | object optional | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
remainingStepIndices | array optional | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
note | string optional |
JSON schema
{
"type": "object",
"properties": {
"atomic": {
"type": "boolean",
"const": false
},
"complete": {
"type": "boolean"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SubmissionResult"
},
"maxItems": 32
},
"plan": {
"$ref": "#/components/schemas/Plan"
},
"stoppedAt": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"error": {
"$ref": "#/components/schemas/SafeError"
},
"remainingStepIndices": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
}
},
"note": {
"type": "string"
}
},
"required": [
"atomic",
"complete",
"results",
"plan"
],
"additionalProperties": false
}operationId: submitSignedTransactionBundle
Sponsorship (4)
Prepaid transaction bundles, explicit owner forwarding consent, reviewed funding plans and exact destination execution evidence.
POST/api/v1/sponsorships signed plan
Prepare exact owner forwarding authorizations from a stored plan
Requires configured prepaid execution and the source plan's creating principal. Choose ready calls from the source plan. Multiple calls per chain are supported in plan order, within Center’s 32-step plan capacity. The owner reviews each exact ForwardRequest and its deadline; source-plan expiry only limits publication.
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 / required | 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 |
|---|---|---|
planId | string (uuid) required | |
stepIndexes | array optional | Omit to select all source steps, subject to the same limit. Multiple calls per chain execute in plan order; prerequisites must already be confirmed. This is Center’s plan capacity, not a provider limit. |
JSON schema
{
"type": "object",
"properties": {
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 32,
"uniqueItems": true,
"description": "Omit to select all source steps, subject to the same limit. Multiple calls per chain execute in plan order; prerequisites must already be confirmed. This is Center’s plan capacity, not a provider limit."
}
},
"required": [
"planId"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
availability | string required | funding_quote_available does not establish that the bundle is unpaid. execution_verified confirms exact inner execution; completed additionally requires verified modeled economic semantics. Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
publicationExpiresAt | integer required | Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorizations | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
quote | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
observations | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorizationNotice | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fundingNotice | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recovery | string optional | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
economicCompletion | boolean required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"state": {
"type": "string",
"enum": [
"prepared",
"submitting",
"submission_unknown",
"quoted"
]
},
"availability": {
"type": "string",
"enum": [
"available",
"submission_unknown",
"requires_verification",
"funding_quote_available",
"execution_verified",
"completed"
],
"description": "funding_quote_available does not establish that the bundle is unpaid. execution_verified confirms exact inner execution; completed additionally requires verified modeled economic semantics."
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"publicationExpiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds",
"description": "Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published."
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"authorizations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ForwardAuthorization"
},
"minItems": 1,
"maxItems": 32
},
"submission": {
"type": "object",
"properties": {
"hash": {
"$ref": "#/components/schemas/Hash"
},
"startedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"repeatPublicationAllowed": {
"type": "boolean",
"const": false
}
},
"required": [
"hash",
"startedAt",
"repeatPublicationAllowed"
],
"additionalProperties": false
},
"quote": {
"type": "object",
"properties": {
"bundleUuid": {
"type": "string"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"payments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SponsorshipPayment"
},
"maxItems": 4
},
"runtimeVerified": {
"type": "boolean"
},
"observedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"txUuid": {
"type": "string"
},
"chainId": {
"type": "integer",
"enum": [
1,
10,
8453,
42161
]
},
"outerCallHash": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"txUuid",
"chainId",
"outerCallHash"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 32
}
},
"required": [
"bundleUuid",
"commitment",
"payments",
"runtimeVerified",
"observedAt",
"transactions"
],
"additionalProperties": false
},
"observations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SponsorshipObservation"
},
"maxItems": 32
},
"authorizationNotice": {
"type": "string"
},
"fundingNotice": {
"type": "string"
},
"recovery": {
"type": "string"
},
"economicCompletion": {
"type": "boolean"
}
},
"required": [
"id",
"planId",
"planCommitment",
"commitment",
"state",
"availability",
"createdAt",
"publicationExpiresAt",
"revision",
"authorizations",
"observations",
"authorizationNotice",
"fundingNotice",
"economicCompletion"
],
"additionalProperties": false
}operationId: createSponsorshipPreparation
GET/api/v1/sponsorships/{id} signed read
Read or reconcile a prepaid execution wave
refresh=true verifies destination execution using canonical chain evidence; provider status is only a hint. A funding quote does not establish whether the bundle has been paid. Reconcile the source plan independently for its full dependency state.
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. |
id | path / required | string |
refresh | query / optional | boolean |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
availability | string required | funding_quote_available does not establish that the bundle is unpaid. execution_verified confirms exact inner execution; completed additionally requires verified modeled economic semantics. Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
publicationExpiresAt | integer required | Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorizations | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
quote | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
observations | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorizationNotice | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fundingNotice | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recovery | string optional | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
economicCompletion | boolean required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"state": {
"type": "string",
"enum": [
"prepared",
"submitting",
"submission_unknown",
"quoted"
]
},
"availability": {
"type": "string",
"enum": [
"available",
"submission_unknown",
"requires_verification",
"funding_quote_available",
"execution_verified",
"completed"
],
"description": "funding_quote_available does not establish that the bundle is unpaid. execution_verified confirms exact inner execution; completed additionally requires verified modeled economic semantics."
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"publicationExpiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds",
"description": "Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published."
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"authorizations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ForwardAuthorization"
},
"minItems": 1,
"maxItems": 32
},
"submission": {
"type": "object",
"properties": {
"hash": {
"$ref": "#/components/schemas/Hash"
},
"startedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"repeatPublicationAllowed": {
"type": "boolean",
"const": false
}
},
"required": [
"hash",
"startedAt",
"repeatPublicationAllowed"
],
"additionalProperties": false
},
"quote": {
"type": "object",
"properties": {
"bundleUuid": {
"type": "string"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"payments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SponsorshipPayment"
},
"maxItems": 4
},
"runtimeVerified": {
"type": "boolean"
},
"observedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"txUuid": {
"type": "string"
},
"chainId": {
"type": "integer",
"enum": [
1,
10,
8453,
42161
]
},
"outerCallHash": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"txUuid",
"chainId",
"outerCallHash"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 32
}
},
"required": [
"bundleUuid",
"commitment",
"payments",
"runtimeVerified",
"observedAt",
"transactions"
],
"additionalProperties": false
},
"observations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SponsorshipObservation"
},
"maxItems": 32
},
"authorizationNotice": {
"type": "string"
},
"fundingNotice": {
"type": "string"
},
"recovery": {
"type": "string"
},
"economicCompletion": {
"type": "boolean"
}
},
"required": [
"id",
"planId",
"planCommitment",
"commitment",
"state",
"availability",
"createdAt",
"publicationExpiresAt",
"revision",
"authorizations",
"observations",
"authorizationNotice",
"fundingNotice",
"economicCompletion"
],
"additionalProperties": false
}operationId: getSponsorshipPreparation
POST/api/v1/sponsorships/{id}/submissions signed relay
Publish exact owner-signed forward requests once
Supply signatures in authorization order. Bot publication additionally requires fresh CenterSponsorshipApproval bound to the exact submission hash. The adapter never repeats an uncertain provider POST; submission_unknown is not permission to publish again. Long forwarding validity does not create a reusable session.
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 / required | 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. |
id | path / required | string |
Request body
| Field | Type | Details | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
signatures | array required | One owner ECDSA ForwardRequest signature per returned authorization, in the same order. | ||||||||||||||||||||||||||||||
ownerApproval | object optional | Fresh owner CenterSponsorshipApproval EIP-712 consent for this exact publication. submissionHash commits to the preparation commitment and ordered lowercase forward signatures. Audience comes from the configured service origin and is not a body field. A long-lived ForwardRequest signature alone does not authorize a new bot publication.Fields
|
JSON schema
{
"type": "object",
"properties": {
"signatures": {
"type": "array",
"items": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{130}$"
},
"minItems": 1,
"maxItems": 32,
"description": "One owner ECDSA ForwardRequest signature per returned authorization, in the same order."
},
"ownerApproval": {
"$ref": "#/components/schemas/SponsorshipApproval"
}
},
"required": [
"signatures"
],
"additionalProperties": false
}Response 202
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
availability | string required | funding_quote_available does not establish that the bundle is unpaid. execution_verified confirms exact inner execution; completed additionally requires verified modeled economic semantics. Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
publicationExpiresAt | integer required | Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorizations | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
quote | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
observations | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorizationNotice | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fundingNotice | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recovery | string optional | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
economicCompletion | boolean required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"state": {
"type": "string",
"enum": [
"prepared",
"submitting",
"submission_unknown",
"quoted"
]
},
"availability": {
"type": "string",
"enum": [
"available",
"submission_unknown",
"requires_verification",
"funding_quote_available",
"execution_verified",
"completed"
],
"description": "funding_quote_available does not establish that the bundle is unpaid. execution_verified confirms exact inner execution; completed additionally requires verified modeled economic semantics."
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"publicationExpiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds",
"description": "Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published."
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"authorizations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ForwardAuthorization"
},
"minItems": 1,
"maxItems": 32
},
"submission": {
"type": "object",
"properties": {
"hash": {
"$ref": "#/components/schemas/Hash"
},
"startedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"repeatPublicationAllowed": {
"type": "boolean",
"const": false
}
},
"required": [
"hash",
"startedAt",
"repeatPublicationAllowed"
],
"additionalProperties": false
},
"quote": {
"type": "object",
"properties": {
"bundleUuid": {
"type": "string"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"payments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SponsorshipPayment"
},
"maxItems": 4
},
"runtimeVerified": {
"type": "boolean"
},
"observedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"txUuid": {
"type": "string"
},
"chainId": {
"type": "integer",
"enum": [
1,
10,
8453,
42161
]
},
"outerCallHash": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"txUuid",
"chainId",
"outerCallHash"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 32
}
},
"required": [
"bundleUuid",
"commitment",
"payments",
"runtimeVerified",
"observedAt",
"transactions"
],
"additionalProperties": false
},
"observations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SponsorshipObservation"
},
"maxItems": 32
},
"authorizationNotice": {
"type": "string"
},
"fundingNotice": {
"type": "string"
},
"recovery": {
"type": "string"
},
"economicCompletion": {
"type": "boolean"
}
},
"required": [
"id",
"planId",
"planCommitment",
"commitment",
"state",
"availability",
"createdAt",
"publicationExpiresAt",
"revision",
"authorizations",
"observations",
"authorizationNotice",
"fundingNotice",
"economicCompletion"
],
"additionalProperties": false
}operationId: publishSponsorshipAuthorizations
POST/api/v1/sponsorships/{id}/funding-plans signed plan
Persist a reviewed plan for one authenticated native funding quote
Payer must equal the API owner's wallet. Returns an unsigned durable plan for separate review, signature and submission. Center never signs or funds. Check existing funding before paying; funding confirmation does not prove destination execution, economic completion or bridge settlement.
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 / required | 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. |
id | path / required | string |
Request body
| Field | Type | Details |
|---|---|---|
chainId | integer required | Values: |
payer | string required | Must equal the authenticated API owner's wallet. The resulting unsigned funding plan requires separate owner review and signing. |
JSON schema
{
"type": "object",
"properties": {
"chainId": {
"type": "integer",
"enum": [
1,
10,
8453,
42161
]
},
"payer": {
"$ref": "#/components/schemas/Address",
"description": "Must equal the authenticated API owner's wallet. The resulting unsigned funding plan requires separate owner review and signing."
}
},
"required": [
"chainId",
"payer"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: createSponsorshipFundingPlan
Wallets (11)
Reviewed Safe creation calldata, owner-threshold binding and smart-account transaction plans. Availability depends on current verified manifests.
GET/api/v1/smart-accounts/capabilities public
Discover reviewed wallet manifests and remaining execution requirements
Runtime manifests and inspectors are operator-owned. Check top-level capabilities.userOperations for current provider availability and capabilities.sessions for activation readiness. Implemented routes or historical research do not prove deployed guard or account execution support; an empty deployment list supplies no usable manifest.
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
deploymentResearch | object required | Historical public source/code observations. Additional research fields are additive reference data. These are not active deployment manifests, account-configuration proof, session activation or execution support.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountOwnershipVerification | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sessionDurationsDays | array required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
walletCreation | boolean required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
userOperations | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deployments | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
requirements | array required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exclusions | array required |
JSON schema
{
"type": "object",
"properties": {
"deploymentResearch": {
"$ref": "#/components/schemas/SmartDeploymentResearch"
},
"accountOwnershipVerification": {
"type": "string",
"const": "safe-current-eoa-owner-threshold"
},
"sessionDurationsDays": {
"type": "array",
"const": [
7,
30
]
},
"walletCreation": {
"type": "boolean"
},
"userOperations": {
"type": "string",
"const": "/api/v1/capabilities"
},
"deployments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"manifestId": {
"type": "string"
},
"mode": {
"type": "string",
"enum": [
"ownership-only",
"execution-candidate"
],
"description": "Ownership-only manifests support association. Execution candidates still require current provider, deployed guard, account-history and policy verification."
},
"chainId": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"revision": {
"$ref": "#/components/schemas/Hash"
},
"manifest": {
"$ref": "#/components/schemas/SmartAccountManifest"
},
"moduleGeneration": {
"type": "string",
"enum": [
"legacy-validator",
"emissary"
]
},
"entryPointSourceVerified": {
"type": "boolean"
},
"moduleInspectionConfigured": {
"type": "boolean"
}
},
"required": [
"manifestId",
"mode",
"chainId",
"revision",
"manifest",
"moduleGeneration",
"entryPointSourceVerified",
"moduleInspectionConfigured"
],
"additionalProperties": false
}
},
"requirements": {
"type": "array",
"items": {
"type": "string"
}
},
"exclusions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"deploymentResearch",
"accountOwnershipVerification",
"sessionDurationsDays",
"walletCreation",
"userOperations",
"deployments",
"requirements",
"exclusions"
],
"additionalProperties": true
}operationId: getSmartAccountCapabilities
POST/api/v1/smart-accounts/binding-challenges owner signature
Inspect an existing reviewed Safe and prepare owner-threshold binding data
Requires the API owner and a configured exact manifest. Returns a distinct BindSmartAccount EIP-712 document after canonical owner/runtime checks. Sign the returned domain and message exactly. This is API wallet association, not session installation or spending authority.
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 |
|---|---|---|
manifestId | string required | |
address | string required | |
nonce | value required | |
expiresAt | integer required | Future Unix seconds no more than 900 seconds after server time. |
JSON schema
{
"type": "object",
"properties": {
"manifestId": {
"type": "string"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "Future Unix seconds no more than 900 seconds after server time."
}
},
"required": [
"manifestId",
"address",
"nonce",
"expiresAt"
],
"additionalProperties": false,
"description": "Select a server-published reviewed manifest and an existing Safe distinct from the API owner EOA. The API owner must be a current Safe owner. Nonce must be nonzero."
}Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
state | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
digest | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
typedData | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"state": {
"$ref": "#/components/schemas/SmartAccountState"
},
"digest": {
"$ref": "#/components/schemas/Hash"
},
"typedData": {
"type": "object",
"properties": {
"domain": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "Juicebox Center Smart Account"
},
"version": {
"type": "string",
"const": "1"
},
"chainId": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"verifyingContract": {
"$ref": "#/components/schemas/Address"
},
"salt": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"name",
"version",
"chainId",
"verifyingContract",
"salt"
],
"additionalProperties": false
},
"primaryType": {
"type": "string",
"const": "BindSmartAccount"
},
"types": {
"type": "object",
"const": {
"BindSmartAccount": [
{
"name": "accountId",
"type": "string"
},
{
"name": "owner",
"type": "address"
},
{
"name": "stateHash",
"type": "bytes32"
},
{
"name": "nonce",
"type": "bytes32"
},
{
"name": "expiresAt",
"type": "uint64"
}
]
}
},
"message": {
"type": "object",
"properties": {
"accountId": {
"$ref": "#/components/schemas/AccountId"
},
"owner": {
"$ref": "#/components/schemas/Address"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"expiresAt": {
"type": "string",
"pattern": "^(?:0|9007199254740991|[1-9][0-9]{0,14}|[1-8][0-9]{15}|900[0-6][0-9]{12}|90070[0-9]{11}|90071[0-8][0-9]{10}|900719[0-8][0-9]{9}|9007199[0-1][0-9]{8}|90071992[0-4][0-9]{7}|900719925[0-3][0-9]{6}|9007199254[0-6][0-9]{5}|90071992547[0-3][0-9]{4}|9007199254740[0-8][0-9]{2}|90071992547409[0-8][0-9]{1}|9007199254740990[0-9]{0})$",
"description": "Uint64 typed-data value serialized as a decimal string. Challenge request `expiresAt` uses a JSON integer in Unix seconds."
}
},
"required": [
"accountId",
"owner",
"stateHash",
"nonce",
"expiresAt"
],
"additionalProperties": false
}
},
"required": [
"domain",
"primaryType",
"types",
"message"
],
"additionalProperties": false
}
},
"required": [
"state",
"digest",
"typedData"
],
"additionalProperties": false
}operationId: createSmartBindingChallenge
POST/api/v1/smart-accounts/onboarding-challenges public
Review sole-owner Base wallet binding and one-hour browser API access
Bounded public canonical read for a deployed, configured sole-owner Base Safe without spending sessions. Returns the exact SetupAccount document and digest without enrollment, nonce consumption or generic signed-request headers. The browser selects the grant UUID/key before review. Requires configured onboarding storage and a complete current dependency/module inspection; missing support fails explicitly.
Request body
| Field | Type | Details | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
owner | value required | |||||||||||||||||||
address | value required | |||||||||||||||||||
manifestId | string required | |||||||||||||||||||
nonce | value required | |||||||||||||||||||
issuedAt | integer required | No more than 30 seconds ahead of server time. | ||||||||||||||||||
expiresAt | integer required | Future Unix seconds, after issuedAt and no more than 300 seconds later. | ||||||||||||||||||
grant | object required | Browser-selected lowercase UUID v4 and distinct browser API key. Scopes must be exactly read, plan, relay in that order; no onchain signing or spending authority.Fields
|
JSON schema
{
"type": "object",
"properties": {
"owner": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"address": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"manifestId": {
"type": "string",
"pattern": "^[a-zA-Z0-9:_-]{1,192}$"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"issuedAt": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "No more than 30 seconds ahead of server time."
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "Future Unix seconds, after issuedAt and no more than 300 seconds later."
},
"grant": {
"$ref": "#/components/schemas/SmartOnboardingGrant"
}
},
"required": [
"owner",
"address",
"manifestId",
"nonce",
"issuedAt",
"expiresAt",
"grant"
],
"additionalProperties": false,
"description": "Public read for one canonically deployed sole-owner Base Safe without spending sessions. Owner, wallet and browser key must be distinct. All fields are required; unknown fields are rejected. This read neither enrolls an account nor consumes the nonce."
}Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
state | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
digest | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
typedData | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"state": {
"$ref": "#/components/schemas/SmartAccountState"
},
"digest": {
"$ref": "#/components/schemas/Hash"
},
"typedData": {
"type": "object",
"properties": {
"domain": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "Juicebox Center Account Setup"
},
"version": {
"type": "string",
"const": "1"
},
"chainId": {
"type": "integer",
"const": 8453
},
"verifyingContract": {
"$ref": "#/components/schemas/Address"
},
"salt": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"name",
"version",
"chainId",
"verifyingContract",
"salt"
],
"additionalProperties": false
},
"primaryType": {
"type": "string",
"const": "SetupAccount"
},
"types": {
"type": "object",
"const": {
"SetupAccount": [
{
"name": "accountId",
"type": "string"
},
{
"name": "owner",
"type": "address"
},
{
"name": "manifestId",
"type": "string"
},
{
"name": "manifestRevision",
"type": "bytes32"
},
{
"name": "initializerHash",
"type": "bytes32"
},
{
"name": "stateHash",
"type": "bytes32"
},
{
"name": "nonce",
"type": "bytes32"
},
{
"name": "issuedAt",
"type": "uint64"
},
{
"name": "expiresAt",
"type": "uint64"
},
{
"name": "grantId",
"type": "string"
},
{
"name": "botAddress",
"type": "address"
},
{
"name": "scopes",
"type": "string[]"
},
{
"name": "grantExpiresAt",
"type": "uint64"
},
{
"name": "label",
"type": "string"
}
]
}
},
"message": {
"type": "object",
"properties": {
"accountId": {
"$ref": "#/components/schemas/AccountId"
},
"owner": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"manifestId": {
"type": "string",
"pattern": "^[a-zA-Z0-9:_-]{1,192}$"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
},
"initializerHash": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"issuedAt": {
"type": "string",
"pattern": "^(?:0|9007199254740991|[1-9][0-9]{0,14}|[1-8][0-9]{15}|900[0-6][0-9]{12}|90070[0-9]{11}|90071[0-8][0-9]{10}|900719[0-8][0-9]{9}|9007199[0-1][0-9]{8}|90071992[0-4][0-9]{7}|900719925[0-3][0-9]{6}|9007199254[0-6][0-9]{5}|90071992547[0-3][0-9]{4}|9007199254740[0-8][0-9]{2}|90071992547409[0-8][0-9]{1}|9007199254740990[0-9]{0})$",
"description": "Typed-data uint64 serialized as a decimal string. Request timestamps use JSON integers in Unix seconds."
},
"expiresAt": {
"type": "string",
"pattern": "^(?:0|9007199254740991|[1-9][0-9]{0,14}|[1-8][0-9]{15}|900[0-6][0-9]{12}|90070[0-9]{11}|90071[0-8][0-9]{10}|900719[0-8][0-9]{9}|9007199[0-1][0-9]{8}|90071992[0-4][0-9]{7}|900719925[0-3][0-9]{6}|9007199254[0-6][0-9]{5}|90071992547[0-3][0-9]{4}|9007199254740[0-8][0-9]{2}|90071992547409[0-8][0-9]{1}|9007199254740990[0-9]{0})$",
"description": "Typed-data uint64 serialized as a decimal string. Request timestamps use JSON integers in Unix seconds."
},
"grantId": {
"type": "string",
"format": "uuid",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
},
"botAddress": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"scopes": {
"type": "array",
"const": [
"read",
"plan",
"relay"
]
},
"grantExpiresAt": {
"type": "string",
"pattern": "^(?:0|9007199254740991|[1-9][0-9]{0,14}|[1-8][0-9]{15}|900[0-6][0-9]{12}|90070[0-9]{11}|90071[0-8][0-9]{10}|900719[0-8][0-9]{9}|9007199[0-1][0-9]{8}|90071992[0-4][0-9]{7}|900719925[0-3][0-9]{6}|9007199254[0-6][0-9]{5}|90071992547[0-3][0-9]{4}|9007199254740[0-8][0-9]{2}|90071992547409[0-8][0-9]{1}|9007199254740990[0-9]{0})$",
"description": "Typed-data uint64 serialized as a decimal string. Request timestamps use JSON integers in Unix seconds."
},
"label": {
"type": "string",
"pattern": "^[^\\u0000-\\u001f\\u007f]*$",
"x-maxUtf8Bytes": 120
}
},
"required": [
"accountId",
"owner",
"manifestId",
"manifestRevision",
"initializerHash",
"stateHash",
"nonce",
"issuedAt",
"expiresAt",
"grantId",
"botAddress",
"scopes",
"grantExpiresAt",
"label"
],
"additionalProperties": false
}
},
"required": [
"domain",
"primaryType",
"types",
"message"
],
"additionalProperties": false
}
},
"required": [
"state",
"digest",
"typedData"
],
"additionalProperties": false
}operationId: createSmartOnboardingChallenge
POST/api/v1/smart-accounts/onboarding public
Finalize account identity, wallet binding and exact browser API grant with one owner approval
Requires the current sole owner's SetupAccount signature and the distinct browser key's CenterSetupProof over the setup digest. No generic CenterRequest headers are needed. Rechecks fresh canonical deployment state, then atomically enrolls if absent, binds and creates the exact grant. Replay may return the existing current result; revoked, changed or superseded authority is never restored. Persist the grant UUID/key, document and signatures before dispatch. Recover a lost successful response with the saved grant and an ordinary grant-signed binding GET. Deployment and each payment retain separate owner approval; this route authorizes no transaction or onchain session.
Request body
| Field | Type | Details | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
owner | value required | |||||||||||||||||||
address | value required | |||||||||||||||||||
manifestId | string required | |||||||||||||||||||
nonce | value required | |||||||||||||||||||
issuedAt | integer required | No more than 30 seconds ahead of server time. | ||||||||||||||||||
expiresAt | integer required | Future Unix seconds, after issuedAt and no more than 300 seconds later. | ||||||||||||||||||
grant | object required | Browser-selected lowercase UUID v4 and distinct browser API key. Scopes must be exactly read, plan, relay in that order; no onchain signing or spending authority.Fields
| ||||||||||||||||||
manifestRevision | string required | |||||||||||||||||||
initializerHash | string required | |||||||||||||||||||
stateHash | string required | |||||||||||||||||||
signature | string required | Current sole owner's signature over the exact returned SetupAccount document. | ||||||||||||||||||
proofSignature | string required | Browser key's CenterSetupProof signature over {setupDigest: challenge.digest}, using the SetupAccount domain. This is not a CenterBotProof signature. |
JSON schema
{
"type": "object",
"properties": {
"owner": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"address": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"manifestId": {
"type": "string",
"pattern": "^[a-zA-Z0-9:_-]{1,192}$"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"issuedAt": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "No more than 30 seconds ahead of server time."
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "Future Unix seconds, after issuedAt and no more than 300 seconds later."
},
"grant": {
"$ref": "#/components/schemas/SmartOnboardingGrant"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
},
"initializerHash": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"signature": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{128}(?:1[bBcC])$",
"description": "Current sole owner's signature over the exact returned SetupAccount document."
},
"proofSignature": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{128}(?:1[bBcC])$",
"description": "Browser key's CenterSetupProof signature over {setupDigest: challenge.digest}, using the SetupAccount domain. This is not a CenterBotProof signature."
}
},
"required": [
"owner",
"address",
"manifestId",
"nonce",
"issuedAt",
"expiresAt",
"grant",
"manifestRevision",
"initializerHash",
"stateHash",
"signature",
"proofSignature"
],
"additionalProperties": false,
"description": "Purpose-signed body; no generic CenterRequest signature is needed. Rechecks canonical state and atomically enrolls the API identity if absent, binds the wallet and creates the exact signed grant. Authorizes no transaction, onchain session or broader API grant."
}Response 201
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
account | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
binding | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
grant | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
},
"binding": {
"$ref": "#/components/schemas/SmartAccountBinding"
},
"grant": {
"$ref": "#/components/schemas/BotGrant"
}
},
"required": [
"account",
"binding",
"grant"
],
"additionalProperties": false
}operationId: finalizeSmartOnboarding
POST/api/v1/smart-accounts/bindings owner signature
Link a reviewed Safe using its current EOA-owner threshold signatures
Rechecks current owner/module state and verifies exactly the required threshold of packed EOA owner signatures in ascending address order. The API owner must be one current owner. Binding nonces cannot restore an unlinked or superseded authorization.
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 |
|---|---|---|
manifestId | string required | |
address | string required | |
nonce | value required | |
expiresAt | integer required | Future Unix seconds no more than 900 seconds after server time. |
stateHash | string required | |
signature | string required | Exactly the current threshold of concatenated 65-byte EOA owner signatures, sorted by ascending owner address. Only direct EIP-712 signatures with v=27 or v=28 are accepted. |
JSON schema
{
"type": "object",
"properties": {
"manifestId": {
"type": "string"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "Future Unix seconds no more than 900 seconds after server time."
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"signature": {
"type": "string",
"pattern": "^0x(?:[0-9a-fA-F]{130}){1,16}$",
"description": "Exactly the current threshold of concatenated 65-byte EOA owner signatures, sorted by ascending owner address. Only direct EIP-712 signatures with v=27 or v=28 are accepted."
}
},
"required": [
"manifestId",
"address",
"nonce",
"expiresAt",
"stateHash",
"signature"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ownerAccountId | string required | Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ownerAddress | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wallet | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
manifestId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorization | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/Hash"
},
"ownerAccountId": {
"$ref": "#/components/schemas/AccountId"
},
"ownerAddress": {
"$ref": "#/components/schemas/Address"
},
"wallet": {
"type": "object",
"properties": {
"chainId": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"address": {
"$ref": "#/components/schemas/Address"
}
},
"required": [
"chainId",
"address"
],
"additionalProperties": false
},
"manifestId": {
"type": "string"
},
"authorization": {
"oneOf": [
{
"type": "object",
"properties": {
"digest": {
"$ref": "#/components/schemas/Hash"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"method": {
"type": "string",
"const": "safe-current-owner-threshold"
}
},
"required": [
"digest",
"nonce",
"expiresAt",
"method"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"digest": {
"$ref": "#/components/schemas/Hash"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"method": {
"type": "string",
"const": "safe-current-owner-threshold-and-api-grant"
},
"setup": {
"type": "object",
"properties": {
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
},
"initializerHash": {
"$ref": "#/components/schemas/Hash"
},
"issuedAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"grantId": {
"type": "string",
"format": "uuid",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
},
"botAddress": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"scopes": {
"type": "array",
"const": [
"read",
"plan",
"relay"
]
},
"grantExpiresAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"label": {
"type": "string",
"pattern": "^[^\\u0000-\\u001f\\u007f]*$",
"x-maxUtf8Bytes": 120
}
},
"required": [
"manifestRevision",
"initializerHash",
"issuedAt",
"grantId",
"botAddress",
"scopes",
"grantExpiresAt",
"label"
],
"additionalProperties": false
}
},
"required": [
"digest",
"nonce",
"expiresAt",
"method",
"setup"
],
"additionalProperties": false
}
]
},
"state": {
"$ref": "#/components/schemas/SmartAccountState"
}
},
"required": [
"id",
"ownerAccountId",
"ownerAddress",
"wallet",
"manifestId",
"authorization",
"state"
],
"additionalProperties": false
}operationId: bindSmartAccount
GET/api/v1/smart-accounts/bindings signed read
List stored wallet association snapshots for this API account
Stored snapshots are not fresh chain verification. Read an individual binding to recheck its current state. executionVerified remains false.
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. |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | array required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/Hash"
},
"wallet": {
"type": "object",
"properties": {
"chainId": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"address": {
"$ref": "#/components/schemas/Address"
}
},
"required": [
"chainId",
"address"
],
"additionalProperties": false
},
"manifestId": {
"type": "string"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"evidence": {
"$ref": "#/components/schemas/BlockEvidence"
},
"moduleConfigurationVerified": {
"type": "boolean"
},
"executionVerified": {
"type": "boolean",
"const": false
},
"observation": {
"type": "string",
"const": "stored-binding-snapshot"
}
},
"required": [
"id",
"wallet",
"manifestId",
"stateHash",
"evidence",
"moduleConfigurationVerified",
"executionVerified",
"observation"
],
"additionalProperties": false
}
}
},
"required": [
"items"
],
"additionalProperties": false
}operationId: listSmartAccountBindings
GET/api/v1/smart-accounts/bindings/{id} signed read
Recheck a wallet binding against current canonical state
A changed owner or modeled module configuration requires a new owner-authorized binding. This read does not establish session execution support.
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. |
id | path / required | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ownerAccountId | string required | Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ownerAddress | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wallet | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
manifestId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
authorization | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/Hash"
},
"ownerAccountId": {
"$ref": "#/components/schemas/AccountId"
},
"ownerAddress": {
"$ref": "#/components/schemas/Address"
},
"wallet": {
"type": "object",
"properties": {
"chainId": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"address": {
"$ref": "#/components/schemas/Address"
}
},
"required": [
"chainId",
"address"
],
"additionalProperties": false
},
"manifestId": {
"type": "string"
},
"authorization": {
"oneOf": [
{
"type": "object",
"properties": {
"digest": {
"$ref": "#/components/schemas/Hash"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"method": {
"type": "string",
"const": "safe-current-owner-threshold"
}
},
"required": [
"digest",
"nonce",
"expiresAt",
"method"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"digest": {
"$ref": "#/components/schemas/Hash"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"expiresAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"method": {
"type": "string",
"const": "safe-current-owner-threshold-and-api-grant"
},
"setup": {
"type": "object",
"properties": {
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
},
"initializerHash": {
"$ref": "#/components/schemas/Hash"
},
"issuedAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"grantId": {
"type": "string",
"format": "uuid",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
},
"botAddress": {
"allOf": [
{
"$ref": "#/components/schemas/Address"
},
{
"not": {
"enum": [
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000001"
]
}
}
]
},
"scopes": {
"type": "array",
"const": [
"read",
"plan",
"relay"
]
},
"grantExpiresAt": {
"$ref": "#/components/schemas/UnixSeconds"
},
"label": {
"type": "string",
"pattern": "^[^\\u0000-\\u001f\\u007f]*$",
"x-maxUtf8Bytes": 120
}
},
"required": [
"manifestRevision",
"initializerHash",
"issuedAt",
"grantId",
"botAddress",
"scopes",
"grantExpiresAt",
"label"
],
"additionalProperties": false
}
},
"required": [
"digest",
"nonce",
"expiresAt",
"method",
"setup"
],
"additionalProperties": false
}
]
},
"state": {
"$ref": "#/components/schemas/SmartAccountState"
}
},
"required": [
"id",
"ownerAccountId",
"ownerAddress",
"wallet",
"manifestId",
"authorization",
"state"
],
"additionalProperties": false
}operationId: getSmartAccountBinding
DELETE/api/v1/smart-accounts/bindings/{id} owner signature
Unlink a wallet from the owner's API account
API unlink only. It does not revoke an installed onchain session, alter a Safe owner set, or cancel previously authorized chain execution.
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. |
id | path / required | string |
Response 200
| Field | Type | Details |
|---|---|---|
id | string required | |
status | string required | Values: |
onchainSessionRevoked | boolean required | Values: |
reason | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/Hash"
},
"status": {
"type": "string",
"const": "unlinked"
},
"onchainSessionRevoked": {
"type": "boolean",
"const": false
},
"reason": {
"type": "string"
}
},
"required": [
"id",
"status",
"onchainSessionRevoked",
"reason"
],
"additionalProperties": false
}operationId: unlinkSmartAccount
POST/api/v1/smart-accounts/session-reviews signed plan
Review a bounded session policy without installing or activating it
Requires a verified existing binding, an active cumulative relay grant and configured reviewed action targets. Returns reviewable-not-activated, exact policy hashes and remaining activation requirements. There is no encoded installation transaction, UserOperation, live session or standing fund-moving authorization in this result. Seven- or thirty-day durations must fit the selected grant.
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bindingId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
grantId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
generation | value required | Positive uint256 as an exact decimal string. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nonce | value required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
validAfter | integer required | Start at or after server time, within the next 86400 seconds. The complete chosen duration must fit the active bot grant's expiry. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
durationDays | integer required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maximumCalls | value required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gasBudget | object optional | Host-reviewed gas-only paymaster on the wallet chain. Per-operation gas must fit totalGasLimit; priority fee must not exceed fee cap; maxGasPerOperation × maxFeePerGas must fit totalSponsoredCostLimit. No account asset charge or new allowance is authorized.Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allocations | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actions | array required | FieldsOption 1
Option 2
Option 3
|
JSON schema
{
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"grantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$"
},
"generation": {
"$ref": "#/components/schemas/PositiveUint256"
},
"nonce": {
"allOf": [
{
"$ref": "#/components/schemas/Hash"
},
{
"not": {
"const": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
}
]
},
"validAfter": {
"$ref": "#/components/schemas/UnixSeconds",
"description": "Start at or after server time, within the next 86400 seconds. The complete chosen duration must fit the active bot grant's expiry."
},
"durationDays": {
"type": "integer",
"enum": [
7,
30
]
},
"maximumCalls": {
"$ref": "#/components/schemas/SessionMaximumCalls"
},
"gasBudget": {
"$ref": "#/components/schemas/SessionGasBudget"
},
"allocations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SessionAllocationGroup"
},
"maxItems": 16
},
"actions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SessionAction"
},
"minItems": 1,
"maxItems": 16
}
},
"required": [
"bindingId",
"grantId",
"generation",
"nonce",
"validAfter",
"durationDays",
"maximumCalls",
"allocations",
"actions"
],
"additionalProperties": false,
"description": "Review does not activate authority. The selected grant must be active with read+plan+relay; a bot can review only its own grant. Groups, chain/asset coordinates, allocation IDs and target/selector actions must be unique. Assets require reviewed identities and matching decimals; action caps must fit allocations. URI-only policies can have no asset groups, but executable sessions still require the sponsored gas budget. V6 project URI permission must belong to the smart account."
}Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
policy | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
policyHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
walletStateHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
manifestRevision | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
evidence | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ownerApproval | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
activationRequirements | array required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
warnings | array required |
JSON schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "reviewable-not-activated"
},
"policy": {
"$ref": "#/components/schemas/ReviewedSessionPolicy"
},
"policyHash": {
"$ref": "#/components/schemas/Hash"
},
"walletStateHash": {
"$ref": "#/components/schemas/Hash"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
},
"evidence": {
"$ref": "#/components/schemas/BlockEvidence"
},
"ownerApproval": {
"type": "object",
"properties": {
"required": {
"type": "boolean",
"const": true
},
"signerRole": {
"type": "string",
"const": "smart-account-owner-threshold"
},
"action": {
"type": "string",
"const": "install-or-enable-exact-session-policy"
},
"noPermanentBotProjectPermission": {
"type": "boolean",
"const": true
}
},
"required": [
"required",
"signerRole",
"action",
"noPermanentBotProjectPermission"
],
"additionalProperties": false
},
"activationRequirements": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"status",
"policy",
"policyHash",
"walletStateHash",
"manifestRevision",
"evidence",
"ownerApproval",
"activationRequirements",
"warnings"
],
"additionalProperties": false
}operationId: reviewSmartAccountSession
POST/api/v1/smart-accounts/creation-plans owner signature
Prepare deterministic Safe creation calldata with canonical dependency evidence
Returns stateless exact factory calldata, predicted address and initializer. The API owner must appear in the owner set. A wallet signs and funds the factory transaction separately; this response is not a durable transaction plan or deployed account. Bind only after confirmed canonical creation and verified configuration.
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 / required | 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 |
|---|---|---|
manifestId | string required | |
owners | array required | Fields
|
threshold | integer required | |
saltNonce | string required | uint256 as a lossless decimal string |
JSON schema
{
"type": "object",
"properties": {
"manifestId": {
"type": "string"
},
"owners": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Address"
},
"minItems": 1,
"maxItems": 16,
"uniqueItems": true
},
"threshold": {
"type": "integer",
"minimum": 1,
"maximum": 16
},
"saltNonce": {
"$ref": "#/components/schemas/Uint256"
}
},
"required": [
"manifestId",
"owners",
"threshold",
"saltNonce"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
creation | object required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"creation": {
"$ref": "#/components/schemas/SmartCreation"
}
},
"required": [
"creation"
],
"additionalProperties": false
}operationId: prepareSmartAccountCreation
POST/api/v1/smart-accounts/bindings/{id}/plans signed plan
Create a durable plan for a currently verified smart-account binding
The draft account must equal the exact bound Safe. Use contract_calls or a catalog operation and preserve the creating principal. Prepare its execution through /user-operations; an API grant or binding cannot supply a Safe-owner signature or session authority.
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 / required | 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. |
id | path / required | string |
Request body
Option 1
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 2
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 3
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 4
| Field | Type | Details | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||
input | object required | Fields
|
Option 5
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 6
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 7
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 8
| Field | Type | Details | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||
input | object required | Fields
|
Option 9
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 10
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 11
| Field | Type | Details | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||
input | object required | Fields
|
Option 12
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 13
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 14
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 15
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 16
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 17
| Field | Type | Details | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||||||||
input | object required | Fields
|
Option 18
| Field | Type | Details | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||
input | object required | Fields
|
Option 19
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
JSON schema
{
"oneOf": [
{
"type": "object",
"properties": {
"operation": {
"const": "contract_calls",
"type": "string"
},
"input": {
"$ref": "#/components/schemas/PrepareContractCalls"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_pay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_pay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_cash_out"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_cash_out"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_payout"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_payout"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_ruleset_change"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_ruleset_change"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_launch"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_launch"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_borrow"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_borrow"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_repay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_repay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_bridge_claim"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_bridge_claim"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_accounting_sync"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_accounting_sync"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_pool"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_pool"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_twap"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_twap"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_hook"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_hook"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_router_terminal"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_router_terminal"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_721_pay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_721_pay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_adjust_tiers"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_adjust_tiers"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_721_launch"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_721_launch"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_revnet_deploy"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_revnet_deploy"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_auto_issue"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_auto_issue"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
}
],
"description": "contract_calls uses the full pinned ABI surface; named preparations use semantic schemas. Every result is a durable unsigned plan."
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}operationId: createSmartAccountTransactionPlan
Sessions (6)
Immutable seven- or thirty-day policies, owner activation/revocation plans and canonical onchain quota observations.
POST/api/v1/smart-accounts/sessions signed plan
Compile and persist an immutable bounded session generation
Requires a complete verified binding, active read+plan+relay grant, reviewed compiler, asset/action targets and mandatory gas-only sponsorship budget. URI-only sessions may use allocations:[]. Preparation returns prepared and no standing authority. Generation, salt, policy nonce and permission identities cannot be reused.
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 / required | 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
See schema: Compile and store an exact seven- or thirty-day session. Requires a reviewed gas-only sponsor and complete runtime/module verification. Preparation does not install authority.
JSON schema
{
"allOf": [
{
"$ref": "#/components/schemas/SessionReviewInput"
},
{
"type": "object",
"required": [
"gasBudget"
]
}
],
"description": "Compile and store an exact seven- or thirty-day session. Requires a reviewed gas-only sponsor and complete runtime/module verification. Preparation does not install authority."
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actor | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
compiled | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
preparedAdministration | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allocationGroups | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allocationManifestHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
updatedAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
activation | object optional | Stored server-verified consent for the owner's exact lifecycle-plan request. It is not an HTTP proof submission or an onchain Safe signature.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revocation | object optional | Stored server-verified consent for the owner's exact lifecycle-plan request. It is not an HTTP proof submission or an onchain Safe signature.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
observation | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invalidation | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reservationsReleased | boolean required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
supersededApprovals | array optional | Fields
|
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"actor": {
"type": "object",
"properties": {
"accountId": {
"$ref": "#/components/schemas/AccountId"
},
"principalId": {
"$ref": "#/components/schemas/PrincipalId"
}
},
"required": [
"accountId",
"principalId"
],
"additionalProperties": false
},
"compiled": {
"$ref": "#/components/schemas/CompiledSession"
},
"preparedAdministration": {
"$ref": "#/components/schemas/SessionAdministrationBaseline"
},
"allocationGroups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReviewedSessionAllocationGroup"
},
"maxItems": 16
},
"allocationManifestHash": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"updatedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"state": {
"$ref": "#/components/schemas/SessionState"
},
"activation": {
"$ref": "#/components/schemas/SessionOwnerPlanApproval"
},
"revocation": {
"$ref": "#/components/schemas/SessionOwnerPlanApproval"
},
"observation": {
"$ref": "#/components/schemas/SessionCanonicalObservation"
},
"invalidation": {
"$ref": "#/components/schemas/SessionInvalidation"
},
"reservationsReleased": {
"type": "boolean"
},
"supersededApprovals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"approval": {
"$ref": "#/components/schemas/SessionOwnerPlanApproval"
},
"supersededAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
}
},
"required": [
"approval",
"supersededAt"
],
"additionalProperties": false
},
"maxItems": 32
}
},
"required": [
"id",
"actor",
"compiled",
"preparedAdministration",
"allocationGroups",
"allocationManifestHash",
"createdAt",
"updatedAt",
"revision",
"state",
"reservationsReleased"
],
"additionalProperties": false,
"description": "Immutable approved policy plus revisioned lifecycle evidence. Only active with fresh canonical proof permits bot execution. Expiry, API revocation and unlinking do not release wallet reservations; finalized disabled state with an advanced enable nonce is required."
}operationId: prepareSmartAccountSession
GET/api/v1/smart-accounts/sessions signed read
List immutable sessions visible to the owner or exact bound bot
Ordered by session UUID. Follow optional nextCursor unchanged. The owner can inspect account sessions; a bot sees only the session's exact grant. Listing does not refresh chain evidence.
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. |
limit | query / optional | integer |
cursor | query / optional | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | string (uuid) optional |
JSON schema
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StoredSession"
},
"maxItems": 100
},
"nextCursor": {
"$ref": "#/components/schemas/ResourceId"
}
},
"required": [
"items"
],
"additionalProperties": false
}operationId: listSmartAccountSessions
GET/api/v1/smart-accounts/sessions/{id} signed read
Read or refresh exact installed-policy and counter evidence
Refreshes sessions with an activation claim by default. refresh=false returns stored history. Reorgs, counter resets and configuration changes suspend execution; stale proofs do not restore a generation. A failed verifier can return a problem while recording stale state.
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. |
id | path / required | string |
refresh | query / optional | boolean |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actor | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
compiled | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
preparedAdministration | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allocationGroups | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allocationManifestHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
updatedAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
activation | object optional | Stored server-verified consent for the owner's exact lifecycle-plan request. It is not an HTTP proof submission or an onchain Safe signature.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revocation | object optional | Stored server-verified consent for the owner's exact lifecycle-plan request. It is not an HTTP proof submission or an onchain Safe signature.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
observation | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invalidation | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reservationsReleased | boolean required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
supersededApprovals | array optional | Fields
|
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"actor": {
"type": "object",
"properties": {
"accountId": {
"$ref": "#/components/schemas/AccountId"
},
"principalId": {
"$ref": "#/components/schemas/PrincipalId"
}
},
"required": [
"accountId",
"principalId"
],
"additionalProperties": false
},
"compiled": {
"$ref": "#/components/schemas/CompiledSession"
},
"preparedAdministration": {
"$ref": "#/components/schemas/SessionAdministrationBaseline"
},
"allocationGroups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReviewedSessionAllocationGroup"
},
"maxItems": 16
},
"allocationManifestHash": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"updatedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"state": {
"$ref": "#/components/schemas/SessionState"
},
"activation": {
"$ref": "#/components/schemas/SessionOwnerPlanApproval"
},
"revocation": {
"$ref": "#/components/schemas/SessionOwnerPlanApproval"
},
"observation": {
"$ref": "#/components/schemas/SessionCanonicalObservation"
},
"invalidation": {
"$ref": "#/components/schemas/SessionInvalidation"
},
"reservationsReleased": {
"type": "boolean"
},
"supersededApprovals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"approval": {
"$ref": "#/components/schemas/SessionOwnerPlanApproval"
},
"supersededAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
}
},
"required": [
"approval",
"supersededAt"
],
"additionalProperties": false
},
"maxItems": 32
}
},
"required": [
"id",
"actor",
"compiled",
"preparedAdministration",
"allocationGroups",
"allocationManifestHash",
"createdAt",
"updatedAt",
"revision",
"state",
"reservationsReleased"
],
"additionalProperties": false,
"description": "Immutable approved policy plus revisioned lifecycle evidence. Only active with fresh canonical proof permits bot execution. Expiry, API revocation and unlinking do not release wallet reservations; finalized disabled state with an advanced enable nonce is required."
}operationId: getSmartAccountSession
GET/api/v1/smart-accounts/sessions/{id}/quota signed read
Read approved allocations and freshly observed onchain counters
Refreshes available installed evidence. Preserve chain and asset units. Database limits do not establish token balances or reusable cross-chain budget; policy validation can consume limits even when execution fails.
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. |
id | path / required | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sessionId | string (uuid) required | |||||||||||||||||||||||||||||||||||||
state | string required | Values: | ||||||||||||||||||||||||||||||||||||
allocationManifestHash | string required | |||||||||||||||||||||||||||||||||||||
approvedGroups | array required | Fields
| ||||||||||||||||||||||||||||||||||||
localAllocations | array required | Fields
| ||||||||||||||||||||||||||||||||||||
counters | one of required | |||||||||||||||||||||||||||||||||||||
observation | one of required | |||||||||||||||||||||||||||||||||||||
reservationsReleased | boolean required | |||||||||||||||||||||||||||||||||||||
executionAuthority | boolean required | Values: | ||||||||||||||||||||||||||||||||||||
balanceSource | string required | Values: | ||||||||||||||||||||||||||||||||||||
atomicAcrossChains | boolean required | Values: |
JSON schema
{
"type": "object",
"properties": {
"sessionId": {
"$ref": "#/components/schemas/ResourceId"
},
"state": {
"$ref": "#/components/schemas/SessionState"
},
"allocationManifestHash": {
"$ref": "#/components/schemas/Hash"
},
"approvedGroups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReviewedSessionAllocationGroup"
}
},
"localAllocations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReviewedSessionAllocation"
}
},
"counters": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/components/schemas/SessionCounter"
}
},
{
"type": "null"
}
]
},
"observation": {
"anyOf": [
{
"$ref": "#/components/schemas/SessionCanonicalObservation"
},
{
"type": "null"
}
]
},
"reservationsReleased": {
"type": "boolean"
},
"executionAuthority": {
"type": "boolean",
"const": false
},
"balanceSource": {
"type": "string",
"const": "onchain-only"
},
"atomicAcrossChains": {
"type": "boolean",
"const": false
}
},
"required": [
"sessionId",
"state",
"allocationManifestHash",
"approvedGroups",
"localAllocations",
"counters",
"observation",
"reservationsReleased",
"executionAuthority",
"balanceSource",
"atomicAcrossChains"
],
"additionalProperties": false,
"description": "Approved allocations and observed policy counters. This is not a spendable database balance or a cross-chain atomic budget."
}operationId: getSmartAccountSessionQuota
POST/api/v1/smart-accounts/sessions/{id}/activation-plans owner signature
Prepare the owner's exact session activation plan
Only the API owner can request this plan, acknowledging the exact compiledHash. Separately prepare a UserOperation from the returned plan, obtain the current Safe-owner threshold signatures, submit and refresh the session. Only the currently admitted lifecycle plan may execute. An expired plan with no admitted transport or attempt can be replaced with fresh owner consent and a new idempotency key, preserving up to 32 superseded approvals. Replacement cannot reinitialize an observed active generation. Only one generation per physical wallet may remain admitted, across keys, grants, assets and time windows. Release requires finalized disabled state with an advanced enable nonce; API revocation, unlinking or expiry alone cannot release it.
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 / required | 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. |
id | path / required | string |
Request body
| Field | Type | Details |
|---|---|---|
compiledHash | string required |
JSON schema
{
"type": "object",
"properties": {
"compiledHash": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"compiledHash"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
session | object required | Immutable approved policy plus revisioned lifecycle evidence. Only active with fresh canonical proof permits bot execution. Expiry, API revocation and unlinking do not release wallet reservations; finalized disabled state with an advanced enable nonce is required.Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plan | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
installationConfirmed | boolean required | New lifecycle plans return false. An idempotent replay of the admitted plan returns true when the stored session is already active; the response does not perform another installation or refresh chain evidence. |
JSON schema
{
"type": "object",
"properties": {
"session": {
"$ref": "#/components/schemas/StoredSession"
},
"plan": {
"$ref": "#/components/schemas/Plan"
},
"installationConfirmed": {
"type": "boolean",
"description": "New lifecycle plans return false. An idempotent replay of the admitted plan returns true when the stored session is already active; the response does not perform another installation or refresh chain evidence."
}
},
"required": [
"session",
"plan",
"installationConfirmed"
],
"additionalProperties": false
}operationId: createSessionActivationPlan
POST/api/v1/smart-accounts/sessions/{id}/revocation-plans owner signature
Prepare the owner's exact session revocation plan
Only the API owner can request this plan, acknowledging the exact compiledHash. Separately prepare a UserOperation from the returned plan, obtain the current Safe-owner threshold signatures, submit and refresh the session. Only the currently admitted lifecycle plan may execute. An expired plan with no admitted transport or attempt can be replaced with fresh owner consent and a new idempotency key, preserving up to 32 superseded approvals. Replacement cannot reinitialize an observed active generation. Only one generation per physical wallet may remain admitted, across keys, grants, assets and time windows. Release requires finalized disabled state with an advanced enable nonce; API revocation, unlinking or expiry alone cannot release it.
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 / required | 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. |
id | path / required | string |
Request body
| Field | Type | Details |
|---|---|---|
compiledHash | string required |
JSON schema
{
"type": "object",
"properties": {
"compiledHash": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"compiledHash"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
session | object required | Immutable approved policy plus revisioned lifecycle evidence. Only active with fresh canonical proof permits bot execution. Expiry, API revocation and unlinking do not release wallet reservations; finalized disabled state with an advanced enable nonce is required.Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plan | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
installationConfirmed | boolean required | New lifecycle plans return false. An idempotent replay of the admitted plan returns true when the stored session is already active; the response does not perform another installation or refresh chain evidence. |
JSON schema
{
"type": "object",
"properties": {
"session": {
"$ref": "#/components/schemas/StoredSession"
},
"plan": {
"$ref": "#/components/schemas/Plan"
},
"installationConfirmed": {
"type": "boolean",
"description": "New lifecycle plans return false. An idempotent replay of the admitted plan returns true when the stored session is already active; the response does not perform another installation or refresh chain evidence."
}
},
"required": [
"session",
"plan",
"installationConfirmed"
],
"additionalProperties": false
}operationId: createSessionRevocationPlan
UserOperations (3)
Reviewed EntryPoint v0.7 preparation, external owner or session-key signatures, one-time provider publication and reconciliation.
POST/api/v1/user-operations signed plan
Prepare exact EntryPoint v0.7 bytes and the appropriate signing payload
Requires configured provider/runtime policies and the source smart-account plan's creating principal. Select increasing step indices. Owner mode permits 1–16 calls on one chain and returns SafeOp typed data. Session mode requires the exact active bound bot, selects one call and returns an EIP-191 payload. Provider estimation and sponsorship are checked before signing; no execution occurs during preparation.
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 / required | 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
Option 1
| Field | Type | Details |
|---|---|---|
planId | string (uuid) required | |
stepIndexes | array required | |
sessionId | string (uuid) optional | |
sponsorAuthorization | string optional | Short-lived server-issued application sponsorship voucher bound to this principal and idempotency key, and to the plan by id and steps or by its exact calls and manifest. Not accepted with sessionId. |
Option 2
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
plan | object required | A smart-account plan created here, idempotent on its own key, exactly as POST /smart-accounts/bindings/{id}/plans would.Fields
| |||||||||||||||
sponsorAuthorization | string required | A voucher bound to the plan's exact calls and manifest. |
JSON schema
{
"oneOf": [
{
"type": "object",
"properties": {
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 16,
"uniqueItems": true
},
"sessionId": {
"$ref": "#/components/schemas/ResourceId"
},
"sponsorAuthorization": {
"type": "string",
"minLength": 1,
"maxLength": 4096,
"description": "Short-lived server-issued application sponsorship voucher bound to this principal and idempotency key, and to the plan by id and steps or by its exact calls and manifest. Not accepted with sessionId."
}
},
"required": [
"planId",
"stepIndexes"
],
"additionalProperties": false,
"allOf": [
{
"if": {
"required": [
"sessionId"
]
},
"then": {
"properties": {
"stepIndexes": {
"maxItems": 1
}
}
}
}
],
"description": "Use the creating principal of a durable smart-account plan. Indices must increase in original order. Omit `sessionId` for current Safe-owner threshold signing; a bound bot supplies `sessionId` for one approved action."
},
{
"type": "object",
"properties": {
"plan": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"operation": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"input": {},
"idempotencyKey": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]{1,128}$"
}
},
"required": [
"bindingId",
"operation",
"input",
"idempotencyKey"
],
"additionalProperties": false,
"description": "A smart-account plan created here, idempotent on its own key, exactly as POST /smart-accounts/bindings/{id}/plans would."
},
"sponsorAuthorization": {
"type": "string",
"minLength": 1,
"maxLength": 4096,
"description": "A voucher bound to the plan's exact calls and manifest."
}
},
"required": [
"plan",
"sponsorAuthorization"
],
"additionalProperties": false,
"description": "One call for a sponsored payment: the plan and the operation over every one of its steps. When the voucher does not cover the plan built, the answer carries the plan alone with `sponsorship: refused`."
}
]
}Response 201
Option 1
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
stepIndexes | array required | |||||||||||||||||||||||||||||||||||||||||||||||||
chainId | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
entryPoint | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
operation | object required | Unpacked EntryPoint v0.7 operation. RPC integers are hexadecimal quantities; reviewed policy amounts use decimal strings. No v0.8 or EIP-7702 extensions.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
operationHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
accountBindingId | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
accountStateHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
session | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
gasPolicyId | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
providerId | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
signing | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
submission | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
observation | object optional | Fields
|
Option 2
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
plan | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sponsorship | string required | Values: |
JSON schema
{
"oneOf": [
{
"$ref": "#/components/schemas/UserOperation"
},
{
"$ref": "#/components/schemas/SponsoredPaymentPreparation"
}
]
}operationId: prepareUserOperation
POST/api/v1/user-operations/{id}/submissions signed relay
Verify and publish one externally signed UserOperation
Submit only the complete account signature envelope for the returned operation; all other fields remain immutable. Outside a session, current Safe-owner threshold signatures bind a fresh finite validity window. Inside a session, the installed bot key signs the exact operation and admission rechecks grant, generation and canonical counters. The API request signature is separate in both modes. Nonce and plan transport are reserved before publication. A timeout becomes submission_unknown and never permits an automatic second provider POST.
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 / required | 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. |
id | path / required | string |
Request body
| Field | Type | Details |
|---|---|---|
signature | string required | Complete account signature envelope for the exact prepared operation. Owner mode wraps sorted threshold SafeOp signatures and validity bounds. Session mode wraps the installed bot key's EIP-191 signature using the returned permission prefix. |
JSON schema
{
"type": "object",
"properties": {
"signature": {
"type": "string",
"pattern": "^0x(?:[0-9a-fA-F]{2}){1,16384}$",
"description": "Complete account signature envelope for the exact prepared operation. Owner mode wraps sorted threshold SafeOp signatures and validity bounds. Session mode wraps the installed bot key's EIP-191 signature using the returned permission prefix."
}
},
"required": [
"signature"
],
"additionalProperties": false
}Response 202
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stepIndexes | array required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chainId | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entryPoint | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | object required | Unpacked EntryPoint v0.7 operation. RPC integers are hexadecimal quantities; reviewed policy amounts use decimal strings. No v0.8 or EIP-7702 extensions.Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operationHash | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountBindingId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountStateHash | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
session | object optional | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gasPolicyId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
providerId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
signing | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission | object optional | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
observation | object optional | Fields
|
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 16,
"uniqueItems": true
},
"chainId": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"entryPoint": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"$ref": "#/components/schemas/UserOperationV07"
},
"operationHash": {
"$ref": "#/components/schemas/Hash"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"accountBindingId": {
"$ref": "#/components/schemas/Hash"
},
"accountStateHash": {
"$ref": "#/components/schemas/Hash"
},
"session": {
"$ref": "#/components/schemas/UserOperationSessionBinding"
},
"gasPolicyId": {
"type": "string"
},
"providerId": {
"type": "string"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"state": {
"type": "string",
"enum": [
"prepared",
"submitting",
"submission_unknown",
"pending",
"unknown",
"confirming",
"confirmed",
"reverted",
"expired"
]
},
"signing": {
"oneOf": [
{
"$ref": "#/components/schemas/SafeOwnerUserOperationSigning"
},
{
"$ref": "#/components/schemas/PasskeyOwnerUserOperationSigning"
},
{
"$ref": "#/components/schemas/SessionUserOperationSigning"
}
]
},
"submission": {
"type": "object",
"properties": {
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"startedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
}
},
"required": [
"commitment",
"startedAt"
],
"additionalProperties": false
},
"observation": {
"$ref": "#/components/schemas/UserOperationObservation"
}
},
"required": [
"id",
"planId",
"planCommitment",
"stepIndexes",
"chainId",
"entryPoint",
"operation",
"operationHash",
"commitment",
"accountBindingId",
"accountStateHash",
"gasPolicyId",
"providerId",
"createdAt",
"expiresAt",
"revision",
"state",
"signing"
],
"additionalProperties": false
}operationId: submitUserOperation
GET/api/v1/user-operations/{id} signed read
Reconcile a stored UserOperation using canonical execution evidence
Refreshes submitted operations. A provider receipt is a location hint; confirmed requires the exact EntryPoint operation and its scoped account-call evidence. Submitted signature bytes remain omitted. Reconcile the source plan for dependency status and distinguish bridge settlement from execution.
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. |
id | path / required | string |
Response 200
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stepIndexes | array required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chainId | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entryPoint | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | object required | Unpacked EntryPoint v0.7 operation. RPC integers are hexadecimal quantities; reviewed policy amounts use decimal strings. No v0.8 or EIP-7702 extensions.Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operationHash | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountBindingId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountStateHash | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
session | object optional | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gasPolicyId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
providerId | string required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
signing | one of required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission | object optional | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
observation | object optional | Fields
|
JSON schema
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 16,
"uniqueItems": true
},
"chainId": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"entryPoint": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"$ref": "#/components/schemas/UserOperationV07"
},
"operationHash": {
"$ref": "#/components/schemas/Hash"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"accountBindingId": {
"$ref": "#/components/schemas/Hash"
},
"accountStateHash": {
"$ref": "#/components/schemas/Hash"
},
"session": {
"$ref": "#/components/schemas/UserOperationSessionBinding"
},
"gasPolicyId": {
"type": "string"
},
"providerId": {
"type": "string"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"state": {
"type": "string",
"enum": [
"prepared",
"submitting",
"submission_unknown",
"pending",
"unknown",
"confirming",
"confirmed",
"reverted",
"expired"
]
},
"signing": {
"oneOf": [
{
"$ref": "#/components/schemas/SafeOwnerUserOperationSigning"
},
{
"$ref": "#/components/schemas/PasskeyOwnerUserOperationSigning"
},
{
"$ref": "#/components/schemas/SessionUserOperationSigning"
}
]
},
"submission": {
"type": "object",
"properties": {
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"startedAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
}
},
"required": [
"commitment",
"startedAt"
],
"additionalProperties": false
},
"observation": {
"$ref": "#/components/schemas/UserOperationObservation"
}
},
"required": [
"id",
"planId",
"planCommitment",
"stepIndexes",
"chainId",
"entryPoint",
"operation",
"operationHash",
"commitment",
"accountBindingId",
"accountStateHash",
"gasPolicyId",
"providerId",
"createdAt",
"expiresAt",
"revision",
"state",
"signing"
],
"additionalProperties": false
}operationId: getUserOperation
WalletPayments (2)
Exact passkey payment reviews for typed trusted-app grants; available only with explicit pilot configuration.
POST/api/v1/wallet/payment-reviews signed plan
Prepare an exact passkey payment review for the current app
Requires a current typed wallet-app grant. The server loads its existing prepared operation and derives the payment and SafeOp digest. Neither API owners nor legacy bot grants can use this route. The saved allowlist callback supplies the return location. No signature, nonce reservation or submission occurs here.
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 / required | 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 |
|---|---|---|
operationId | string (uuid) required | |
state | string required | Canonical base64url encoding of 32 random bytes retained by the initiating app. |
id | string (uuid) optional |
JSON schema
{
"type": "object",
"properties": {
"operationId": {
"$ref": "#/components/schemas/ResourceId"
},
"state": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "Canonical base64url encoding of 32 random bytes retained by the initiating app."
},
"id": {
"$ref": "#/components/schemas/ResourceId"
}
},
"required": [
"operationId",
"state"
],
"additionalProperties": false
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
version | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Canonical base64url encoding of 32 random bytes retained by the initiating app. | ||||||||||||||||||||||||||||||||||||||||||||||||
issuer | string (uri) required | |||||||||||||||||||||||||||||||||||||||||||||||||
accountId | string required | Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain. | ||||||||||||||||||||||||||||||||||||||||||||||||
app | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
stepIndexes | array required | |||||||||||||||||||||||||||||||||||||||||||||||||
operation | object required | Unpacked EntryPoint v0.7 operation. RPC integers are hexadecimal quantities; reviewed policy amounts use decimal strings. No v0.8 or EIP-7702 extensions.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
chainId | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
entryPoint | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
safe7579 | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
payment | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
signing | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
createdAtMs | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
expiresAtMs | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
approvedAtMs | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
cancelledAtMs | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationState | string required |
JSON schema
{
"type": "object",
"properties": {
"version": {
"type": "string",
"const": "center-wallet-payment-review-v1"
},
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"state": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "Canonical base64url encoding of 32 random bytes retained by the initiating app."
},
"issuer": {
"type": "string",
"format": "uri"
},
"accountId": {
"$ref": "#/components/schemas/AccountId"
},
"app": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"format": "uri"
},
"callbackUri": {
"type": "string",
"format": "uri"
},
"grantId": {
"$ref": "#/components/schemas/ResourceId"
},
"grantIncarnation": {
"$ref": "#/components/schemas/PositiveUint256"
}
},
"required": [
"origin",
"callbackUri",
"grantId",
"grantIncarnation"
],
"additionalProperties": false
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"operationId": {
"$ref": "#/components/schemas/ResourceId"
},
"operationCommitment": {
"$ref": "#/components/schemas/Hash"
},
"operationHash": {
"$ref": "#/components/schemas/Hash"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
"operation": {
"$ref": "#/components/schemas/UserOperationV07"
},
"chainId": {
"type": "integer",
"const": 8453
},
"entryPoint": {
"$ref": "#/components/schemas/Address"
},
"safe7579": {
"$ref": "#/components/schemas/Address"
},
"payment": {
"type": "object",
"properties": {
"kind": {
"const": "v6-usdc-pay",
"type": "string"
},
"chainId": {
"const": 8453,
"type": "integer"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"token": {
"$ref": "#/components/schemas/Address"
},
"terminal": {
"$ref": "#/components/schemas/Address"
},
"projectId": {
"$ref": "#/components/schemas/Uint256"
},
"amount": {
"$ref": "#/components/schemas/PositiveUint256"
},
"beneficiary": {
"$ref": "#/components/schemas/Address"
},
"minimumReturnedTokens": {
"$ref": "#/components/schemas/Uint256"
},
"memo": {
"type": "string",
"maxLength": 32768
},
"metadata": {
"$ref": "#/components/schemas/HexBytes"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
"approvalStepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 0,
"maxItems": 2,
"uniqueItems": true
},
"paymentStepIndex": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"resetAllowance": {
"type": "boolean"
}
},
"required": [
"kind",
"chainId",
"account",
"token",
"terminal",
"projectId",
"amount",
"beneficiary",
"minimumReturnedTokens",
"memo",
"metadata",
"stepIndexes",
"approvalStepIndexes",
"paymentStepIndex",
"resetAllowance"
],
"additionalProperties": false
},
"signing": {
"type": "object",
"properties": {
"digest": {
"$ref": "#/components/schemas/Hash"
},
"signedData": {
"$ref": "#/components/schemas/HexBytes"
},
"validAfter": {
"$ref": "#/components/schemas/Uint256"
},
"validUntil": {
"$ref": "#/components/schemas/Uint256"
}
},
"required": [
"digest",
"signedData",
"validAfter",
"validUntil"
],
"additionalProperties": false
},
"createdAtMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"expiresAtMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"cancelled"
]
},
"approvedAtMs": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"cancelledAtMs": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"operationState": {
"type": "string"
}
},
"required": [
"version",
"id",
"state",
"issuer",
"accountId",
"app",
"planId",
"planCommitment",
"operationId",
"operationCommitment",
"operationHash",
"stepIndexes",
"operation",
"chainId",
"entryPoint",
"safe7579",
"payment",
"signing",
"createdAtMs",
"expiresAtMs",
"status",
"approvedAtMs",
"cancelledAtMs",
"operationState"
],
"additionalProperties": false
}operationId: prepareWalletPaymentReview
GET/api/v1/wallet/payment-reviews/{id} signed read
Read the original app review and any live owner approval
Only the original current app grant and incarnation can retrieve its review. Approval requires a separate explicit passkey ceremony on the central wallet origin. A winning signature is returned only while the review and authority remain live. Submit it through the original UserOperation endpoint with unchanged fields. After review expiry, reconcile the original UserOperation; expiry does not establish a safe replacement.
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. |
id | path / required | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
version | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Canonical base64url encoding of 32 random bytes retained by the initiating app. | ||||||||||||||||||||||||||||||||||||||||||||||||
issuer | string (uri) required | |||||||||||||||||||||||||||||||||||||||||||||||||
accountId | string required | Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain. | ||||||||||||||||||||||||||||||||||||||||||||||||
app | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
stepIndexes | array required | |||||||||||||||||||||||||||||||||||||||||||||||||
operation | object required | Unpacked EntryPoint v0.7 operation. RPC integers are hexadecimal quantities; reviewed policy amounts use decimal strings. No v0.8 or EIP-7702 extensions.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
chainId | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
entryPoint | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
safe7579 | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
payment | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
signing | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
createdAtMs | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
expiresAtMs | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
approvedAtMs | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
cancelledAtMs | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationState | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
approval | one of required |
JSON schema
{
"type": "object",
"properties": {
"version": {
"type": "string",
"const": "center-wallet-payment-review-v1"
},
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"state": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "Canonical base64url encoding of 32 random bytes retained by the initiating app."
},
"issuer": {
"type": "string",
"format": "uri"
},
"accountId": {
"$ref": "#/components/schemas/AccountId"
},
"app": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"format": "uri"
},
"callbackUri": {
"type": "string",
"format": "uri"
},
"grantId": {
"$ref": "#/components/schemas/ResourceId"
},
"grantIncarnation": {
"$ref": "#/components/schemas/PositiveUint256"
}
},
"required": [
"origin",
"callbackUri",
"grantId",
"grantIncarnation"
],
"additionalProperties": false
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"operationId": {
"$ref": "#/components/schemas/ResourceId"
},
"operationCommitment": {
"$ref": "#/components/schemas/Hash"
},
"operationHash": {
"$ref": "#/components/schemas/Hash"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
"operation": {
"$ref": "#/components/schemas/UserOperationV07"
},
"chainId": {
"type": "integer",
"const": 8453
},
"entryPoint": {
"$ref": "#/components/schemas/Address"
},
"safe7579": {
"$ref": "#/components/schemas/Address"
},
"payment": {
"type": "object",
"properties": {
"kind": {
"const": "v6-usdc-pay",
"type": "string"
},
"chainId": {
"const": 8453,
"type": "integer"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"token": {
"$ref": "#/components/schemas/Address"
},
"terminal": {
"$ref": "#/components/schemas/Address"
},
"projectId": {
"$ref": "#/components/schemas/Uint256"
},
"amount": {
"$ref": "#/components/schemas/PositiveUint256"
},
"beneficiary": {
"$ref": "#/components/schemas/Address"
},
"minimumReturnedTokens": {
"$ref": "#/components/schemas/Uint256"
},
"memo": {
"type": "string",
"maxLength": 32768
},
"metadata": {
"$ref": "#/components/schemas/HexBytes"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
"approvalStepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 0,
"maxItems": 2,
"uniqueItems": true
},
"paymentStepIndex": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"resetAllowance": {
"type": "boolean"
}
},
"required": [
"kind",
"chainId",
"account",
"token",
"terminal",
"projectId",
"amount",
"beneficiary",
"minimumReturnedTokens",
"memo",
"metadata",
"stepIndexes",
"approvalStepIndexes",
"paymentStepIndex",
"resetAllowance"
],
"additionalProperties": false
},
"signing": {
"type": "object",
"properties": {
"digest": {
"$ref": "#/components/schemas/Hash"
},
"signedData": {
"$ref": "#/components/schemas/HexBytes"
},
"validAfter": {
"$ref": "#/components/schemas/Uint256"
},
"validUntil": {
"$ref": "#/components/schemas/Uint256"
}
},
"required": [
"digest",
"signedData",
"validAfter",
"validUntil"
],
"additionalProperties": false
},
"createdAtMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"expiresAtMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"cancelled"
]
},
"approvedAtMs": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"cancelledAtMs": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"operationState": {
"type": "string"
},
"approval": {
"anyOf": [
{
"type": "object",
"properties": {
"signature": {
"$ref": "#/components/schemas/HexBytes"
},
"signedCommitment": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"signature",
"signedCommitment"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"version",
"id",
"state",
"issuer",
"accountId",
"app",
"planId",
"planCommitment",
"operationId",
"operationCommitment",
"operationHash",
"stepIndexes",
"operation",
"chainId",
"entryPoint",
"safe7579",
"payment",
"signing",
"createdAtMs",
"expiresAtMs",
"status",
"approvedAtMs",
"cancelledAtMs",
"operationState",
"approval"
],
"additionalProperties": false
}operationId: getWalletPaymentReview
Errors and retries
Errors use application/problem+json with code, status, requestId and retryable. Honor Retry-After. To retry the same request, keep its exact bytes and idempotency key. Use a new one-time request identifier (nonce) and API signature.
Retrying a plan step does not authorize changes to its instructions, network costs, or transaction nonce. Look up the stored transaction hash and check its state first.
Glossary
Look up a term here, then return to the step you were following.
- Project
- A set of Juicebox rules, funds, and tokens. Identify it by both its chain ID and project ID.
- Project token / cash out
- A project token records participation under a project’s rules. Cashing out gives up tokens permanently in exchange for project funds when those rules allow it. Tokens do not automatically give company ownership or a guaranteed return.
- Revnet
- A Juicebox project with token rules scheduled at launch. Operators retain limited powers; see the revnet guide.
- Smart contract
- Code stored on a blockchain that runs when called. The code and its current settings determine what a call can do.
- Ruleset
- A project's rules for a period of time, including how payments create tokens and what can be paid out.
- Terminal
- A contract that accepts and accounts for a project's payments and cash outs.
- Hook
- A contract a project calls to add behavior, such as giving a payer a collectible token.
- Mainnet / testnet
- A network for real funds / a network for testing with test funds. A chain ID identifies the network.
- Canonical block
- A block checked against the chain's current accepted history. A recent block can still be replaced by a chain reorganization.
- API / REST
- An API lets programs request data or actions from another program. Center's REST API uses HTTP requests to named URLs.
- Schema / audience
- A schema defines a request or response’s exact fields and types. The authentication audience identifies the service a signature is intended for.
- RPC
- A format for asking a remote computer to run a method. Ethereum JSON-RPC is used for blockchain reads and simulations here.
- MCP
- Model Context Protocol: a shared format for connecting AI apps to tools and data.
- SDK
- A software development kit: reusable code for building an app.
- ABI
- A contract interface that describes its methods, arguments, outputs, and events. Use the interface for the deployed contract you are calling.
- Calldata
- The encoded instructions sent to a contract: which method to run and its arguments.
- Indexer / cursor
- An indexer collects blockchain records so they can be searched. A cursor marks where the next page starts. Indexed data can lag behind the chain.
- Metadata / URI
- Project details such as a name, description, and image. A URI identifies their location, such as an HTTPS or IPFS address.
- IPFS / CID / pinning
- IPFS is a shared file network. A CID identifies content; pinning keeps a copy available. A CID does not promise someone will keep hosting the file.
- Bot grant / scope
- A grant gives one bot time-limited API access. Scopes choose what it can do: read, plan, or relay. These are not wallet spending permissions.
- The authority chain is part of a Center account's identity. A principal is the owner or bot making an API request.
- Plan / commitment
- A plan saves proposed transactions and their required earlier steps. Its commitment is a hash that binds the exact plan being reviewed.
- Idempotency key
- An identifier that lets the service recognize a repeated request. Reuse it with the same bytes when retrying an operation that supports it.
- Nonce
- A value that prevents reuse of a signed request. Each API attempt needs a fresh random nonce. A wallet transaction nonce instead orders that wallet's transactions.
- Smart wallet / Safe / EOA
- A smart wallet uses a contract to check approvals. Safe is one supported kind. An EOA is an account controlled directly by a private key.
- Wallet binding
- A verified link between a Center account and a smart wallet. Linking them does not grant a bot permission to spend.
- Relay / bundler
- A relay sends already signed transactions. A bundler submits smart-wallet UserOperations to the chain.
- UserOperation / SafeOp
- A UserOperation packages a smart-wallet action for submission. SafeOp is the exact approval document its Safe owners sign.
- Session / guard
- A session is time-limited permission to repeat specified actions. A guard is a contract that enforces its limits. API access alone does not create a session.
- Gas / wei / paymaster
- Gas measures the work a transaction uses. Wei is the smallest ETH unit: 10¹⁸ wei equals 1 ETH. A paymaster sponsors supported network costs.
- Receipt
- A blockchain record showing that a transaction was included and whether it succeeded or reverted. Check its events and resulting balances for the intended outcome.
- Reconcile
- Look up an existing submission and compare it with chain evidence to find out what happened before trying again.