POST /api/v1/plans
Parameters
| Name | Location | Details |
|---|---|---|
X-Juicebox-Account | header / required | Enrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists. |
X-Juicebox-Signer | header / required | Owner wallet or authorized bot address that signed this request. |
X-Juicebox-Issued-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time. |
X-Juicebox-Expires-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt. |
X-Juicebox-Nonce | header / required | Fresh random 32-byte lowercase nonce. A consumed nonce cannot be retried. |
X-Juicebox-Signature | header / required | EIP-712 CenterRequest signature over every signed field. Contract-owner signatures may vary in length. This is a computed request proof, not a reusable API key. |
X-Juicebox-Grant | header / optional | Authorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string. |
Idempotency-Key | header / required | Signed retry identity. Required on plan creation and transaction submission. Preserve exact method, target, Content-Type, and body bytes; use a fresh request nonce and signature. |
Request body
Option 1
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 2
| Field | Type | Details | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||||||||
input | object required | Fields
|
Option 3
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 4
| Field | Type | Details | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||
input | object required | Fields
|
Option 5
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 6
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 7
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||||||||||||||
input | object required | Fields
|
Option 8
| Field | Type | Details | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||
input | object required | Fields
|
Option 9
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 10
| Field | Type | Details | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||
input | object required | Fields
|
Option 11
| Field | Type | Details | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||
input | object required | Fields
|
Option 12
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 13
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 14
| Field | Type | Details | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||
input | object required | Fields
|
Option 15
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 16
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 17
| Field | Type | Details | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||
input | object required | Fields
|
Option 18
| Field | Type | Details | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||||||||||||||||||||
input | object required | Fields
|
Option 19
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
Option 20
| Field | Type | Details | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||||||||
input | object required | Fields
|
Option 21
| Field | Type | Details | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | ||||||||||||||||||||||||||||||
input | object required | Fields
|
Option 22
| Field | Type | Details | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operation | string required | Values: | |||||||||||||||
input | object required | Fields
|
JSON schema
{
"oneOf": [
{
"type": "object",
"properties": {
"operation": {
"const": "contract_calls",
"type": "string"
},
"input": {
"$ref": "#/components/schemas/PrepareContractCalls"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_pay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_pay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_cash_out"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_cash_out"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_payout"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_payout"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_ruleset_change"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_ruleset_change"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_launch"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_launch"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_omnichain_launch"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_omnichain_launch"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_deploy_erc20"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_deploy_erc20"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_set_project_uri"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_set_project_uri"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_borrow"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_borrow"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_repay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_repay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_bridge_claim"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_bridge_claim"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_accounting_sync"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_accounting_sync"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_pool"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_pool"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_twap"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_twap"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_buyback_hook"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_buyback_hook"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_router_terminal"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_router_terminal"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_721_pay"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_721_pay"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_adjust_tiers"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_adjust_tiers"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_721_launch"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_721_launch"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_revnet_deploy"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_revnet_deploy"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "prepare_auto_issue"
},
"input": {
"$ref": "#/components/schemas/OperationInput_prepare_auto_issue"
}
},
"required": [
"operation",
"input"
],
"additionalProperties": false
}
],
"description": "contract_calls uses the full pinned ABI surface; named preparations use semantic schemas. Every result is a durable unsigned plan."
}Response 201
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operation | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draft | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | integer required | Unix timestamp in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
revision | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartAccount | object optional | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps | array required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
confirmationScope | string required |
JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"operation": {
"type": "string"
},
"draft": {
"$ref": "#/components/schemas/PlanDraft"
},
"commitment": {
"$ref": "#/components/schemas/Hash"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"expiresAt": {
"$ref": "#/components/schemas/UnixMilliseconds"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"smartAccount": {
"type": "object",
"properties": {
"bindingId": {
"$ref": "#/components/schemas/Hash"
},
"stateHash": {
"$ref": "#/components/schemas/Hash"
},
"chainId": {
"$ref": "#/components/schemas/ChainId"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"manifestRevision": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"bindingId",
"stateHash",
"chainId",
"address",
"manifestRevision"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"prepared",
"pending",
"partial",
"blocked",
"reorged",
"expired",
"transactions_confirmed"
]
},
"steps": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlanStep"
},
"minItems": 1,
"maxItems": 32
},
"confirmationScope": {
"type": "string"
}
},
"required": [
"id",
"account",
"operation",
"draft",
"commitment",
"createdAt",
"expiresAt",
"revision",
"status",
"steps",
"confirmationScope"
],
"additionalProperties": false
}