Understand API key scopes and how they control what your application can do.

Scopes

What Are Scopes?

Scopes are permissions attached to your API key. They control what the key is allowed to do. If a key with only read access gets leaked, no one can move money with it.

Available Scopes

Wallet Scopes

ScopeAllows
wallet:createCreate new wallets for the organization
wallet:readList wallets, get wallet details, check balances, get user info for a wallet, resolve tokens on-chain

Token Scopes

ScopeAllows
token:transferPrepare ERC-20 token transfer transaction objects
token:approvePrepare ERC-20 token approve transaction objects

Transaction Scopes

ScopeAllows
transaction:readView transaction history for organization wallets
transaction:executeExecute pre-signed transactions through the relayer

Passkey Scopes

ScopeAllows
passkey:manageList on-chain recovery passkeys for organization wallets

Domain Scopes

ScopeAllows
domain:readGet domain info (authorization, fees, owner, treasury) and list allowed tokens

How to Choose Scopes

Follow the principle of least privilege: give each API key only the scopes it actually needs.

Example: Read-Only Dashboard

wallet:read, transaction:read

Example: Full Wallet Management

wallet:create, wallet:read, token:transfer, transaction:read, transaction:execute

Example: Monitoring Only

wallet:read, transaction:read, domain:read

Scope Reference by Endpoint

EndpointMethodRequired Scope
/baas/walletsPOSTwallet:create
/baas/walletsGETwallet:read
/baas/wallets/:address/balanceGETwallet:read
/baas/wallets/:address/userGETwallet:read
/baas/tokens/erc20/transferPOSTtoken:transfer
/baas/tokens/erc20/approvePOSTtoken:approve
/baas/tokens/erc721/safe-transferPOSTtoken:transfer
/baas/tokens/erc1155/safe-transferPOSTtoken:transfer
/baas/tokens/erc1155/batch-transferPOSTtoken:transfer
/baas/tokens/erc721/approvePOSTtoken:approve
/baas/tokens/erc721/set-approval-for-allPOSTtoken:approve
/baas/tokens/erc1155/set-approval-for-allPOSTtoken:approve
/baas/tokens/allowedGETdomain:read
/baas/tokens/resolvePOSTwallet:read
/baas/transactionsGETtransaction:read
/baas/transactions/executePOSTtransaction:execute
/baas/passkeysGETpasskey:manage
/baas/domains/infoGETdomain:read