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.

I need data →Read current values or search project history.I need a transaction →Prepare, review, sign, then check the result.I am building an integration →Find request formats and supported actions.

Your first request

Explore supported chains and execution options. No account required.

curl https://juicebox.center/api/v1/capabilities

For 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.json

The client handles authentication. Your wallet separately approves spending.

Complete quickstart → / Client workflows

Choose a data source

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

  1. Create a saved set of proposed transactions: a plan. Use a named preparation or contract_calls. Sign the API request and include an Idempotency-Key so a retry can find the same result.
  2. 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.
  3. 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.
  4. Retrieve the plan with refresh=true to 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

FieldTypeDetails
versionvalue
required

Values: ["1"]

protocolVersioninteger
required

Values: [6]

documentationstring
required
openapistring
required
accountsstring
required
capabilitiesstring
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

FieldTypeDetails
versionvalue
required

Values: ["1"]

protocolVersioninteger
required

Values: [6]

audiencestring (uri)
required
authenticationobject
required
chainsarray
required
limitsobject
required
transactionsobject
required
sponsorshipobject
required
userOperationsone of
required
sessionsone of
required
smartAccountsone of
required
omnichainobject
required
sourcesobject
required
catalogsobject
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

NameLocationDetails
packageIdquery / optionalstring

["@ballkidz/defifa","@bananapus/721-hook-v6","@bananapus/address-registry-v6","@bananapus/buyback-hook-v6","@bananapus/core-v6","@bananapus/deploy-all-v6","@bananapus/distributor-v6","@bananapus/fee-project-deployer-v6","@bananapus/jbx-distributor-v6","@bananapus/omnichain-deployers-v6","@bananapus/ownable-v6","@bananapus/permission-ids-v6","@bananapus/project-handles-v6","@bananapus/project-payer-v6","@bananapus/router-terminal-v6","@bananapus/suckers-v6","@bananapus/swap-split-hook-v6","@bananapus/univ4-lp-split-hook-v6","@bananapus/univ4-router-v6","@bannynet/core-v6","@croptop/core-v6","@openzeppelin/contracts","@rev-net/core-v6"]

categoryquery / optionalstring

["contract","abstract","interface","library","script"]

chainIdquery / optionalinteger

[1,10,8453,42161,84532,421614,11155111,11155420]

deployedOnlyquery / optionalboolean
executableOnlyquery / optionalboolean
offsetquery / optionalinteger
limitquery / optionalinteger

Response 200

FieldTypeDetails
protocolVersioninteger
required

Values: [6]

provenanceobject
required
packagesarray
required
exclusionsarray
required
Fields
FieldTypeDetails
pathstring
required
reasonstring
required
itemsarray
required
Fields
FieldTypeDetails
idstring
required
namestring
required
packageIdstring
required
categorystring
required
executableboolean
required
methodCountsobject
required
Fields
FieldTypeDetails
readinteger
required
writeinteger
required
chainsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

statusstring
required

Values: ["published","missing"]

addressesarray
required
instancesarray
required
totalinteger
required
nextOffsetone 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

NameLocationDetails
idquery / requiredQualified 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

NameLocationDetails
contractIdquery / requiredstring
signaturequery / requiredFull canonical signature, including expanded tuple types.
abiHashquery / optionalUse the resolved deployment ABI hash; omission selects the catalog default.

Response 200

FieldTypeDetails
signaturestring
required
selectorone of
required
namestring
required
stateMutabilitystring
required

Values: ["view","pure","nonpayable","payable"]

kindstring
required

Values: ["read","write"]

inputsarray
required
outputsarray
required
inputJsonSchemaobject
required
outputJsonSchemaobject
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

FieldTypeDetails
operationsarray
required
Fields
FieldTypeDetails
idstring
required
descriptionstring
required
kindstring
required

Values: ["read","prepare","reference","metadata-write"]

sourcesarray
required
transactionboolean
required
effectsobject
required
Fields
FieldTypeDetails
externalMutationboolean
required
idempotentboolean
required
inputJsonSchemaobject
required
methodstring
required

Values: ["GET","POST"]

pathstring
required
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

NameLocationDetails
idpath / requiredstring

["prepare_project_metadata","resolve_project","search_projects","get_project","get_rulesets","get_position","get_account","get_activity","get_indexer_status","get_permissions","get_bridges","get_omnichain_group","quote_pay","prepare_pay","quote_cash_out","prepare_cash_out","quote_payout","prepare_payout","model_economics","preview_ruleset_change","prepare_ruleset_change","prepare_launch","quote_loan","prepare_borrow","get_loan","prepare_repay","prepare_bridge_claim","prepare_accounting_sync","get_routing","prepare_buyback_pool","prepare_buyback_twap","prepare_buyback_hook","prepare_router_terminal","get_721_shop","quote_721_pay","prepare_721_pay","prepare_adjust_tiers","prepare_721_launch","get_revnet","prepare_revnet_deploy","prepare_auto_issue","plan_integration","get_webclient_reference","list_webclient_references","get_intent","prepare_intent","search_reference","get_reference","get_contract","decode_calldata","list_references","list_capabilities"]

Response 200

FieldTypeDetails
idstring
required
descriptionstring
required
kindstring
required

Values: ["read","prepare","reference","metadata-write"]

sourcesarray
required
transactionboolean
required
effectsobject
required
Fields
FieldTypeDetails
externalMutationboolean
required
idempotentboolean
required
inputJsonSchemaobject
required
methodstring
required

Values: ["GET","POST"]

pathstring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
accountobject
required
Fields
FieldTypeDetails
idstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerAddressstring
required
authorityChainIdinteger
required
profileobject
required
Fields
FieldTypeDetails
displayNamestring
required
biostring
required
avatarUrione of
required
createdAtinteger
required
Unix timestamp in seconds.
updatedAtinteger
required
Unix timestamp in seconds.
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
accountobject
required
Fields
FieldTypeDetails
idstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerAddressstring
required
authorityChainIdinteger
required
profileobject
required
Fields
FieldTypeDetails
displayNamestring
required
biostring
required
avatarUrione of
required
createdAtinteger
required
Unix timestamp in seconds.
updatedAtinteger
required
Unix timestamp in seconds.
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
displayNamestring
optional

Default: ""

biostring
optional

Default: ""

avatarUrione of
optional

Default: null

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

FieldTypeDetails
accountobject
required
Fields
FieldTypeDetails
idstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerAddressstring
required
authorityChainIdinteger
required
profileobject
required
Fields
FieldTypeDetails
displayNamestring
required
biostring
required
avatarUrione of
required
createdAtinteger
required
Unix timestamp in seconds.
updatedAtinteger
required
Unix timestamp in seconds.
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
botsarray
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
botAddressstring
required
scopesarray
required
Cumulative profiles in canonical order: read; read + plan; read + plan + relay. Validation never expands or reorders the signed list.
labelstring
required
createdAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revokedAtone of
required
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
botAddressstring
required
scopesarray
optional
Cumulative profiles in canonical order: read; read + plan; read + plan + relay. Validation never expands or reorders the signed list.

Default: ["read"]

expiresAtinteger
required
Future Unix seconds, no more than 365 days from server time.
labelstring
optional

Default: ""

proofSignaturestring
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

FieldTypeDetails
botobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
botAddressstring
required
scopesarray
required
Cumulative profiles in canonical order: read; read + plan; read + plan + relay. Validation never expands or reorders the signed list.
labelstring
required
createdAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revokedAtone of
required
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
grantIdpath / requiredstring

Response 200

FieldTypeDetails
botobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
botAddressstring
required
scopesarray
required
Cumulative profiles in canonical order: read; read + plan; read + plan + relay. Validation never expands or reorders the signed list.
labelstring
required
createdAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revokedAtone of
required
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
chainIdquery / requiredinteger

[1,10,8453,42161,84532,421614,11155111,11155420]

contractIdquery / requiredstring
addressquery / optionalstring
projectIdquery / optionalPositive project ID when supported by the canonical association adapter.
blockNumberquery / optionaluint256 as a lossless decimal string

Response 200

FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

contractIdstring
required
addressstring
required
abiHashstring
required
provenanceobject
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
FieldTypeDetails
kindstring
required

Values: ["published-deployment","verified-factory-clone"]

contractIdstring
required
abiHashstring
required
runtimeVerifiedboolean
optional
runtimeobject
optional
blockobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

publicationone of
optional
projectContextobject
optional
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
chainIdquery / requiredinteger

[1,10,8453,42161,84532,421614,11155111,11155420]

contractIdquery / requiredstring
addressquery / optionalstring
projectIdquery / optionalPositive project ID when supported by the canonical association adapter.
blockNumberquery / optionaluint256 as a lossless decimal string
functionquery / requiredFull canonical function signature from the resolved deployment ABI.
argsquery / requiredPositional arguments validated against the exact ABI. Serialize as JSON once, percent-encode the query value, then sign the exact resulting request target.

Response 200

FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

contractIdstring
required
addressstring
required
functionstring
required
argsarray
required
Fields

See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.

outputsarray
required
Fields
FieldTypeDetails
nameone of
required
typestring
required
valuevalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
provenanceobject
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
FieldTypeDetails
kindstring
required

Values: ["published-deployment","verified-factory-clone"]

contractIdstring
required
abiHashstring
required
runtimeVerifiedboolean
optional
runtimeobject
optional
blockobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

publicationone of
optional
projectContextobject
optional
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

Response 200

FieldTypeDetails
networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

chainsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockone of
required
timestampone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
entitypath / requiredstring

["_sucker","accountingSyncEvent","activityEvent","addNftTierEvent","addToBalanceEvent","autoIssueEvent","borrowLoanEvent","bridgeClaimEvent","bridgeToOutboxEvent","bridgeToRemoteEvent","burnEvent","buybackPool","buybackPoolEvent","buybackPoolLiquidityEvent","buybackPoolPosition","buybackPoolRange","cashOutTaxSnapshot","cashOutTokensEvent","decorateBannyEvent","deployErc20Event","inboxRootReceivedEvent","liquidateLoanEvent","loan","manualBurnEvent","manualMintTokensEvent","mintNftEvent","mintTokensEvent","nft","nftHook","nftTier","operatorPermissionsSetEvent","participant","participantSnapshot","payEvent","permissionHolder","project","projectCreateEvent","projectMoment","projectPayer","projectTransferEvent","reallocateLoanEvent","removeNftTierEvent","repayLoanEvent","rulesetQueuedEvent","sendPayoutToSplitEvent","sendPayoutsEvent","sendReservedTokensToSplitEvent","sendReservedTokensToSplitsEvent","setUriEvent","storeAutoIssuanceAmountEvent","suckerGroup","suckerGroupMoment","suckerTransaction","swapEvent","useAllowanceEvent"]

networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required
networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
entitypath / requiredstring

["_sucker","accountingSyncEvent","activityEvent","addNftTierEvent","addToBalanceEvent","autoIssueEvent","borrowLoanEvent","bridgeClaimEvent","bridgeToOutboxEvent","bridgeToRemoteEvent","burnEvent","buybackPool","buybackPoolEvent","buybackPoolLiquidityEvent","buybackPoolPosition","buybackPoolRange","cashOutTaxSnapshot","cashOutTokensEvent","decorateBannyEvent","deployErc20Event","inboxRootReceivedEvent","liquidateLoanEvent","loan","manualBurnEvent","manualMintTokensEvent","mintNftEvent","mintTokensEvent","nft","nftHook","nftTier","operatorPermissionsSetEvent","participant","participantSnapshot","payEvent","permissionHolder","project","projectCreateEvent","projectMoment","projectPayer","projectTransferEvent","reallocateLoanEvent","removeNftTierEvent","repayLoanEvent","rulesetQueuedEvent","sendPayoutToSplitEvent","sendPayoutsEvent","sendReservedTokensToSplitEvent","sendReservedTokensToSplitsEvent","setUriEvent","storeAutoIssuanceAmountEvent","suckerGroup","suckerGroupMoment","suckerTransaction","swapEvent","useAllowanceEvent","_meta"]

networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalExact 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required
networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

Response 200

FieldTypeDetails
entitystring
required

