Endpoint reference

POST /api/v1/smart-accounts/sessions/{id}/revocation-plans

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
}