- Protocol scopes — on-chain authority. Signed into each action and re-validated by the protocol state machine. These decide what state-changing actions the key can authorize.
- Off-chain scopes — server-side capabilities. Never signed, never seen by the protocol; enforced only by the server before a request is processed.
All of the steps in this guide can be done through the UX or SDKs.
Protocol scopes
Protocol scopes form a tree. A grant for a branch covers everything under it, sotrade:all covers trade:orderbook:all and trade:rfq:option alike, and all at any level covers its children. A request is checked by asking whether one of the key’s grants allows the specific scope the action requires.

admin and owner special powers
These are actions only the admin or owner wallet can do:
- can call
private/update_whitelisted_recipientsto add or remove whitelisted recipients for external transfers and withdrawals. - can withdraw and transfer to any recipient without setting a whitelist recipient.
- can modify the ip whitelist for a session key
Off-chain scopes
Off-chain scopes are exact-match only — no tree, no hierarchy.How scopes are set
Creator must specify the exact scopes for a session key. A session key with no scopes is a purely read-only session key. The “owner” wallet by default has all scopes.See Session keys for the full create / edit / list lifecycle and
Authentication for how a session resolves to protocol and off-chain scopes. Amounts
and constants referenced by signed actions live on Action signing.

