POST /api/v1/plans/{id}/submissions
Parameters
| Name | Location | Details |
|---|---|---|
X-Juicebox-Account | header / required | Enrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists. |
X-Juicebox-Signer | header / required | Owner wallet or authorized bot address that signed this request. |
X-Juicebox-Issued-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time. |
X-Juicebox-Expires-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt. |
X-Juicebox-Nonce | header / required | Fresh random 32-byte lowercase nonce. A consumed nonce cannot be retried. |
X-Juicebox-Signature | header / required | EIP-712 CenterRequest signature over every signed field. Contract-owner signatures may vary in length. This is a computed request proof, not a reusable API key. |
X-Juicebox-Grant | header / optional | Authorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string. |
Idempotency-Key | header / required | Signed retry identity. Required on plan creation and transaction submission. Preserve exact method, target, Content-Type, and body bytes; use a fresh request nonce and signature. |
id | path / required | string |
Request body
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
submissions | array required | Fields
|
JSON schema
{
"type": "object",
"properties": {
"submissions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stepIndex": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"rawSignedTransaction": {
"$ref": "#/components/schemas/HexBytes"
},
"ownerApproval": {
"$ref": "#/components/schemas/TransactionApproval"
}
},
"required": [
"stepIndex",
"rawSignedTransaction"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 32
}
},
"required": [
"submissions"
],
"additionalProperties": false
}Response 202
| Field | Type | Details | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
atomic | boolean required | Values: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
complete | boolean required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
results | array required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plan | object required | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stoppedAt | integer optional | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error | object optional | Fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
remainingStepIndices | array optional | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
note | string optional |
JSON schema
{
"type": "object",
"properties": {
"atomic": {
"type": "boolean",
"const": false
},
"complete": {
"type": "boolean"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SubmissionResult"
},
"maxItems": 32
},
"plan": {
"$ref": "#/components/schemas/Plan"
},
"stoppedAt": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"error": {
"$ref": "#/components/schemas/SafeError"
},
"remainingStepIndices": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
}
},
"note": {
"type": "string"
}
},
"required": [
"atomic",
"complete",
"results",
"plan"
],
"additionalProperties": false
}