Values: ["_meta"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemobject
required
Fields
FieldTypeDetails
chainsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockone of
required
timestampone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["_sucker"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
addressstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["_sucker"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["accountingSyncEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
peerChainIdinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
sourceTimestampstring
optional
sourceTimestampSecondsstring
optional
suckerstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["accountingSyncEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["activityEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
accountingSyncEventone of
optional
addNftTierEventone of
optional
addToBalanceEventone of
optional
autoIssueEventone of
optional
borrowLoanEventone of
optional
bridgeClaimEventone of
optional
bridgeToOutboxEventone of
optional
bridgeToRemoteEventone of
optional
burnEventone of
optional
buybackPoolEventone of
optional
cashOutTokensEventone of
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

decorateBannyEventone of
optional
deployErc20Eventone of
optional
fromstring
optional
idstring
required
inboxRootReceivedEventone of
optional
liquidateLoanEventone of
optional
manualBurnEventone of
optional
manualMintTokensEventone of
optional
mintNftEventone of
optional
mintTokensEventone of
optional
operatorPermissionsSetEventone of
optional
payEventone of
optional
projectone of
optional
projectCreateEventone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTransferEventone of
optional
reallocateLoanEventone of
optional
removeNftTierEventone of
optional
repayLoanEventone of
optional
rulesetQueuedEventone of
optional
sendPayoutToSplitEventone of
optional
sendPayoutsEventone of
optional
sendReservedTokensToSplitEventone of
optional
sendReservedTokensToSplitsEventone of
optional
setUriEventone of
optional
suckerGroupone of
optional
suckerGroupIdstring
optional
swapEventone of
optional
timestampinteger
optional
txHashstring
optional
typeone of
optional
useAllowanceEventone of
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["activityEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["addNftTierEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
categoryinteger
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

encodedIpfsUristring
optional
fromstring
optional
hookstring
optional
idstring
required
initialSupplyinteger
optional
logIndexinteger
optional
metadataone of
optional
pricestring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
remainingSupplyinteger
optional
resolvedUrione of
optional
suckerGroupIdstring
optional
tierone of
optional
tierIdinteger
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["addNftTierEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["addToBalanceEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
amountstring
optional
amountUsdstring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
memoone of
optional
metadatastring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
returnedFeesstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["addToBalanceEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["autoIssueEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

countstring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
stageIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["autoIssueEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["borrowLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
borrowAmountstring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

collateralstring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
prepaidDurationinteger
optional
prepaidFeePercentinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
sourceFeeAmountstring
optional
suckerGroupIdstring
optional
terminalstring
optional
timestampinteger
optional
tokenstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["borrowLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["bridgeClaimEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
autoAddedToBalanceone of
optional
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
indexinteger
optional
logIndexinteger
optional
metadataone of
optional
peerChainIdinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTokenCountstring
optional
suckerstring
optional
suckerGroupIdstring
optional
terminalTokenAmountstring
optional
timestampinteger
optional
tokenstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["bridgeClaimEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["bridgeToOutboxEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
hashedstring
optional
idstring
required
indexinteger
optional
logIndexinteger
optional
peerstring
optional
peerChainIdinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTokenCountstring
optional
rootstring
optional
suckerstring
optional
suckerGroupIdstring
optional
terminalTokenAmountstring
optional
timestampinteger
optional
tokenstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["bridgeToOutboxEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["bridgeToRemoteEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
indexinteger
optional
logIndexinteger
optional
noncestring
optional
peerstring
optional
peerChainIdinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rootstring
optional
suckerstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
tokenstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["bridgeToRemoteEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["burnEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
amountstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

creditAmountstring
optional
erc20Amountstring
optional
fromstring
optional
idstring
required
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["burnEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["buybackPool"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
currency0string
optional
currency1string
optional
initialSqrtPriceX96one of
optional
poolIdstring
required
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTokenIsCurrency0boolean
optional
terminalTokenstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["buybackPool"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["buybackPoolEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

currency0one of
optional
currency1one of
optional
fromstring
optional
idstring
required
initialSqrtPriceX96one of
optional
logIndexinteger
optional
poolIdstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTokenIsCurrency0one of
optional
suckerGroupIdstring
optional
terminalTokenstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["buybackPoolEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["buybackPoolLiquidityEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

idstring
required
liquidityAfterstring
optional
liquidityDeltastring
optional
logIndexinteger
optional
poolIdstring
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
sqrtPriceX96one of
optional
tickLowerinteger
optional
tickUpperinteger
optional
timestampinteger
optional
tokenIdstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["buybackPoolLiquidityEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["buybackPoolPosition"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
burnedboolean
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
feeGrowthInside0LastX128string
optional
feeGrowthInside1LastX128string
optional
feesClaimed0string
optional
feesClaimed1string
optional
liquiditystring
optional
ownerstring
optional
poolone of
optional
poolIdstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
tickLowerinteger
optional
tickUpperinteger
optional
tokenIdstring
required
updatedAtinteger
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["buybackPoolPosition"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["buybackPoolRange"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

liquiditystring
optional
poolIdstring
required
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
tickLowerinteger
required
tickUpperinteger
required
updatedAtinteger
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["buybackPoolRange"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["cashOutTaxSnapshot"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
cashOutTaxinteger
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

durationstring
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rulesetIdstring
required
startstring
optional
suckerGroupIdstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["cashOutTaxSnapshot"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["cashOutTokensEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
callerstring
optional
cashOutCountstring
optional
cashOutTaxRatestring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
holderstring
optional
idstring
required
logIndexinteger
optional
metadatastring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
reclaimAmountstring
optional
reclaimAmountUsdstring
optional
rulesetCycleNumberstring
optional
rulesetIdstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["cashOutTokensEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["decorateBannyEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
backgroundIdone of
optional
bannyBodyIdstring
optional
bannyNftone of
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
outfitIdsone of
optional
timestampinteger
optional
tokenUrione of
optional
tokenUriMetadataone of
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["decorateBannyEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["deployErc20Event"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
namestring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
symbolstring
optional
timestampinteger
optional
tokenstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["deployErc20Event"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["inboxRootReceivedEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
noncestring
optional
peerChainIdinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rootstring
optional
suckerstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
tokenstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["inboxRootReceivedEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["liquidateLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
borrowAmountstring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

collateralstring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["liquidateLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["loan"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
borrowAmountstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

collateralstring
optional
createdAtinteger
optional
idstring
required
ownerstring
optional
participantone of
optional
prepaidDurationinteger
optional
prepaidFeePercentinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
sourceFeeAmountstring
optional
terminalstring
optional
tokenstring
optional
tokenUrione of
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["loan"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["manualBurnEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
amountstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

creditAmountstring
optional
erc20Amountstring
optional
fromstring
optional
idstring
required
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["manualBurnEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["manualMintTokensEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
beneficiaryTokenCountstring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
memoone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
reservedPercentstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
tokenCountstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["manualMintTokensEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["mintNftEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
hookstring
optional
idstring
required
logIndexinteger
optional
nftone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
tierone of
optional
tierIdinteger
optional
timestampinteger
optional
tokenIdstring
optional
totalAmountPaidstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["mintNftEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["mintTokensEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
beneficiaryTokenCountstring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
memoone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
reservedPercentstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
tokenCountstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["mintTokensEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["nft"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
categoryinteger
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
customizedone of
optional
customizedAtinteger
optional
hookobject
required
Fields
FieldTypeDetails
addressstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
nameone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
symbolone of
optional
versioninteger
required

Values: [6]

metadataone of
optional
mintTxstring
optional
ownerstring
optional
participantone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
tierone of
optional
tierIdinteger
required
tokenIdstring
required
tokenUrione of
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["nft"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["nftHook"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
addressstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
nameone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
symbolone of
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["nftHook"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["nftTier"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
allowOwnerMintone of
optional
cannotBeRemovedone of
optional
categoryinteger
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
encodedIpfsUrione of
optional
hookobject
required
Fields
FieldTypeDetails
addressstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
nameone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
symbolone of
optional
versioninteger
required

Values: [6]

initialSupplyinteger
optional
metadataone of
optional
pricestring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
remainingSupplyinteger
optional
reserveBeneficiaryone of
optional
reserveFrequencyone of
optional
resolvedUrione of
optional
svgone of
optional
tierIdinteger
required
transfersPausableone of
optional
versioninteger
required

Values: [6]

votingUnitsone of
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["nftTier"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["operatorPermissionsSetEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
accountstring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
isRevnetOperatorone of
optional
logIndexinteger
optional
operatorstring
optional
packedstring
optional
permissionsone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["operatorPermissionsSetEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["participant"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
addressstring
required
balancestring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
creditBalancestring
optional
erc20Balancestring
optional
isRevnetone of
optional
lastPaidTimestampinteger
optional
paymentsCountinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupone of
optional
suckerGroupIdstring
optional
versioninteger
required

Values: [6]

volumestring
optional
volumeUsdstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["participant"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["participantSnapshot"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
addressstring
required
balancestring
optional
blockinteger
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

creditBalancestring
optional
erc20Balancestring
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
versioninteger
required

Values: [6]

volumestring
optional
volumeUsdstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["participantSnapshot"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["payEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
amountstring
optional
amountUsdstring
optional
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

distributionFromProjectIdone of
optional
feeFromProjectone of
optional
fromstring
optional
idstring
required
logIndexinteger
optional
memoone of
optional
newlyIssuedTokenCountstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["payEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["permissionHolder"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
accountstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

isRevnetOperatorone of
optional
operatorstring
required
permissionsone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["permissionHolder"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["project"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
balancestring
optional
balanceUsdstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

contributorsCountinteger
optional
coverImageUrione of
optional
createdAtinteger
optional
createdWithinTrendingWindowone of
optional
creatorstring
optional
currencyone of
optional
decimalsone of
optional
deployerstring
optional
descriptionone of
optional
discordone of
optional
domainone of
optional
farcasterone of
optional
handleone of
optional
idstring
optional
infoUrione of
optional
isRevnetone of
optional
logoUrione of
optional
metadataone of
optional
metadataUrione of
optional
nameone of
optional
nftsMintedCountinteger
optional
ownerstring
optional
payDisclosureone of
optional
paymentsCountinteger
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTaglineone of
optional
redeemCountinteger
optional
redeemVolumestring
optional
redeemVolumeUsdstring
optional
reservedTokenSupplystring
optional
suckerGroupone of
optional
suckerGroupIdstring
optional
tagsone of
optional
telegramone of
optional
tokenone of
optional
tokenSupplystring
optional
tokenSymbolone of
optional
tokensone of
optional
trendingPaymentsCountinteger
optional
trendingScorestring
optional
trendingVolumestring
optional
trendingVolumeUsdstring
optional
twitterone of
optional
versioninteger
required

Values: [6]

volumestring
optional
volumeUsdstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["project"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["projectCreateEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["projectCreateEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["projectMoment"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
balancestring
optional
blockinteger
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
timestampinteger
optional
trendingScorestring
optional
versioninteger
required

Values: [6]

volumestring
optional
volumeUsdstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["projectMoment"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["projectPayer"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
addToBalanceCountinteger
optional
addressstring
required
balanceAddedstring
optional
balanceAddedUsdstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
defaultAddToBalanceboolean
optional
defaultBeneficiarystring
optional
defaultMemostring
optional
defaultMetadatastring
optional
deployerstring
optional
lastUsedAtone of
optional
ownerstring
optional
paymentsCountinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
totalFacilitatedstring
optional
totalFacilitatedUsdstring
optional
versioninteger
required

Values: [6]

volumestring
optional
volumeUsdstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["projectPayer"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["projectTransferEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
ownerstring
optional
previousOwnerstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["projectTransferEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["reallocateLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
loanIdstring
optional
logIndexinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
reallocatedLoanIdstring
optional
removedCollateralCountstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["reallocateLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["removeNftTierEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
categoryone of
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

encodedIpfsUrione of
optional
fromstring
optional
hookstring
optional
idstring
required
initialSupplyone of
optional
logIndexinteger
optional
metadataone of
optional
priceone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
remainingSupplyone of
optional
resolvedUrione of
optional
suckerGroupIdstring
optional
tierIdinteger
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["removeNftTierEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["repayLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

collateralCountToReturnstring
optional
fromstring
optional
idstring
required
loanIdstring
optional
logIndexinteger
optional
paidOffLoanIdstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
repayBorrowAmountstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["repayLoanEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["rulesetQueuedEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
approvalHookstring
optional
basedOnIdinteger
optional
callerstring
optional
cashOutTaxinteger
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

cycleNumberinteger
optional
durationstring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
metadatastring
optional
mustStartAtOrAfterstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rulesetIdstring
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

weightstring
optional
weightCutPercentstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["rulesetQueuedEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["sendPayoutToSplitEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
amountstring
optional
amountUsdstring
optional
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
groupstring
optional
hookstring
optional
idstring
required
lockedUntilstring
optional
logIndexinteger
optional
netAmountstring
optional
percentinteger
optional
preferAddToBalanceboolean
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rulesetIdinteger
optional
splitProjectIdinteger
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["sendPayoutToSplitEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["sendPayoutsEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
amountstring
optional
amountPaidOutstring
optional
amountPaidOutUsdstring
optional
amountUsdstring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

feestring
optional
feeUsdstring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
netLeftoverPayoutAmountstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rulesetCycleNumberinteger
optional
rulesetIdinteger
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["sendPayoutsEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["sendReservedTokensToSplitEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
groupIdstring
optional
hookstring
optional
idstring
required
lockedUntilstring
optional
logIndexinteger
optional
percentinteger
optional
preferAddToBalanceboolean
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rulesetIdinteger
optional
splitProjectIdinteger
optional
suckerGroupIdstring
optional
timestampinteger
optional
tokenCountstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["sendReservedTokensToSplitEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["sendReservedTokensToSplitsEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
leftoverAmountstring
optional
logIndexinteger
optional
ownerstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rulesetCycleNumberinteger
optional
rulesetIdinteger
optional
suckerGroupIdstring
optional
timestampinteger
optional
tokenCountstring
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["sendReservedTokensToSplitsEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["setUriEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

fromstring
optional
idstring
required
logIndexinteger
optional
metadataone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
uristring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["setUriEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["storeAutoIssuanceAmountEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

countstring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
stageIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["storeAutoIssuanceAmountEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["suckerGroup"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
addressesarray
optional
balancestring
optional
balanceUsdstring
optional
contributorsCountinteger
optional
createdAtinteger
optional
idstring
required
nftsMintedCountinteger
optional
paymentsCountinteger
optional
redeemCountinteger
optional
redeemVolumestring
optional
redeemVolumeUsdstring
optional
reservedTokenSupplystring
optional
tokenSupplystring
optional
trendingPaymentsCountinteger
optional
trendingScorestring
optional
trendingVolumestring
optional
versioninteger
required

Values: [6]

volumestring
optional
volumeUsdstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["suckerGroup"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["suckerGroupMoment"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
accountingTokenUsdRateone of
optional
balancestring
optional
balanceUsdstring
optional
contributorsCountinteger
optional
nftsMintedCountinteger
optional
paymentsCountinteger
optional
redeemCountinteger
optional
redeemVolumestring
optional
redeemVolumeUsdstring
optional
reservedTokenSupplystring
optional
suckerGroupIdstring
required
timestampinteger
required
tokenSupplystring
optional
trendingPaymentsCountinteger
optional
trendingScorestring
optional
trendingVolumestring
optional
versioninteger
required

Values: [6]

volumestring
optional
volumeUsdstring
optional
totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["suckerGroupMoment"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["suckerTransaction"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
beneficiarystring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

createdAtinteger
optional
indexinteger
required
peerstring
optional
peerChainIdinteger
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTokenCountstring
optional
rootstring
optional
statusone of
optional
suckerstring
required
suckerGroupone of
optional
suckerGroupIdstring
optional
terminalTokenAmountstring
optional
tokenstring
required
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["suckerTransaction"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["swapEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
accountingTokenUsdRateone of
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

directionstring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
poolIdone of
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
projectTokenAmountstring
optional
projectTokenIsCurrency0one of
optional
sqrtPriceX96one of
optional
suckerGroupIdstring
optional
terminalTokenAmountstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["swapEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalList filters use the indexer's signed 32-bit GraphQL Int range.
fieldsquery / optionalBounded 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.
filtersquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
orderByquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
entitystring
required

Values: ["useAllowanceEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemsarray
required
Fields
FieldTypeDetails
amountstring
optional
amountPaidOutstring
optional
beneficiarystring
optional
callerstring
optional
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

feeBeneficiarystring
optional
fromstring
optional
idstring
required
logIndexinteger
optional
memoone of
optional
netAmountPaidOutstring
optional
projectone of
optional
projectIdstring
required
Exact nonnegative decimal string no greater than 2147483647.
rulesetCycleNumberinteger
optional
rulesetIdinteger
optional
suckerGroupIdstring
optional
timestampinteger
optional
txHashstring
optional
versioninteger
required

Values: [6]

totalCountinteger
required
pageInfoobject
required
Fields
FieldTypeDetails
hasNextPageboolean
required
hasPreviousPageboolean
required
startCursorone of
required
endCursorone of
required
nextCursorone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
networkquery / requiredstring

["mainnet","testnet"]

chainIdquery / optionalMust belong to the chosen indexer network.

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdquery / optionalExact nonnegative decimal string no greater than 9007199254740991.
idquery / optionalversion 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.
fieldsquery / optionalBounded 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

FieldTypeDetails
entitystring
required

Values: ["useAllowanceEvent"]

networkstring
required

Values: ["mainnet","testnet"]

protocolVersioninteger
required

Values: [6]

itemone of
required
provenanceobject
required
semanticsobject
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
chainIdpath / requiredinteger

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdpath / requireduint256 as a lossless decimal string
sourcequery / requiredstring

["onchain","bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
chainIdpath / requiredinteger

[1,10,8453,42161,84532,421614,11155111,11155420]

projectIdpath / requireduint256 as a lossless decimal string
sourcequery / requiredstring

["onchain","bendystraw"]

maxMembersquery / optionalinteger

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring

["prepare_project_metadata","resolve_project","search_projects","get_project","get_rulesets","get_position","get_account","get_activity","get_indexer_status","get_permissions","get_bridges","get_omnichain_group","quote_pay","quote_cash_out","quote_payout","model_economics","preview_ruleset_change","quote_loan","get_loan","get_routing","get_721_shop","quote_721_pay","get_revnet","plan_integration","get_webclient_reference","list_webclient_references","get_intent","prepare_intent","search_reference","get_reference","get_contract","decode_calldata","list_references","list_capabilities"]

inputquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain","bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

["prepare_pay","prepare_cash_out","prepare_payout","prepare_ruleset_change","prepare_launch","prepare_borrow","prepare_repay","prepare_bridge_claim","prepare_accounting_sync","prepare_buyback_pool","prepare_buyback_twap","prepare_buyback_hook","prepare_router_terminal","prepare_721_pay","prepare_adjust_tiers","prepare_721_launch","prepare_revnet_deploy","prepare_auto_issue"]

Request body

Option 1
FieldTypeDetails
memostring
optional
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tokenstring
required
amountstring
required
Input asset amount in its smallest units, as an exact integer string.
beneficiarystring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

metadatastring
optional
Option 2
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

holderstring
required
cashOutCountstring
required
Project token count in 18-decimal base units.
tokenToReclaimstring
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
optional
Option 3
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tokenstring
required
amountstring
required
Payout amount in accounting token decimals, denominated in currency.
currencyinteger
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
optional
Option 4
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
rulesetConfigurationsarray
required
Fields
FieldTypeDetails
mustStartAtOrAfterstring
required
Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.
durationstring
required
Seconds per cycle. Zero has no automatic cycles.
weightstring
required
18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.
weightCutPercentstring
required
approvalHookstring
required
Gates the next ruleset, not this ruleset.
metadataobject
required
splitGroupsarray
required
fundAccessLimitGroupsarray
required
memostring
optional
Option 5
FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
compositionstring
required
Explicit standard core launch. This does not deploy a 721 hook, revnet, or omnichain identity.

Values: ["core"]

projectUristring
required
Metadata URI; content is not fetched or treated as instructions.
rulesetConfigurationsarray
required
Fields
FieldTypeDetails
mustStartAtOrAfterstring
required
Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.
durationstring
required
Seconds per cycle. Zero has no automatic cycles.
weightstring
required
18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.
weightCutPercentstring
required
approvalHookstring
required
Gates the next ruleset, not this ruleset.
metadataobject
required
splitGroupsarray
required
fundAccessLimitGroupsarray
required
terminalConfigurationsarray
required
Fields
FieldTypeDetails
terminalstring
required
accountingContextsToAcceptarray
required
memostring
optional
Option 6
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

holderstring
required
tokenstring
required
collateralCountstring
required
prepaidFeePercentinteger
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

Option 7
FieldTypeDetails
chainIdone of
required
loanIdstring
required
accountstring
required
maxRepayBorrowAmountstring
required
collateralCountToReturnstring
required
beneficiarystring
required
Option 8
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
suckerstring
required
claimobject
required
Fields
FieldTypeDetails
tokenstring
required
leafobject
required
proofarray
required
Option 9
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
suckerstring
required
maxTransportValuestring
required
Maximum native wei attached to the accounting message; gas is additional.
Option 10
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
terminalTokenstring
required
feeinteger
required
Static Uniswap V4 pool fee in hundredths of a basis point; 3000 = 0.3%.
tickSpacinginteger
required
twapWindowSecondsinteger
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
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
terminalTokenstring
required
twapWindowSecondsinteger
required
Option 12
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
hookstring
required
Option 13
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
terminalstring
required
Option 14
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tokenstring
required
amountstring
required
beneficiarystring
required
tierIdsarray
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

allowOverspendingboolean
optional

Default: false

Option 15
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tiersToAddarray
required
Fields
FieldTypeDetails
pricestring
required
initialSupplystring
required
votingUnitsstring
required
reserveFrequencystring
required
reserveBeneficiarystring
required
encodedIpfsUristring
required
categorystring
required
discountPercentstring
required
flagsobject
required
splitPercentstring
required
splitsarray
required
tierIdsToRemovearray
required
Option 16
FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
deployTiersHookConfigobject
required
Fields
FieldTypeDetails
namestring
required
symbolstring
required
baseUristring
required
tokenUriResolverstring
required
contractUristring
required
tiersConfigobject
required
flagsobject
required
projectUristring
required
rulesetConfigurationsarray
required
Fields
FieldTypeDetails
mustStartAtOrAfterstring
required
Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.
durationstring
required
Seconds per cycle. Zero has no automatic cycles.
weightstring
required
18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.
weightCutPercentstring
required
approvalHookstring
required
Gates the next ruleset, not this ruleset.
metadataobject
required
splitGroupsarray
required
fundAccessLimitGroupsarray
required
terminalConfigurationsarray
required
Fields
FieldTypeDetails
terminalstring
required
accountingContextsToAcceptarray
required
memostring
optional

Default: ""

saltstring
required
Option 17
FieldTypeDetails
chainIdone of
required
accountstring
required
configobject
required
Fields
FieldTypeDetails
descriptionobject
required
baseCurrencystring
required
operatorstring
required
scopeCashOutsToLocalBalancesboolean
required
stageConfigurationsarray
required
accountingContextsarray
required
Fields
FieldTypeDetails
tokenstring
required
decimalsstring
required
currencystring
required
suckerConfigobject
required
Fields
FieldTypeDetails
saltstring
required
deployerConfigurationsarray
required
tiered721Configobject
optional
Fields
FieldTypeDetails
baseline721HookConfigurationobject
required
saltstring
required
preventOperatorAdjustingTiersboolean
required
preventOperatorUpdatingMetadataboolean
required
preventOperatorMintingboolean
required
preventOperatorIncreasingDiscountPercentboolean
required
allowedPostsarray
optional
Fields
FieldTypeDetails
categorystring
required
minimumPricestring
required
minimumTotalSupplystring
required
maximumTotalSupplystring
required
0 means unlimited; actual minted NFT tiers remain subject to the store supply cap.
maximumSplitPercentstring
required
allowedAddressesarray
required
Option 18
FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
stageIdstring
required
beneficiarystring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / requiredstring

["onchain","bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / optionalSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["bendystraw"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize as JSON once, percent-encode the query value, then sign the exact resulting request target.
sourcequery / optionalstring

["onchain"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / optionalSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / requiredSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / optionalSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
inputquery / optionalSerialize 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
memostring
optional
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tokenstring
required
amountstring
required
Input asset amount in its smallest units, as an exact integer string.
beneficiarystring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

metadatastring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

holderstring
required
cashOutCountstring
required
Project token count in 18-decimal base units.
tokenToReclaimstring
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tokenstring
required
amountstring
required
Payout amount in accounting token decimals, denominated in currency.
currencyinteger
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
rulesetConfigurationsarray
required
Fields
FieldTypeDetails
mustStartAtOrAfterstring
required
Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.
durationstring
required
Seconds per cycle. Zero has no automatic cycles.
weightstring
required
18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.
weightCutPercentstring
required
approvalHookstring
required
Gates the next ruleset, not this ruleset.
metadataobject
required
Fields
FieldTypeDetails
reservedPercentstring
required
cashOutTaxRatestring
required
baseCurrencystring
required
pausePayboolean
required
pauseCreditTransfersboolean
required
allowOwnerMintingboolean
required
allowSetCustomTokenboolean
required
allowTerminalMigrationboolean
required
allowSetTerminalsboolean
required
allowSetControllerboolean
required
allowAddAccountingContextboolean
required
allowAddPriceFeedboolean
required
ownerMustSendPayoutsboolean
required
holdFeesboolean
required
scopeCashOutsToLocalBalancesboolean
required
useDataHookForPayboolean
required
useDataHookForCashOutboolean
required
dataHookstring
required
metadatastring
required
splitGroupsarray
required
Fields
FieldTypeDetails
groupIdstring
required
splitsarray
required
fundAccessLimitGroupsarray
required
Fields
FieldTypeDetails
terminalstring
required
tokenstring
required
payoutLimitsarray
required
surplusAllowancesarray
required
memostring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
compositionstring
required
Explicit standard core launch. This does not deploy a 721 hook, revnet, or omnichain identity.

Values: ["core"]

projectUristring
required
Metadata URI; content is not fetched or treated as instructions.
rulesetConfigurationsarray
required
Fields
FieldTypeDetails
mustStartAtOrAfterstring
required
Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.
durationstring
required
Seconds per cycle. Zero has no automatic cycles.
weightstring
required
18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.
weightCutPercentstring
required
approvalHookstring
required
Gates the next ruleset, not this ruleset.
metadataobject
required
Fields
FieldTypeDetails
reservedPercentstring
required
cashOutTaxRatestring
required
baseCurrencystring
required
pausePayboolean
required
pauseCreditTransfersboolean
required
allowOwnerMintingboolean
required
allowSetCustomTokenboolean
required
allowTerminalMigrationboolean
required
allowSetTerminalsboolean
required
allowSetControllerboolean
required
allowAddAccountingContextboolean
required
allowAddPriceFeedboolean
required
ownerMustSendPayoutsboolean
required
holdFeesboolean
required
scopeCashOutsToLocalBalancesboolean
required
useDataHookForPayboolean
required
useDataHookForCashOutboolean
required
dataHookstring
required
metadatastring
required
splitGroupsarray
required
Fields
FieldTypeDetails
groupIdstring
required
splitsarray
required
fundAccessLimitGroupsarray
required
Fields
FieldTypeDetails
terminalstring
required
tokenstring
required
payoutLimitsarray
required
surplusAllowancesarray
required
terminalConfigurationsarray
required
Fields
FieldTypeDetails
terminalstring
required
accountingContextsToAcceptarray
required
Fields
FieldTypeDetails
tokenstring
required
decimalsstring
required
currencystring
required
memostring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

holderstring
required
tokenstring
required
collateralCountstring
required
prepaidFeePercentinteger
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
chainIdone of
required
loanIdstring
required
accountstring
required
maxRepayBorrowAmountstring
required
collateralCountToReturnstring
required
beneficiarystring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
suckerstring
required
claimobject
required
Fields
FieldTypeDetails
tokenstring
required
leafobject
required
Fields
FieldTypeDetails
indexstring
required
beneficiarystring
required
projectTokenCountstring
required
terminalTokenAmountstring
required
metadatastring
required
proofarray
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"
    },
    "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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
suckerstring
required
maxTransportValuestring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
terminalTokenstring
required
feeinteger
required
Static Uniswap V4 pool fee in hundredths of a basis point; 3000 = 0.3%.
tickSpacinginteger
required
twapWindowSecondsinteger
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
terminalTokenstring
required
twapWindowSecondsinteger
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
hookstring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
terminalstring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tokenstring
required
amountstring
required
beneficiarystring
required
tierIdsarray
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

allowOverspendingboolean
optional

Default: false

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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
tiersToAddarray
required
Fields
FieldTypeDetails
pricestring
required
initialSupplystring
required
votingUnitsstring
required
reserveFrequencystring
required
reserveBeneficiarystring
required
encodedIpfsUristring
required
categorystring
required
discountPercentstring
required
flagsobject
required
Fields
FieldTypeDetails
allowOwnerMintboolean
required
useReserveBeneficiaryAsDefaultboolean
required
transfersPausableboolean
required
useVotingUnitsboolean
required
cantBeRemovedboolean
required
cantIncreaseDiscountPercentboolean
required
cantBuyWithCreditsboolean
required
splitPercentstring
required
splitsarray
required
Fields
FieldTypeDetails
percentstring
required
projectIdstring
required
beneficiarystring
required
preferAddToBalanceboolean
required
lockedUntilstring
required
hookstring
required
tierIdsToRemovearray
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
deployTiersHookConfigobject
required
Fields
FieldTypeDetails
namestring
required
symbolstring
required
baseUristring
required
tokenUriResolverstring
required
contractUristring
required
tiersConfigobject
required
Fields
FieldTypeDetails
tiersarray
required
currencystring
required
decimalsstring
required
flagsobject
required
Fields
FieldTypeDetails
noNewTiersWithReservesboolean
required
noNewTiersWithVotesboolean
required
noNewTiersWithOwnerMintingboolean
required
preventOverspendingboolean
required
issueTokensForSplitsboolean
required
projectUristring
required
rulesetConfigurationsarray
required
Fields
FieldTypeDetails
mustStartAtOrAfterstring
required
Unix seconds. A lower bound, not a promised start; 0 asks the contract to resolve timing.
durationstring
required
Seconds per cycle. Zero has no automatic cycles.
weightstring
required
18-decimal issuance weight. 0 means zero issuance; 1 inherits decayed weight when a prior ruleset exists.
weightCutPercentstring
required
approvalHookstring
required
Gates the next ruleset, not this ruleset.
metadataobject
required
Fields
FieldTypeDetails
reservedPercentstring
required
cashOutTaxRatestring
required
baseCurrencystring
required
pausePayboolean
required
pauseCreditTransfersboolean
required
allowOwnerMintingboolean
required
allowSetCustomTokenboolean
required
allowTerminalMigrationboolean
required
allowSetTerminalsboolean
required
allowSetControllerboolean
required
allowAddAccountingContextboolean
required
allowAddPriceFeedboolean
required
ownerMustSendPayoutsboolean
required
holdFeesboolean
required
scopeCashOutsToLocalBalancesboolean
required
useDataHookForCashOutboolean
required
metadatastring
required
splitGroupsarray
required
Fields
FieldTypeDetails
groupIdstring
required
splitsarray
required
fundAccessLimitGroupsarray
required
Fields
FieldTypeDetails
terminalstring
required
tokenstring
required
payoutLimitsarray
required
surplusAllowancesarray
required
terminalConfigurationsarray
required
Fields
FieldTypeDetails
terminalstring
required
accountingContextsToAcceptarray
required
Fields
FieldTypeDetails
tokenstring
required
decimalsstring
required
currencystring
required
memostring
optional

Default: ""

saltstring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
chainIdone of
required
accountstring
required
configobject
required
Fields
FieldTypeDetails
descriptionobject
required
Fields
FieldTypeDetails
namestring
required
tickerstring
required
uristring
required
saltstring
required
baseCurrencystring
required
operatorstring
required
scopeCashOutsToLocalBalancesboolean
required
stageConfigurationsarray
required
Fields
FieldTypeDetails
startsAtOrAfterstring
required
autoIssuancesarray
required
splitPercentstring
required
splitsarray
required
initialIssuancestring
required
issuanceCutFrequencystring
required
issuanceCutPercentstring
required
cashOutTaxRatestring
required
extraMetadatastring
required
accountingContextsarray
required
Fields
FieldTypeDetails
tokenstring
required
decimalsstring
required
currencystring
required
suckerConfigobject
required
Fields
FieldTypeDetails
saltstring
required
deployerConfigurationsarray
required
Fields
FieldTypeDetails
deployerstring
required
peerstring
required
mappingsarray
required
tiered721Configobject
optional
Fields
FieldTypeDetails
baseline721HookConfigurationobject
required
Fields
FieldTypeDetails
namestring
required
symbolstring
required
baseUristring
required
tokenUriResolverstring
required
contractUristring
required
tiersConfigobject
required
flagsobject
required
saltstring
required
preventOperatorAdjustingTiersboolean
required
preventOperatorUpdatingMetadataboolean
required
preventOperatorMintingboolean
required
preventOperatorIncreasingDiscountPercentboolean
required
allowedPostsarray
optional
Fields
FieldTypeDetails
categorystring
required
minimumPricestring
required
minimumTotalSupplystring
required
maximumTotalSupplystring
required
0 means unlimited; actual minted NFT tiers remain subject to the store supply cap.
maximumSplitPercentstring
required
allowedAddressesarray
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"
    },
    "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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
projectobject
required
Fields
FieldTypeDetails
chainIdone of
required
projectIdstring
required
versionnumber
optional

Values: [6]

Default: 6

accountstring
required
stageIdstring
required
beneficiarystring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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
FieldTypeDetails
operationstring
required

Values: ["contract_calls"]

inputobject
required
Fields
FieldTypeDetails
accountstring
required
callsarray
required
labelstring
optional
Option 2
FieldTypeDetails
operationstring
required

Values: ["prepare_pay"]

inputobject
required
Fields
FieldTypeDetails
memostring
optional
projectobject
required
accountstring
required
tokenstring
required
amountstring
required
Input asset amount in its smallest units, as an exact integer string.
beneficiarystring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

metadatastring
optional
Option 3
FieldTypeDetails
operationstring
required

Values: ["prepare_cash_out"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
holderstring
required
cashOutCountstring
required
Project token count in 18-decimal base units.
tokenToReclaimstring
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
optional
Option 4
FieldTypeDetails
operationstring
required

Values: ["prepare_payout"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
tokenstring
required
amountstring
required
Payout amount in accounting token decimals, denominated in currency.
currencyinteger
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
optional
Option 5
FieldTypeDetails
operationstring
required

Values: ["prepare_ruleset_change"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
rulesetConfigurationsarray
required
memostring
optional
Option 6
FieldTypeDetails
operationstring
required

Values: ["prepare_launch"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
compositionstring
required
Explicit standard core launch. This does not deploy a 721 hook, revnet, or omnichain identity.

Values: ["core"]

projectUristring
required
Metadata URI; content is not fetched or treated as instructions.
rulesetConfigurationsarray
required
terminalConfigurationsarray
required
memostring
optional
Option 7
FieldTypeDetails
operationstring
required

Values: ["prepare_borrow"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
holderstring
required
tokenstring
required
collateralCountstring
required
prepaidFeePercentinteger
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

Option 8
FieldTypeDetails
operationstring
required

Values: ["prepare_repay"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
loanIdstring
required
accountstring
required
maxRepayBorrowAmountstring
required
collateralCountToReturnstring
required
beneficiarystring
required
Option 9
FieldTypeDetails
operationstring
required

Values: ["prepare_bridge_claim"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
suckerstring
required
claimobject
required
Option 10
FieldTypeDetails
operationstring
required

Values: ["prepare_accounting_sync"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
suckerstring
required
maxTransportValuestring
required
Maximum native wei attached to the accounting message; gas is additional.
Option 11
FieldTypeDetails
operationstring
required

Values: ["prepare_buyback_pool"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
terminalTokenstring
required
feeinteger
required
Static Uniswap V4 pool fee in hundredths of a basis point; 3000 = 0.3%.
tickSpacinginteger
required
twapWindowSecondsinteger
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 12
FieldTypeDetails
operationstring
required

Values: ["prepare_buyback_twap"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
terminalTokenstring
required
twapWindowSecondsinteger
required
Option 13
FieldTypeDetails
operationstring
required

Values: ["prepare_buyback_hook"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
hookstring
required
Option 14
FieldTypeDetails
operationstring
required

Values: ["prepare_router_terminal"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
terminalstring
required
Option 15
FieldTypeDetails
operationstring
required

Values: ["prepare_721_pay"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
tokenstring
required
amountstring
required
beneficiarystring
required
tierIdsarray
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

allowOverspendingboolean
optional

Default: false

Option 16
FieldTypeDetails
operationstring
required

Values: ["prepare_adjust_tiers"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
tiersToAddarray
required
tierIdsToRemovearray
required
Option 17
FieldTypeDetails
operationstring
required

Values: ["prepare_721_launch"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
deployTiersHookConfigobject
required
projectUristring
required
rulesetConfigurationsarray
required
terminalConfigurationsarray
required
memostring
optional

Default: ""

saltstring
required
Option 18
FieldTypeDetails
operationstring
required

Values: ["prepare_revnet_deploy"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
accountstring
required
configobject
required
accountingContextsarray
required
suckerConfigobject
required
tiered721Configobject
optional
allowedPostsarray
optional
Option 19
FieldTypeDetails
operationstring
required

Values: ["prepare_auto_issue"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
stageIdstring
required
beneficiarystring
required
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
accountquery / optionalstring
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
itemsarray
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
callsarray
required
evidencearray
required
summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
executionobject
optional
receiptobject
optional
semanticobject
optional
blockedByarray
required
confirmationScopestring
required
nextCursorone 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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring
refreshquery / optionalboolean

Response 200

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring
steppath / requiredinteger

Response 200

FieldTypeDetails
planIdstring (uuid)
required
commitmentstring
required
stepIndexinteger
required
simulatedboolean
required

Values: [true]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
resultstring
required
estimatedGasstring
required
uint256 as a lossless decimal string
limitationsarray
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring
steppath / requiredinteger

Request body

FieldTypeDetails
rawSignedTransactionstring
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.
ownerApprovalobject
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
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
planIdstring (uuid)
required
commitmentstring
required
stepIndexinteger
required
transactionHashstring
required
issuedAtinteger
required
Positive Unix seconds. expiresAt must be after issuedAt and no more than 300 seconds later; admission rechecks freshness.
expiresAtinteger
required
Positive Unix seconds. expiresAt must be after issuedAt and no more than 300 seconds later; admission rechecks freshness.
noncestring
required
signaturestring
required
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

FieldTypeDetails
planobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
callsarray
required
evidencearray
required
summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
executionobject
optional
receiptobject
optional
semanticobject
optional
blockedByarray
required
confirmationScopestring
required
dispatchobject
required
Fields
FieldTypeDetails
statusstring
required

Values: ["already-observed","in-flight","submitted","unknown"]

hashstring
required
errorobject
optional
Fields
FieldTypeDetails
codestring
required
messagestring
required
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

Request body

FieldTypeDetails
submissionsarray
required
Fields
FieldTypeDetails
stepIndexinteger
required
rawSignedTransactionstring
required
ownerApprovalobject
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
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
planIdstring (uuid)
required
commitmentstring
required
stepIndexinteger
required
transactionHashstring
required
issuedAtinteger
required
Positive Unix seconds. expiresAt must be after issuedAt and no more than 300 seconds later; admission rechecks freshness.
expiresAtinteger
required
Positive Unix seconds. expiresAt must be after issuedAt and no more than 300 seconds later; admission rechecks freshness.
noncestring
required
signaturestring
required
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

FieldTypeDetails
atomicboolean
required

Values: [false]

completeboolean
required
resultsarray
required
Fields
FieldTypeDetails
planobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
confirmationScopestring
required
dispatchobject
required
Fields
FieldTypeDetails
statusstring
required

Values: ["already-observed","in-flight","submitted","unknown"]

hashstring
required
errorobject
optional
planobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
callsarray
required
evidencearray
required
summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
executionobject
optional
receiptobject
optional
semanticobject
optional
blockedByarray
required
confirmationScopestring
required
stoppedAtinteger
optional
errorobject
optional
Fields
FieldTypeDetails
codestring
required
messagestring
required
remainingStepIndicesarray
optional
notestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
planIdstring (uuid)
required
stepIndexesarray
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

FieldTypeDetails
idstring (uuid)
required
planIdstring (uuid)
required
planCommitmentstring
required
commitmentstring
required
statestring
required

Values: ["prepared","submitting","submission_unknown","quoted"]

availabilitystring
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: ["available","submission_unknown","requires_verification","funding_quote_available","execution_verified","completed"]

createdAtinteger
required
Unix timestamp in milliseconds.
publicationExpiresAtinteger
required
Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published.
revisioninteger
required
authorizationsarray
required
Fields
FieldTypeDetails
stepIndexinteger
required
chainIdinteger
required

Values: [1,10,8453,42161]

forwarderstring
required
forwarderCodeHashstring
required
targetCodeHashstring
required
domainobject
required
Fields
FieldTypeDetails
namestring
required
versionstring
required
chainIdinteger
required

Values: [1,10,8453,42161]

verifyingContractstring
required
messageobject
required
Fields
FieldTypeDetails
fromstring
required
tostring
required
valuestring
required
uint256 as a lossless decimal string
gasstring
required
uint256 as a lossless decimal string
noncestring
required
uint256 as a lossless decimal string
deadlinestring
required
Exact uint48 Unix seconds. This onchain authorization deadline can outlive the shorter source-plan publication cutoff.
datastring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

primaryTypestring
required

Values: ["ForwardRequest"]

typesobject
required

Values: [{"ForwardRequest":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"gas","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint48"},{"name":"data","type":"bytes"}]}]

submissionobject
optional
Fields
FieldTypeDetails
hashstring
required
startedAtinteger
required
Unix timestamp in milliseconds.
repeatPublicationAllowedboolean
required

Values: [false]

quoteobject
optional
Fields
FieldTypeDetails
bundleUuidstring
required
commitmentstring
required
paymentsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
deadlinestring
required
uint256 as a lossless decimal string
runtimeVerifiedboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
transactionsarray
required
Fields
FieldTypeDetails
txUuidstring
required
chainIdinteger
required

Values: [1,10,8453,42161]

outerCallHashstring
required
observationsarray
required
Fields
FieldTypeDetails
stepIndexinteger
required
chainIdinteger
required

Values: [1,10,8453,42161]

providerStatestring
required
statestring
required

Values: ["pending","unknown","confirming","confirmed","reverted"]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
reasonstring
optional
authorizationNoticestring
required
fundingNoticestring
required
recoverystring
optional
economicCompletionboolean
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring
refreshquery / optionalboolean

Response 200

FieldTypeDetails
idstring (uuid)
required
planIdstring (uuid)
required
planCommitmentstring
required
commitmentstring
required
statestring
required

Values: ["prepared","submitting","submission_unknown","quoted"]

availabilitystring
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: ["available","submission_unknown","requires_verification","funding_quote_available","execution_verified","completed"]

createdAtinteger
required
Unix timestamp in milliseconds.
publicationExpiresAtinteger
required
Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published.
revisioninteger
required
authorizationsarray
required
Fields
FieldTypeDetails
stepIndexinteger
required
chainIdinteger
required

Values: [1,10,8453,42161]

forwarderstring
required
forwarderCodeHashstring
required
targetCodeHashstring
required
domainobject
required
Fields
FieldTypeDetails
namestring
required
versionstring
required
chainIdinteger
required

Values: [1,10,8453,42161]

verifyingContractstring
required
messageobject
required
Fields
FieldTypeDetails
fromstring
required
tostring
required
valuestring
required
uint256 as a lossless decimal string
gasstring
required
uint256 as a lossless decimal string
noncestring
required
uint256 as a lossless decimal string
deadlinestring
required
Exact uint48 Unix seconds. This onchain authorization deadline can outlive the shorter source-plan publication cutoff.
datastring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

primaryTypestring
required

Values: ["ForwardRequest"]

typesobject
required

Values: [{"ForwardRequest":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"gas","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint48"},{"name":"data","type":"bytes"}]}]

submissionobject
optional
Fields
FieldTypeDetails
hashstring
required
startedAtinteger
required
Unix timestamp in milliseconds.
repeatPublicationAllowedboolean
required

Values: [false]

quoteobject
optional
Fields
FieldTypeDetails
bundleUuidstring
required
commitmentstring
required
paymentsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
deadlinestring
required
uint256 as a lossless decimal string
runtimeVerifiedboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
transactionsarray
required
Fields
FieldTypeDetails
txUuidstring
required
chainIdinteger
required

Values: [1,10,8453,42161]

outerCallHashstring
required
observationsarray
required
Fields
FieldTypeDetails
stepIndexinteger
required
chainIdinteger
required

Values: [1,10,8453,42161]

providerStatestring
required
statestring
required

Values: ["pending","unknown","confirming","confirmed","reverted"]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
reasonstring
optional
authorizationNoticestring
required
fundingNoticestring
required
recoverystring
optional
economicCompletionboolean
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

Request body

FieldTypeDetails
signaturesarray
required
One owner ECDSA ForwardRequest signature per returned authorization, in the same order.
ownerApprovalobject
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
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
sponsorshipIdstring (uuid)
required
commitmentstring
required
submissionHashstring
required
issuedAtinteger
required
Positive Unix seconds. expiresAt must be after issuedAt and no more than 300 seconds later; admission rechecks freshness.
expiresAtinteger
required
Positive Unix seconds. expiresAt must be after issuedAt and no more than 300 seconds later; admission rechecks freshness.
noncestring
required
signaturestring
required
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

FieldTypeDetails
idstring (uuid)
required
planIdstring (uuid)
required
planCommitmentstring
required
commitmentstring
required
statestring
required

Values: ["prepared","submitting","submission_unknown","quoted"]

availabilitystring
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: ["available","submission_unknown","requires_verification","funding_quote_available","execution_verified","completed"]

createdAtinteger
required
Unix timestamp in milliseconds.
publicationExpiresAtinteger
required
Original source-plan cutoff for new publication. It cannot revoke a ForwardRequest already published.
revisioninteger
required
authorizationsarray
required
Fields
FieldTypeDetails
stepIndexinteger
required
chainIdinteger
required

Values: [1,10,8453,42161]

forwarderstring
required
forwarderCodeHashstring
required
targetCodeHashstring
required
domainobject
required
Fields
FieldTypeDetails
namestring
required
versionstring
required
chainIdinteger
required

Values: [1,10,8453,42161]

verifyingContractstring
required
messageobject
required
Fields
FieldTypeDetails
fromstring
required
tostring
required
valuestring
required
uint256 as a lossless decimal string
gasstring
required
uint256 as a lossless decimal string
noncestring
required
uint256 as a lossless decimal string
deadlinestring
required
Exact uint48 Unix seconds. This onchain authorization deadline can outlive the shorter source-plan publication cutoff.
datastring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

primaryTypestring
required

Values: ["ForwardRequest"]

typesobject
required

Values: [{"ForwardRequest":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"gas","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint48"},{"name":"data","type":"bytes"}]}]

submissionobject
optional
Fields
FieldTypeDetails
hashstring
required
startedAtinteger
required
Unix timestamp in milliseconds.
repeatPublicationAllowedboolean
required

Values: [false]

quoteobject
optional
Fields
FieldTypeDetails
bundleUuidstring
required
commitmentstring
required
paymentsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
deadlinestring
required
uint256 as a lossless decimal string
runtimeVerifiedboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
transactionsarray
required
Fields
FieldTypeDetails
txUuidstring
required
chainIdinteger
required

Values: [1,10,8453,42161]

outerCallHashstring
required
observationsarray
required
Fields
FieldTypeDetails
stepIndexinteger
required
chainIdinteger
required

Values: [1,10,8453,42161]

providerStatestring
required
statestring
required

Values: ["pending","unknown","confirming","confirmed","reverted"]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
reasonstring
optional
authorizationNoticestring
required
fundingNoticestring
required
recoverystring
optional
economicCompletionboolean
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

Request body

FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161]

payerstring
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

FieldTypeDetails
deploymentResearchobject
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
FieldTypeDetails
schemaVersioninteger
required

Values: [1]

readOnlyboolean
required

Values: [true]

observedAtstring (date-time)
required
limitationsarray
required
contractsobject
required
chainsarray
required
compiledPolicySourcesarray
optional
Fields
FieldTypeDetails
namestring
required
pathstring
required
sha256string
required
keccak256string
required
verificationInputSha256string
required
verificationInputUrlstring (uri)
required
compilerstring
required
artifactMetadataSourceKeccakMatchesboolean
required
accountOwnershipVerificationstring
required

Values: ["safe-current-eoa-owner-threshold"]

sessionDurationsDaysarray
required

Values: [[7,30]]

walletCreationboolean
required
userOperationsstring
required

Values: ["/api/v1/capabilities"]

deploymentsarray
required
Fields
FieldTypeDetails
manifestIdstring
required
modestring
required
Ownership-only manifests support association. Execution candidates still require current provider, deployed guard, account-history and policy verification.

Values: ["ownership-only","execution-candidate"]

chainIdinteger
required
revisionstring
required
manifestobject
required
Fields
FieldTypeDetails
idstring
required
modestring
required

Values: ["ownership-only","execution-candidate"]

chainIdinteger
required
revisionstring
required
safeVersionstring
required

Values: ["1.4.1"]

proxyRuntimeCodeHashstring
required
singletonobject
required
factoryobject
required
safe7579object
required
launchpadobject
required
entryPointobject
optional
smartSessionsobject
required
policiesarray
required
moduleInspectorIdstring
required
moduleGenerationstring
required

Values: ["legacy-validator","emissary"]

entryPointSourceVerifiedboolean
required
moduleInspectionConfiguredboolean
required
requirementsarray
required
exclusionsarray
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
manifestIdstring
required
addressstring
required
noncevalue
required
expiresAtinteger
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

FieldTypeDetails
stateobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
manifestRevisionstring
required
ownersarray
required
Fields

string

thresholdinteger
required
safeNoncestring
required
uint256 as a lossless decimal string
stateHashstring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

codeHashesarray
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
modulesone of
required
moduleConfigurationVerifiedboolean
required
executionVerifiedboolean
required

Values: [false]

digeststring
required
typedDataobject
required
Fields
FieldTypeDetails
domainobject
required
Fields
FieldTypeDetails
namestring
required

Values: ["Juicebox Center Smart Account"]

versionstring
required

Values: ["1"]

chainIdinteger
required
verifyingContractstring
required
saltstring
required
primaryTypestring
required

Values: ["BindSmartAccount"]

typesobject
required

Values: [{"BindSmartAccount":[{"name":"accountId","type":"string"},{"name":"owner","type":"address"},{"name":"stateHash","type":"bytes32"},{"name":"nonce","type":"bytes32"},{"name":"expiresAt","type":"uint64"}]}]

messageobject
required
Fields
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerstring
required
stateHashstring
required
noncevalue
required
expiresAtstring
required
Uint64 typed-data value serialized as a decimal string. Challenge request expiresAt uses a JSON integer in Unix seconds.
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

FieldTypeDetails
ownervalue
required
addressvalue
required
manifestIdstring
required
noncevalue
required
issuedAtinteger
required
No more than 30 seconds ahead of server time.
expiresAtinteger
required
Future Unix seconds, after issuedAt and no more than 300 seconds later.
grantobject
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
FieldTypeDetails
idstring (uuid)
required
botAddressvalue
required
scopesarray
required

Values: [["read","plan","relay"]]

expiresAtinteger
required
After the setup authorization expires and no more than 3600 seconds after its issuedAt.
labelstring
required
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

FieldTypeDetails
stateobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
manifestRevisionstring
required
ownersarray
required
Fields

string

thresholdinteger
required
safeNoncestring
required
uint256 as a lossless decimal string
stateHashstring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

codeHashesarray
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
modulesone of
required
moduleConfigurationVerifiedboolean
required
executionVerifiedboolean
required

Values: [false]

digeststring
required
typedDataobject
required
Fields
FieldTypeDetails
domainobject
required
Fields
FieldTypeDetails
namestring
required

Values: ["Juicebox Center Account Setup"]

versionstring
required

Values: ["1"]

chainIdinteger
required

Values: [8453]

verifyingContractstring
required
saltstring
required
primaryTypestring
required

Values: ["SetupAccount"]

typesobject
required

Values: [{"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"}]}]

messageobject
required
Fields
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownervalue
required
manifestIdstring
required
manifestRevisionstring
required
initializerHashstring
required
stateHashstring
required
noncevalue
required
issuedAtstring
required
Typed-data uint64 serialized as a decimal string. Request timestamps use JSON integers in Unix seconds.
expiresAtstring
required
Typed-data uint64 serialized as a decimal string. Request timestamps use JSON integers in Unix seconds.
grantIdstring (uuid)
required
botAddressvalue
required
scopesarray
required

Values: [["read","plan","relay"]]

grantExpiresAtstring
required
Typed-data uint64 serialized as a decimal string. Request timestamps use JSON integers in Unix seconds.
labelstring
required
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

FieldTypeDetails
ownervalue
required
addressvalue
required
manifestIdstring
required
noncevalue
required
issuedAtinteger
required
No more than 30 seconds ahead of server time.
expiresAtinteger
required
Future Unix seconds, after issuedAt and no more than 300 seconds later.
grantobject
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
FieldTypeDetails
idstring (uuid)
required
botAddressvalue
required
scopesarray
required

Values: [["read","plan","relay"]]

expiresAtinteger
required
After the setup authorization expires and no more than 3600 seconds after its issuedAt.
labelstring
required
manifestRevisionstring
required
initializerHashstring
required
stateHashstring
required
signaturestring
required
Current sole owner's signature over the exact returned SetupAccount document.
proofSignaturestring
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

FieldTypeDetails
accountobject
required
Fields
FieldTypeDetails
idstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerAddressstring
required
authorityChainIdinteger
required
profileobject
required
Fields
FieldTypeDetails
displayNamestring
required
biostring
required
avatarUrione of
required
createdAtinteger
required
Unix timestamp in seconds.
updatedAtinteger
required
Unix timestamp in seconds.
bindingobject
required
Fields
FieldTypeDetails
idstring
required
ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerAddressstring
required
walletobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
authorizationone of
required
stateobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
manifestRevisionstring
required
ownersarray
required
thresholdinteger
required
safeNoncestring
required
uint256 as a lossless decimal string
stateHashstring
required
evidenceobject
required
codeHashesarray
required
modulesone of
required
moduleConfigurationVerifiedboolean
required
executionVerifiedboolean
required

Values: [false]

grantobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
botAddressstring
required
scopesarray
required
Cumulative profiles in canonical order: read; read + plan; read + plan + relay. Validation never expands or reorders the signed list.
labelstring
required
createdAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revokedAtone of
required
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
manifestIdstring
required
addressstring
required
noncevalue
required
expiresAtinteger
required
Future Unix seconds no more than 900 seconds after server time.
stateHashstring
required
signaturestring
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

FieldTypeDetails
idstring
required
ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerAddressstring
required
walletobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
authorizationone of
required
stateobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
manifestRevisionstring
required
ownersarray
required
Fields

string

thresholdinteger
required
safeNoncestring
required
uint256 as a lossless decimal string
stateHashstring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

codeHashesarray
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
modulesone of
required
moduleConfigurationVerifiedboolean
required
executionVerifiedboolean
required

Values: [false]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
itemsarray
required
Fields
FieldTypeDetails
idstring
required
walletobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
stateHashstring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

moduleConfigurationVerifiedboolean
required
executionVerifiedboolean
required

Values: [false]

observationstring
required

Values: ["stored-binding-snapshot"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring

Response 200

FieldTypeDetails
idstring
required
ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
ownerAddressstring
required
walletobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
authorizationone of
required
stateobject
required
Fields
FieldTypeDetails
chainIdinteger
required
addressstring
required
manifestIdstring
required
manifestRevisionstring
required
ownersarray
required
Fields

string

thresholdinteger
required
safeNoncestring
required
uint256 as a lossless decimal string
stateHashstring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

codeHashesarray
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
modulesone of
required
moduleConfigurationVerifiedboolean
required
executionVerifiedboolean
required

Values: [false]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring

Response 200

FieldTypeDetails
idstring
required
statusstring
required

Values: ["unlinked"]

onchainSessionRevokedboolean
required

Values: [false]

reasonstring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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

FieldTypeDetails
bindingIdstring
required
grantIdstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
noncevalue
required
validAfterinteger
required
Start at or after server time, within the next 86400 seconds. The complete chosen duration must fit the active bot grant's expiry.
durationDaysinteger
required

Values: [7,30]

maximumCallsvalue
required
gasBudgetobject
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
FieldTypeDetails
paymasterstring
required
maxGasPerOperationvalue
required
maxFeePerGasvalue
required
maxPriorityFeePerGasstring
required
uint128 as a lossless decimal string
totalGasLimitvalue
required
totalSponsoredCostLimitvalue
required
Positive uint256 as an exact decimal string.
maxPaymasterDataLengthinteger
required

Values: [130]

allocationsarray
required
Fields
FieldTypeDetails
idstring
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
Fields
FieldTypeDetails
idstring
required
chainIdinteger
required
assetstring
required
limitvalue
required
Positive uint256 as an exact decimal string.
actionsarray
required
Fields
Option 1
FieldTypeDetails
kindstring
required

Values: ["v6-project-uri"]

controllerstring
required
projectIdvalue
required
Positive uint256 as an exact decimal string.
Option 2
FieldTypeDetails
kindstring
required

Values: ["erc20-transfer"]

allocationIdstring
required
beneficiarystring
required
perCallLimitvalue
required
Positive uint256 as an exact decimal string.
totalLimitvalue
required
Positive uint256 as an exact decimal string.
Option 3
FieldTypeDetails
kindstring
required

Values: ["v6-pay"]

allocationIdstring
required
beneficiarystring
required
perCallLimitvalue
required
Positive uint256 as an exact decimal string.
totalLimitvalue
required
Positive uint256 as an exact decimal string.
terminalstring
required
projectIdvalue
required
Positive uint256 as an exact decimal string.
minReturnedTokensstring
required
uint256 as a lossless decimal string
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

FieldTypeDetails
statusstring
required

Values: ["reviewable-not-activated"]

policyobject
required
Fields
FieldTypeDetails
schemaVersioninteger
required

Values: [1]

ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
bindingIdstring
required
chainIdinteger
required
walletstring
required
grantIdstring (uuid)
required
sessionKeystring
required
generationvalue
required
Positive uint256 as an exact decimal string.
noncevalue
required
validAfterinteger
required
Unix timestamp in seconds.
validUntilinteger
required
Unix timestamp in seconds.
maximumCallsvalue
required
saltstring
required
restrictToActionsboolean
required

Values: [true]

signingobject
required
Fields
FieldTypeDetails
modestring
required

Values: ["disabled"]

crossChainPermitsboolean
required

Values: [false]

claimPoliciesboolean
required

Values: [false]

wildcardFallbackboolean
required

Values: [false]

gasBudgetobject
optional
Fields
FieldTypeDetails
paymasterstring
required
maxGasPerOperationvalue
required
maxFeePerGasvalue
required
maxPriorityFeePerGasstring
required
uint128 as a lossless decimal string
totalGasLimitvalue
required
totalSponsoredCostLimitvalue
required
Positive uint256 as an exact decimal string.
maxPaymasterDataLengthinteger
required

Values: [130]

paymasterCodeHashstring
required
paymasterReviewIdstring
required
allocationsarray
required
Fields
FieldTypeDetails
idstring
required
assetIdentitystring
required
decimalsinteger
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
actionsarray
required
Fields

See schema

policyHashstring
required
walletStateHashstring
required
manifestRevisionstring
required
evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

ownerApprovalobject
required
Fields
FieldTypeDetails
requiredboolean
required

Values: [true]

signerRolestring
required

Values: ["smart-account-owner-threshold"]

actionstring
required

Values: ["install-or-enable-exact-session-policy"]

noPermanentBotProjectPermissionboolean
required

Values: [true]

activationRequirementsarray
required
warningsarray
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
manifestIdstring
required
ownersarray
required
Fields

string

thresholdinteger
required
saltNoncestring
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

FieldTypeDetails
creationobject
required
Fields
FieldTypeDetails
chainIdinteger
required
manifestIdstring
required
manifestRevisionstring
required
addressstring
required
ownersarray
required
Fields

string

thresholdinteger
required
saltNoncestring
required
uint256 as a lossless decimal string
initializerstring
required
initializerHashstring
required
transactionobject
required
Fields
FieldTypeDetails
tostring
required
valuestring
required

Values: ["0"]

datastring
required
initialAuthorityobject
required
Fields
FieldTypeDetails
validatorstring
required
enabledSessionsinteger
required

Values: [0]

executorsarray
required
hooksarray
required
fallbacksarray
required
registryEnforcedboolean
required

Values: [false]

evidenceobject
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

deploymentConfirmedboolean
required

Values: [false]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

Request body

Option 1
FieldTypeDetails
operationstring
required

Values: ["contract_calls"]

inputobject
required
Fields
FieldTypeDetails
accountstring
required
callsarray
required
labelstring
optional
Option 2
FieldTypeDetails
operationstring
required

Values: ["prepare_pay"]

inputobject
required
Fields
FieldTypeDetails
memostring
optional
projectobject
required
accountstring
required
tokenstring
required
amountstring
required
Input asset amount in its smallest units, as an exact integer string.
beneficiarystring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

metadatastring
optional
Option 3
FieldTypeDetails
operationstring
required

Values: ["prepare_cash_out"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
holderstring
required
cashOutCountstring
required
Project token count in 18-decimal base units.
tokenToReclaimstring
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
optional
Option 4
FieldTypeDetails
operationstring
required

Values: ["prepare_payout"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
tokenstring
required
amountstring
required
Payout amount in accounting token decimals, denominated in currency.
currencyinteger
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

terminalstring
optional
Option 5
FieldTypeDetails
operationstring
required

Values: ["prepare_ruleset_change"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
rulesetConfigurationsarray
required
memostring
optional
Option 6
FieldTypeDetails
operationstring
required

Values: ["prepare_launch"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
compositionstring
required
Explicit standard core launch. This does not deploy a 721 hook, revnet, or omnichain identity.

Values: ["core"]

projectUristring
required
Metadata URI; content is not fetched or treated as instructions.
rulesetConfigurationsarray
required
terminalConfigurationsarray
required
memostring
optional
Option 7
FieldTypeDetails
operationstring
required

Values: ["prepare_borrow"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
holderstring
required
tokenstring
required
collateralCountstring
required
prepaidFeePercentinteger
required
beneficiarystring
required
accountstring
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

Option 8
FieldTypeDetails
operationstring
required

Values: ["prepare_repay"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
loanIdstring
required
accountstring
required
maxRepayBorrowAmountstring
required
collateralCountToReturnstring
required
beneficiarystring
required
Option 9
FieldTypeDetails
operationstring
required

Values: ["prepare_bridge_claim"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
suckerstring
required
claimobject
required
Option 10
FieldTypeDetails
operationstring
required

Values: ["prepare_accounting_sync"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
suckerstring
required
maxTransportValuestring
required
Maximum native wei attached to the accounting message; gas is additional.
Option 11
FieldTypeDetails
operationstring
required

Values: ["prepare_buyback_pool"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
terminalTokenstring
required
feeinteger
required
Static Uniswap V4 pool fee in hundredths of a basis point; 3000 = 0.3%.
tickSpacinginteger
required
twapWindowSecondsinteger
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 12
FieldTypeDetails
operationstring
required

Values: ["prepare_buyback_twap"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
terminalTokenstring
required
twapWindowSecondsinteger
required
Option 13
FieldTypeDetails
operationstring
required

Values: ["prepare_buyback_hook"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
hookstring
required
Option 14
FieldTypeDetails
operationstring
required

Values: ["prepare_router_terminal"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
terminalstring
required
Option 15
FieldTypeDetails
operationstring
required

Values: ["prepare_721_pay"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
tokenstring
required
amountstring
required
beneficiarystring
required
tierIdsarray
required
slippageBpsinteger
optional
Slippage in basis points, 0–1000. Default 100 (1%).

Default: 100

allowOverspendingboolean
optional

Default: false

Option 16
FieldTypeDetails
operationstring
required

Values: ["prepare_adjust_tiers"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
tiersToAddarray
required
tierIdsToRemovearray
required
Option 17
FieldTypeDetails
operationstring
required

Values: ["prepare_721_launch"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
accountstring
required
ownerstring
required
deployTiersHookConfigobject
required
projectUristring
required
rulesetConfigurationsarray
required
terminalConfigurationsarray
required
memostring
optional

Default: ""

saltstring
required
Option 18
FieldTypeDetails
operationstring
required

Values: ["prepare_revnet_deploy"]

inputobject
required
Fields
FieldTypeDetails
chainIdone of
required
accountstring
required
configobject
required
accountingContextsarray
required
suckerConfigobject
required
tiered721Configobject
optional
allowedPostsarray
optional
Option 19
FieldTypeDetails
operationstring
required

Values: ["prepare_auto_issue"]

inputobject
required
Fields
FieldTypeDetails
projectobject
required
accountstring
required
stageIdstring
required
beneficiarystring
required
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

FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

projectIdstring
required
uint256 as a lossless decimal string
versioninteger
optional

Values: [6]

callsarray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

tostring
required
datastring
required
valuestring
required
uint256 as a lossless decimal string
labelstring
required
dependsOnarray
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
evidencearray
required
Fields
FieldTypeDetails
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

blockNumberstring
required
uint256 as a lossless decimal string
blockHashstring
required
timestampstring
required
uint256 as a lossless decimal string
sourcestring
required

Values: ["onchain"]

summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
Fields
FieldTypeDetails
hashstring
required
senderstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

noncestring
required
uint256 as a lossless decimal string
typestring
required

Values: ["legacy","eip2930","eip1559"]

gasstring
required
uint256 as a lossless decimal string
maximumFeePerGasstring
required
uint256 as a lossless decimal string
maximumCoststring
required
uint256 as a lossless decimal string
costScopestring
required
Maximum cost covers native value and gas limit times fee cap. Additional chain-specific data or operator fees are excluded.
dispatchCountinteger
required
reservedAtinteger
required
Unix timestamp in milliseconds.
broadcastAtinteger
optional
Unix timestamp in milliseconds.
lastErrorobject
optional
executionobject
optional
Fields
FieldTypeDetails
transportstring
required

Values: ["relayr-prepaid-erc2771","eip4337-user-operation"]

bindingIdstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

hashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
blockedByarray
required
confirmationScopestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
idstring (uuid)
required
actorobject
required
Fields
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
compiledobject
required
Fields
FieldTypeDetails
schemaVersioninteger
required

Values: [1]

stackstring
required

Values: ["legacy-f24dddf-safe7579-f22a194"]

ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
bindingIdstring
required
grantIdstring (uuid)
required
sessionKeystring
required
chainIdinteger
required
walletstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
noncestring
required
validAfterinteger
required
Unix timestamp in seconds.
validUntilinteger
required
Unix timestamp in seconds.
saltstring
required
policyHashstring
required
compiledHashstring
required
permissionIdstring
required
manifestRevisionstring
required
activationEnableNoncestring
required
uint256 as a lossless decimal string
reviewedPolicyvalue
required
smartSessionsobject
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
sourceobject
required
sessionValidatorobject
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
sourceobject
required
sessionobject
required
Fields
FieldTypeDetails
sessionValidatorstring
required
sessionValidatorInitDatastring
required
saltstring
required
userOpPoliciesarray
required
erc7739Policiesobject
required
actionsarray
required
permitERC4337Paymasterboolean
required

Values: [true]

configurationsarray
required
Fields
FieldTypeDetails
kindstring
required

Values: ["time-frame","universal-action","value-limit","usage-limit","gas-budget"]

policyobject
required
configIdstring
required
scopestring
required

Values: ["user-operation","action"]

actionIdstring
optional
initDatastring
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
preparedAdministrationobject
required
Fields
FieldTypeDetails
epochstring
required
uint256 as a lossless decimal string
hashstring
required
allocationGroupsarray
required
Fields
FieldTypeDetails
idstring
required
assetIdentitystring
required
decimalsinteger
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
Fields
FieldTypeDetails
idstring
required
chainIdinteger
required
assetstring
required
limitvalue
required
Positive uint256 as an exact decimal string.
assetReviewIdstring
required
allocationManifestHashstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
updatedAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","installing","active","revoking","revoked","expired","stale"]

activationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revocationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
observationobject
optional
Fields
FieldTypeDetails
installedobject
required
Enabled observations include complete canonical administration history. Admission requires exactly one initialization after the immutable preparation baseline, containing only this permission; changed administration invalidates the generation.
Fields
FieldTypeDetails
permissionIdstring
required
compiledHashstring
required
accountstring
required
chainIdinteger
required
enabledboolean
required
enableNoncestring
required
uint256 as a lossless decimal string
configurationHashstring
required
evidenceobject
required
countersarray
required
administrationobject
optional
observedAtinteger
required
Unix timestamp in milliseconds.
finalizedboolean
required
proofHashstring
required
invalidationobject
optional
Fields
FieldTypeDetails
reasonstring
required

Values: ["reorg","configuration-changed","counter-reset","grant-inactive","binding-unlinked","verification-unavailable"]

priorProofHashone of
required
observedAtinteger
required
Unix timestamp in milliseconds.
reservationsReleasedboolean
required
supersededApprovalsarray
optional
Fields
FieldTypeDetails
approvalobject
required
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
supersededAtinteger
required
Unix timestamp in milliseconds.
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
limitquery / optionalinteger
cursorquery / optionalstring

Response 200

FieldTypeDetails
itemsarray
required
Fields
FieldTypeDetails
idstring (uuid)
required
actorobject
required
Fields
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
compiledobject
required
Fields
FieldTypeDetails
schemaVersioninteger
required

Values: [1]

stackstring
required

Values: ["legacy-f24dddf-safe7579-f22a194"]

ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
bindingIdstring
required
grantIdstring (uuid)
required
sessionKeystring
required
chainIdinteger
required
walletstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
noncestring
required
validAfterinteger
required
Unix timestamp in seconds.
validUntilinteger
required
Unix timestamp in seconds.
saltstring
required
policyHashstring
required
compiledHashstring
required
permissionIdstring
required
manifestRevisionstring
required
activationEnableNoncestring
required
uint256 as a lossless decimal string
reviewedPolicyvalue
required
smartSessionsobject
required
sessionValidatorobject
required
sessionobject
required
configurationsarray
required
preparedAdministrationobject
required
Fields
FieldTypeDetails
epochstring
required
uint256 as a lossless decimal string
hashstring
required
allocationGroupsarray
required
Fields
FieldTypeDetails
idstring
required
assetIdentitystring
required
decimalsinteger
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
allocationManifestHashstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
updatedAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","installing","active","revoking","revoked","expired","stale"]

activationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revocationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
observationobject
optional
Fields
FieldTypeDetails
installedobject
required
Enabled observations include complete canonical administration history. Admission requires exactly one initialization after the immutable preparation baseline, containing only this permission; changed administration invalidates the generation.
observedAtinteger
required
Unix timestamp in milliseconds.
finalizedboolean
required
proofHashstring
required
invalidationobject
optional
Fields
FieldTypeDetails
reasonstring
required

Values: ["reorg","configuration-changed","counter-reset","grant-inactive","binding-unlinked","verification-unavailable"]

priorProofHashone of
required
observedAtinteger
required
Unix timestamp in milliseconds.
reservationsReleasedboolean
required
supersededApprovalsarray
optional
Fields
FieldTypeDetails
approvalobject
required
Stored server-verified consent for the owner's exact lifecycle-plan request. It is not an HTTP proof submission or an onchain Safe signature.
supersededAtinteger
required
Unix timestamp in milliseconds.
nextCursorstring (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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring
refreshquery / optionalboolean

Response 200

FieldTypeDetails
idstring (uuid)
required
actorobject
required
Fields
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
compiledobject
required
Fields
FieldTypeDetails
schemaVersioninteger
required

Values: [1]

stackstring
required

Values: ["legacy-f24dddf-safe7579-f22a194"]

ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
bindingIdstring
required
grantIdstring (uuid)
required
sessionKeystring
required
chainIdinteger
required
walletstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
noncestring
required
validAfterinteger
required
Unix timestamp in seconds.
validUntilinteger
required
Unix timestamp in seconds.
saltstring
required
policyHashstring
required
compiledHashstring
required
permissionIdstring
required
manifestRevisionstring
required
activationEnableNoncestring
required
uint256 as a lossless decimal string
reviewedPolicyvalue
required
smartSessionsobject
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
sourceobject
required
sessionValidatorobject
required
Fields
FieldTypeDetails
addressstring
required
runtimeCodeHashstring
required
sourceobject
required
sessionobject
required
Fields
FieldTypeDetails
sessionValidatorstring
required
sessionValidatorInitDatastring
required
saltstring
required
userOpPoliciesarray
required
erc7739Policiesobject
required
actionsarray
required
permitERC4337Paymasterboolean
required

Values: [true]

configurationsarray
required
Fields
FieldTypeDetails
kindstring
required

Values: ["time-frame","universal-action","value-limit","usage-limit","gas-budget"]

policyobject
required
configIdstring
required
scopestring
required

Values: ["user-operation","action"]

actionIdstring
optional
initDatastring
required
decodedvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
preparedAdministrationobject
required
Fields
FieldTypeDetails
epochstring
required
uint256 as a lossless decimal string
hashstring
required
allocationGroupsarray
required
Fields
FieldTypeDetails
idstring
required
assetIdentitystring
required
decimalsinteger
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
Fields
FieldTypeDetails
idstring
required
chainIdinteger
required
assetstring
required
limitvalue
required
Positive uint256 as an exact decimal string.
assetReviewIdstring
required
allocationManifestHashstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
updatedAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","installing","active","revoking","revoked","expired","stale"]

activationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revocationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
observationobject
optional
Fields
FieldTypeDetails
installedobject
required
Enabled observations include complete canonical administration history. Admission requires exactly one initialization after the immutable preparation baseline, containing only this permission; changed administration invalidates the generation.
Fields
FieldTypeDetails
permissionIdstring
required
compiledHashstring
required
accountstring
required
chainIdinteger
required
enabledboolean
required
enableNoncestring
required
uint256 as a lossless decimal string
configurationHashstring
required
evidenceobject
required
countersarray
required
administrationobject
optional
observedAtinteger
required
Unix timestamp in milliseconds.
finalizedboolean
required
proofHashstring
required
invalidationobject
optional
Fields
FieldTypeDetails
reasonstring
required

Values: ["reorg","configuration-changed","counter-reset","grant-inactive","binding-unlinked","verification-unavailable"]

priorProofHashone of
required
observedAtinteger
required
Unix timestamp in milliseconds.
reservationsReleasedboolean
required
supersededApprovalsarray
optional
Fields
FieldTypeDetails
approvalobject
required
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
supersededAtinteger
required
Unix timestamp in milliseconds.
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring

Response 200

FieldTypeDetails
sessionIdstring (uuid)
required
statestring
required

Values: ["prepared","installing","active","revoking","revoked","expired","stale"]

allocationManifestHashstring
required
approvedGroupsarray
required
Fields
FieldTypeDetails
idstring
required
assetIdentitystring
required
decimalsinteger
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
Fields
FieldTypeDetails
idstring
required
chainIdinteger
required
assetstring
required
limitvalue
required
Positive uint256 as an exact decimal string.
assetReviewIdstring
required
localAllocationsarray
required
Fields
FieldTypeDetails
idstring
required
chainIdinteger
required
assetstring
required
limitvalue
required
Positive uint256 as an exact decimal string.
assetReviewIdstring
required
countersone of
required
observationone of
required
reservationsReleasedboolean
required
executionAuthorityboolean
required

Values: [false]

balanceSourcestring
required

Values: ["onchain-only"]

atomicAcrossChainsboolean
required

Values: [false]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

Request body

FieldTypeDetails
compiledHashstring
required
JSON schema
{
  "type": "object",
  "properties": {
    "compiledHash": {
      "$ref": "#/components/schemas/Hash"
    }
  },
  "required": [
    "compiledHash"
  ],
  "additionalProperties": false
}

Response 201

FieldTypeDetails
sessionobject
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
FieldTypeDetails
idstring (uuid)
required
actorobject
required
Fields
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
compiledobject
required
Fields
FieldTypeDetails
schemaVersioninteger
required

Values: [1]

stackstring
required

Values: ["legacy-f24dddf-safe7579-f22a194"]

ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
bindingIdstring
required
grantIdstring (uuid)
required
sessionKeystring
required
chainIdinteger
required
walletstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
noncestring
required
validAfterinteger
required
Unix timestamp in seconds.
validUntilinteger
required
Unix timestamp in seconds.
saltstring
required
policyHashstring
required
compiledHashstring
required
permissionIdstring
required
manifestRevisionstring
required
activationEnableNoncestring
required
uint256 as a lossless decimal string
reviewedPolicyvalue
required
smartSessionsobject
required
sessionValidatorobject
required
sessionobject
required
configurationsarray
required
preparedAdministrationobject
required
Fields
FieldTypeDetails
epochstring
required
uint256 as a lossless decimal string
hashstring
required
allocationGroupsarray
required
Fields
FieldTypeDetails
idstring
required
assetIdentitystring
required
decimalsinteger
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
allocationManifestHashstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
updatedAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","installing","active","revoking","revoked","expired","stale"]

activationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revocationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
observationobject
optional
Fields
FieldTypeDetails
installedobject
required
Enabled observations include complete canonical administration history. Admission requires exactly one initialization after the immutable preparation baseline, containing only this permission; changed administration invalidates the generation.
observedAtinteger
required
Unix timestamp in milliseconds.
finalizedboolean
required
proofHashstring
required
invalidationobject
optional
Fields
FieldTypeDetails
reasonstring
required

Values: ["reorg","configuration-changed","counter-reset","grant-inactive","binding-unlinked","verification-unavailable"]

priorProofHashone of
required
observedAtinteger
required
Unix timestamp in milliseconds.
reservationsReleasedboolean
required
supersededApprovalsarray
optional
Fields
FieldTypeDetails
approvalobject
required
Stored server-verified consent for the owner's exact lifecycle-plan request. It is not an HTTP proof submission or an onchain Safe signature.
supersededAtinteger
required
Unix timestamp in milliseconds.
planobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
callsarray
required
evidencearray
required
summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
executionobject
optional
receiptobject
optional
semanticobject
optional
blockedByarray
required
confirmationScopestring
required
installationConfirmedboolean
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

Request body

FieldTypeDetails
compiledHashstring
required
JSON schema
{
  "type": "object",
  "properties": {
    "compiledHash": {
      "$ref": "#/components/schemas/Hash"
    }
  },
  "required": [
    "compiledHash"
  ],
  "additionalProperties": false
}

Response 201

FieldTypeDetails
sessionobject
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
FieldTypeDetails
idstring (uuid)
required
actorobject
required
Fields
FieldTypeDetails
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
principalIdstring
required
Exact plan-creating principal. Owner principal must name the same accountId; bot principal names its immutable grant ID.
compiledobject
required
Fields
FieldTypeDetails
schemaVersioninteger
required

Values: [1]

stackstring
required

Values: ["legacy-f24dddf-safe7579-f22a194"]

ownerAccountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
bindingIdstring
required
grantIdstring (uuid)
required
sessionKeystring
required
chainIdinteger
required
walletstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
noncestring
required
validAfterinteger
required
Unix timestamp in seconds.
validUntilinteger
required
Unix timestamp in seconds.
saltstring
required
policyHashstring
required
compiledHashstring
required
permissionIdstring
required
manifestRevisionstring
required
activationEnableNoncestring
required
uint256 as a lossless decimal string
reviewedPolicyvalue
required
smartSessionsobject
required
sessionValidatorobject
required
sessionobject
required
configurationsarray
required
preparedAdministrationobject
required
Fields
FieldTypeDetails
epochstring
required
uint256 as a lossless decimal string
hashstring
required
allocationGroupsarray
required
Fields
FieldTypeDetails
idstring
required
assetIdentitystring
required
decimalsinteger
required
totalvalue
required
Positive uint256 as an exact decimal string.
allocationsarray
required
allocationManifestHashstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
updatedAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","installing","active","revoking","revoked","expired","stale"]

activationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
revocationobject
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
FieldTypeDetails
kindstring
required

Values: ["activation","revocation"]

accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
sessionIdstring (uuid)
required
policyHashstring
required
compiledHashstring
required
planIdstring (uuid)
required
planCommitmentstring
required
digeststring
required
issuedAtinteger
required
Unix timestamp in seconds.
expiresAtinteger
required
Unix timestamp in seconds.
observationobject
optional
Fields
FieldTypeDetails
installedobject
required
Enabled observations include complete canonical administration history. Admission requires exactly one initialization after the immutable preparation baseline, containing only this permission; changed administration invalidates the generation.
observedAtinteger
required
Unix timestamp in milliseconds.
finalizedboolean
required
proofHashstring
required
invalidationobject
optional
Fields
FieldTypeDetails
reasonstring
required

Values: ["reorg","configuration-changed","counter-reset","grant-inactive","binding-unlinked","verification-unavailable"]

priorProofHashone of
required
observedAtinteger
required
Unix timestamp in milliseconds.
reservationsReleasedboolean
required
supersededApprovalsarray
optional
Fields
FieldTypeDetails
approvalobject
required
Stored server-verified consent for the owner's exact lifecycle-plan request. It is not an HTTP proof submission or an onchain Safe signature.
supersededAtinteger
required
Unix timestamp in milliseconds.
planobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
Fields
FieldTypeDetails
operationstring
required
accountstring
required
projectobject
optional
callsarray
required
evidencearray
required
summaryvalue
required
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
warningsarray
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
Fields
FieldTypeDetails
bindingIdstring
required
stateHashstring
required
chainIdinteger
required

Values: [1,10,8453,42161,84532,421614,11155111,11155420]

addressstring
required
manifestRevisionstring
required
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
Fields
FieldTypeDetails
indexinteger
required
statestring
required

Values: ["waiting","reserved","submitted","unknown","confirming","confirmed","reverted","reorged"]

transactionobject
optional
executionobject
optional
receiptobject
optional
semanticobject
optional
blockedByarray
required
confirmationScopestring
required
installationConfirmedboolean
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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
FieldTypeDetails
planIdstring (uuid)
required
stepIndexesarray
required
sessionIdstring (uuid)
optional
sponsorAuthorizationstring
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
FieldTypeDetails
planobject
required
A smart-account plan created here, idempotent on its own key, exactly as POST /smart-accounts/bindings/{id}/plans would.
Fields
FieldTypeDetails
bindingIdstring
required
operationstring
required
inputvalue
required
idempotencyKeystring
required
sponsorAuthorizationstring
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
FieldTypeDetails
idstring (uuid)
required
planIdstring (uuid)
required
planCommitmentstring
required
stepIndexesarray
required
chainIdinteger
required
entryPointstring
required
operationobject
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
FieldTypeDetails
senderstring
required
noncestring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
factorystring
optional
factoryDatastring
optional
callDatastring
required
callGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
verificationGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
preVerificationGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxPriorityFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterstring
optional
paymasterVerificationGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterPostOpGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterDatastring
optional
signaturestring
required
Public preparations and reads always omit submitted account signature bytes.

Values: ["0x"]

operationHashstring
required
commitmentstring
required
accountBindingIdstring
required
accountStateHashstring
required
sessionobject
optional
Fields
FieldTypeDetails
idstring (uuid)
required
policyHashstring
required
compiledHashstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
grantIdstring (uuid)
required
permissionIdstring
required
sessionKeystring
required
observationHashstring
required
gasPolicyIdstring
required
providerIdstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","submitting","submission_unknown","pending","unknown","confirming","confirmed","reverted","expired"]

signingone of
required
submissionobject
optional
Fields
FieldTypeDetails
commitmentstring
required
startedAtinteger
required
Unix timestamp in milliseconds.
observationobject
optional
Fields
FieldTypeDetails
statestring
required

Values: ["pending","unknown","confirming","confirmed","reverted","expired"]

operationHashstring
required
transactionHashstring
optional
receiptobject
optional
scopedLogsarray
optional
semanticobject
optional
reasonstring
optional
Option 2
FieldTypeDetails
planobject
required
Fields
FieldTypeDetails
idstring (uuid)
required
accountstring
required
operationstring
required
draftobject
required
commitmentstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
smartAccountobject
optional
statusstring
required

Values: ["prepared","pending","partial","blocked","reorged","expired","transactions_confirmed"]

stepsarray
required
confirmationScopestring
required
operationobject
optional
Fields
FieldTypeDetails
idstring (uuid)
required
planIdstring (uuid)
required
planCommitmentstring
required
stepIndexesarray
required
chainIdinteger
required
entryPointstring
required
operationobject
required
Unpacked EntryPoint v0.7 operation. RPC integers are hexadecimal quantities; reviewed policy amounts use decimal strings. No v0.8 or EIP-7702 extensions.
operationHashstring
required
commitmentstring
required
accountBindingIdstring
required
accountStateHashstring
required
sessionobject
optional
gasPolicyIdstring
required
providerIdstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","submitting","submission_unknown","pending","unknown","confirming","confirmed","reverted","expired"]

signingone of
required
submissionobject
optional
observationobject
optional
sponsorshipstring
required

Values: ["accepted","refused"]

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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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.
idpath / requiredstring

Request body

FieldTypeDetails
signaturestring
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

FieldTypeDetails
idstring (uuid)
required
planIdstring (uuid)
required
planCommitmentstring
required
stepIndexesarray
required
chainIdinteger
required
entryPointstring
required
operationobject
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
FieldTypeDetails
senderstring
required
noncestring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
factorystring
optional
factoryDatastring
optional
callDatastring
required
callGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
verificationGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
preVerificationGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxPriorityFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterstring
optional
paymasterVerificationGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterPostOpGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterDatastring
optional
signaturestring
required
Public preparations and reads always omit submitted account signature bytes.

Values: ["0x"]

operationHashstring
required
commitmentstring
required
accountBindingIdstring
required
accountStateHashstring
required
sessionobject
optional
Fields
FieldTypeDetails
idstring (uuid)
required
policyHashstring
required
compiledHashstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
grantIdstring (uuid)
required
permissionIdstring
required
sessionKeystring
required
observationHashstring
required
gasPolicyIdstring
required
providerIdstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","submitting","submission_unknown","pending","unknown","confirming","confirmed","reverted","expired"]

signingone of
required
submissionobject
optional
Fields
FieldTypeDetails
commitmentstring
required
startedAtinteger
required
Unix timestamp in milliseconds.
observationobject
optional
Fields
FieldTypeDetails
statestring
required

Values: ["pending","unknown","confirming","confirmed","reverted","expired"]

operationHashstring
required
transactionHashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
scopedLogsarray
optional
Fields

See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.

semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
reasonstring
optional
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring

Response 200

FieldTypeDetails
idstring (uuid)
required
planIdstring (uuid)
required
planCommitmentstring
required
stepIndexesarray
required
chainIdinteger
required
entryPointstring
required
operationobject
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
FieldTypeDetails
senderstring
required
noncestring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
factorystring
optional
factoryDatastring
optional
callDatastring
required
callGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
verificationGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
preVerificationGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxPriorityFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterstring
optional
paymasterVerificationGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterPostOpGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterDatastring
optional
signaturestring
required
Public preparations and reads always omit submitted account signature bytes.

Values: ["0x"]

operationHashstring
required
commitmentstring
required
accountBindingIdstring
required
accountStateHashstring
required
sessionobject
optional
Fields
FieldTypeDetails
idstring (uuid)
required
policyHashstring
required
compiledHashstring
required
generationvalue
required
Positive uint256 as an exact decimal string.
grantIdstring (uuid)
required
permissionIdstring
required
sessionKeystring
required
observationHashstring
required
gasPolicyIdstring
required
providerIdstring
required
createdAtinteger
required
Unix timestamp in milliseconds.
expiresAtinteger
required
Unix timestamp in milliseconds.
revisioninteger
required
statestring
required

Values: ["prepared","submitting","submission_unknown","pending","unknown","confirming","confirmed","reverted","expired"]

signingone of
required
submissionobject
optional
Fields
FieldTypeDetails
commitmentstring
required
startedAtinteger
required
Unix timestamp in milliseconds.
observationobject
optional
Fields
FieldTypeDetails
statestring
required

Values: ["pending","unknown","confirming","confirmed","reverted","expired"]

operationHashstring
required
transactionHashstring
optional
receiptobject
optional
Fields
FieldTypeDetails
transactionHashstring
required
blockHashstring
required
blockNumberstring
required
uint256 as a lossless decimal string
statusstring
required

Values: ["success","reverted"]

confirmationsinteger
required
canonicalboolean
required
observedAtinteger
required
Unix timestamp in milliseconds.
logsarray
required
logCountinteger
optional
logsHashstring
optional
logsStoredboolean
optional
scopedLogsarray
optional
Fields

See schema: Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.

semanticobject
optional
Fields
FieldTypeDetails
statusstring
required

Values: ["verified","failed","unknown","unmodeled"]

detailsvalue
optional
Bounded JSON. Large integers and amounts use exact decimal strings. Returned metadata and descriptions are untrusted content.
reasonstring
optional
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / requiredSigned 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

FieldTypeDetails
operationIdstring (uuid)
required
statestring
required
Canonical base64url encoding of 32 random bytes retained by the initiating app.
idstring (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

FieldTypeDetails
versionstring
required

Values: ["center-wallet-payment-review-v1"]

idstring (uuid)
required
statestring
required
Canonical base64url encoding of 32 random bytes retained by the initiating app.
issuerstring (uri)
required
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
appobject
required
Fields
FieldTypeDetails
originstring (uri)
required
callbackUristring (uri)
required
grantIdstring (uuid)
required
grantIncarnationvalue
required
Positive uint256 as an exact decimal string.
planIdstring (uuid)
required
planCommitmentstring
required
operationIdstring (uuid)
required
operationCommitmentstring
required
operationHashstring
required
stepIndexesarray
required
operationobject
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
FieldTypeDetails
senderstring
required
noncestring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
factorystring
optional
factoryDatastring
optional
callDatastring
required
callGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
verificationGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
preVerificationGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxPriorityFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterstring
optional
paymasterVerificationGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterPostOpGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterDatastring
optional
signaturestring
required
Public preparations and reads always omit submitted account signature bytes.

Values: ["0x"]

chainIdinteger
required

Values: [8453]

entryPointstring
required
safe7579string
required
paymentobject
required
Fields
FieldTypeDetails
kindstring
required

Values: ["v6-usdc-pay"]

chainIdinteger
required

Values: [8453]

accountstring
required
tokenstring
required
terminalstring
required
projectIdstring
required
uint256 as a lossless decimal string
amountvalue
required
Positive uint256 as an exact decimal string.
beneficiarystring
required
minimumReturnedTokensstring
required
uint256 as a lossless decimal string
memostring
required
metadatastring
required
stepIndexesarray
required
approvalStepIndexesarray
required
paymentStepIndexinteger
required
resetAllowanceboolean
required
signingobject
required
Fields
FieldTypeDetails
digeststring
required
signedDatastring
required
validAfterstring
required
uint256 as a lossless decimal string
validUntilstring
required
uint256 as a lossless decimal string
createdAtMsinteger
required
expiresAtMsinteger
required
statusstring
required

Values: ["pending","approved","cancelled"]

approvedAtMsone of
required
cancelledAtMsone of
required
operationStatestring
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

NameLocationDetails
X-Juicebox-Accountheader / requiredEnrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists.
X-Juicebox-Signerheader / requiredOwner wallet or authorized bot address that signed this request.
X-Juicebox-Issued-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time.
X-Juicebox-Expires-Atheader / requiredUnix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt.
X-Juicebox-Nonceheader / requiredFresh random 32-byte lowercase nonce. A consumed nonce cannot be retried.
X-Juicebox-Signatureheader / requiredEIP-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-Grantheader / optionalAuthorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string.
Idempotency-Keyheader / optionalSigned 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.
idpath / requiredstring

Response 200

FieldTypeDetails
versionstring
required

Values: ["center-wallet-payment-review-v1"]

idstring (uuid)
required
statestring
required
Canonical base64url encoding of 32 random bytes retained by the initiating app.
issuerstring (uri)
required
accountIdstring
required
Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain.
appobject
required
Fields
FieldTypeDetails
originstring (uri)
required
callbackUristring (uri)
required
grantIdstring (uuid)
required
grantIncarnationvalue
required
Positive uint256 as an exact decimal string.
planIdstring (uuid)
required
planCommitmentstring
required
operationIdstring (uuid)
required
operationCommitmentstring
required
operationHashstring
required
stepIndexesarray
required
operationobject
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
FieldTypeDetails
senderstring
required
noncestring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
factorystring
optional
factoryDatastring
optional
callDatastring
required
callGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
verificationGasLimitstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
preVerificationGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
maxPriorityFeePerGasstring
required
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterstring
optional
paymasterVerificationGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterPostOpGasLimitstring
optional
Canonical lowercase hexadecimal RPC quantity, with no leading zeros.
paymasterDatastring
optional
signaturestring
required
Public preparations and reads always omit submitted account signature bytes.

Values: ["0x"]

chainIdinteger
required

Values: [8453]

entryPointstring
required
safe7579string
required
paymentobject
required
Fields
FieldTypeDetails
kindstring
required

Values: ["v6-usdc-pay"]

chainIdinteger
required

Values: [8453]

accountstring
required
tokenstring
required
terminalstring
required
projectIdstring
required
uint256 as a lossless decimal string
amountvalue
required
Positive uint256 as an exact decimal string.
beneficiarystring
required
minimumReturnedTokensstring
required
uint256 as a lossless decimal string
memostring
required
metadatastring
required
stepIndexesarray
required
approvalStepIndexesarray
required
paymentStepIndexinteger
required
resetAllowanceboolean
required
signingobject
required
Fields
FieldTypeDetails
digeststring
required
signedDatastring
required
validAfterstring
required
uint256 as a lossless decimal string
validUntilstring
required
uint256 as a lossless decimal string
createdAtMsinteger
required
expiresAtMsinteger
required
statusstring
required

Values: ["pending","approved","cancelled"]

approvedAtMsone of
required
cancelledAtMsone of
required
operationStatestring
required
approvalone 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.
Authority chain / principal
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.