Skip to Content

Privileges

Privileges let you pre-approve a scope of operations so your agent can act without triggering an approval each time. Think of it as a signed permission slip: “you may spend up to $X, only to these addresses, only on this chain, and only for the next N hours.”

How It Works

  1. You define a scope — spend limit, allowed addresses, chain, and expiration
  2. You approve it once — creates an encoded token
  3. Agent attaches the token — qualifying transactions are signed instantly, no 2FA
  4. Token expires — after the time limit or spend cap is reached, the agent needs a new token or falls back to normal approvals

Scope Parameters

ParameterWhat it controls
allowedAddressesWhich addresses the agent can send to. Empty [] = any address (riskier).
chainIdWhich chain the token applies to
requestedAmountUsdMaximum cumulative USD value across all transactions
requestedExpirySecondsHow long the token is valid

Using Privileges (CLI)

Pass --permission-token to any signing or transaction command:

waap-cli send-tx \ --to 0xCetusPool \ --value 0.01 \ --chain-id sui:mainnet \ --permission-token <encoded-token>

The transaction goes through immediately — no Telegram prompt, no waiting.

When to Use Them

ScenarioWithout PrivilegeWith Privilege
Yield agent repositioning every few hoursTelegram approval each timeAuto-approved within scope
Trading agent executing 50 trades/day50 Telegram approvals/dayAuto-approved up to limit
One-time large transferApprove manually (good)Not recommended — use normal approval

Rule of thumb: Use Privileges for routine, low-value, repetitive operations. Keep normal approvals for anything large or unusual.

SDK Integration

For browser-based apps, Privileges are requested via window.waap.requestPermissionToken(). See the Privileges SDK guide for full implementation details.

Last updated on