Permissions are opt-in. If you don’t create a policy, all signing requests are allowed (existing behavior). Once a policy is active, it becomes deny-by-default — transactions must match an ALLOW rule.
Key Concepts
- One active policy per API key. Each policy contains one or more scopes, and each scope contains permission rules.
- Deny-by-default. When a policy exists, any transaction that doesn’t match an ALLOW rule is denied.
- DENY always wins. If a transaction matches both an ALLOW and a DENY rule, it’s denied.
- Windowed spend limits. Direct native transfers and direct ERC-20 transfers can be limited by cumulative amount per fixed time window.
- EVM only. Permissions currently evaluate EVM transactions. Solana and Cosmos are not yet supported.
How Enforcement Works
When you call any signing endpoint (sign-raw, sign-message, sign-typed-data, sign-transaction, transfer), Para checks whether a policy exists for your API key. If one does, the transaction is evaluated against every scope and permission in the policy.
If the transaction is denied, you get a 403 response with details about which rule blocked it:
deniedBy field tells you exactly which scope, permission type, and condition caused the denial, making it straightforward to debug.
Windowed spend denials use the same 403 POLICY_DENIED response. Para denies the request before signing, so no transaction is broadcast and no pending user review is created for REST API wallets.
Permission Types
Each permission targets a specific kind of signing operation:Condition Reference
Conditions narrow when a permission applies. Every condition has a resource (what to check), a comparator (how to check), and a reference (expected value).Resources
Comparators
Windowed Spend Limits
Use aWINDOWED_SPEND_LIMIT condition when a REST API wallet should automatically sign only up to a cumulative amount in a fixed time window. The reference object must include:
Windowed spend limits count transaction value only. They do not include gas or fees, and each limit is scoped by API key, wallet, chain, asset, and window length.
Limitations
- EVM only. Solana and Cosmos transactions are not evaluated against policies.
- Direct transfers only. Windowed spend limits cover native transfers and ERC-20
transfer(address,uint256). They do not cover approvals,transferFrom, router calls, multicalls, non-transfer contract calls, USD-normalized limits, or cross-asset aggregate limits.