Skip to main content

Session delegation payload

Session-key signed requests use a delegated payload with these fields:
FieldTypeMeaning
session_signaturesignatureEIP-712 wallet signature over delegated payload hash
expiryunix secondsSession-key validity cutoff
acl_scopeaction setExplicitly allowed actions for the session key
session_public_keycompressed secp256k1 keyPublic key corresponding to delegated execution key

Versioning

Version enumCode
LegacyV11
DelegatedPolicyProofV22

Session action model

Delegated action enums implement a numeric action_code and include an explicit unrestricted variant for full-action delegation when enabled by policy.
Action enumCodeGoverns
Unrestricted0Any supported session-key action when policy permits
Order1New order placement
ModifyOrder2Modify-order requests
CancelOrder3Single-order cancel requests
CancelAll4Cancel-all requests

Enforcement rules

RuleContract
ExpiryThe operator rejects delegated payloads once current_timestamp > expiry
ACL matchThe operator accepts the request only when acl_scope contains the required action or Unrestricted
Empty scopeEmpty ACL scopes are invalid for delegated-policy session proofs
Signer couplingThe session public key embedded in the delegated payload must match the key that signs the request

Known rejection classes

Failure shapeMeaning
expired delegated policyexpiry is in the past at validation time
session ACL violationthe request family is outside the delegated acl_scope
malformed delegated payloadpayload bytes cannot be decoded or do not satisfy the delegated-policy contract
session public-key mismatchdelegated payload and request signature do not describe the same session signer
Last modified on April 13, 2026