How it works
- Each wallet can have multiple additional signers (authorization keys or key quorums)
- Each signer can have an override policy that defines what policies that signer is subject to
- When a signer submits a transaction, Privy evaluates only that signer’s override policy — not the policies of other signers
- If the transaction satisfies the signer’s policy, Privy signs it. Otherwise, Privy denies the request
Setup
At a high level:Create policies
Define a policy for each access level (e.g., a restrictive policy and a permissive policy).
Create authorization keys
Create an authorization key (or key quorum) for each signer that needs access to the wallet.
1. Create policies
Define a policy for each signer. In this example, the restricted signer can only send small USDC transfers, while the full-access signer can send transactions to any address. Save theid from each policy response. These are needed when adding signers to the wallet.
Create a policy
Learn more about defining policies with rules and conditions.
2. Create authorization keys
Create a separate authorization key for each signer. Each key corresponds to a different party or service that needs wallet access.Create authorization keys
Generate keypairs and register them in the Privy Dashboard or via the SDK.
restrictedSignerPrivateKey and fullAccessSignerPrivateKey.
3. Add signers with override policies
Add each authorization key as a signer on the wallet, attaching the appropriate override policy. The override policy scopes what that specific signer can authorize.4. Route transactions through the appropriate signer
Your server selects which authorization key to use based on the request context. For example, an automated service signs with the restricted signer, while an admin endpoint signs with the full-access signer. If the transaction violates the signer’s override policy, Privy denies the request. Transactions do not fall back to another signer’s policy — Privy evaluates each signer independently.Learn more
Additional signers
Add signers to wallets and manage their permissions.
Policies
Define rules that constrain which transactions are allowed.
Authorization keys
Create and manage server-controlled authorization keys.

