Create an m-of-n key quorum
Key quorums make it possible for organizations to require multiple authorizations before taking critical actions, such as updating owners, policies, and signers, exporting a wallet, or using a wallet to send a transaction.To start, create authorization keys in the Privy Dashboard and save the corresponding private keys. Your app will use these private keys to sign requests to Privy’s API.Next, register the authorization keys in a key quorum. Set the authorization threshold to the number of members of the quorum that must sign a given wallet request. For example, in a 2-of-3 quorum, authorization signatures must be provided by at least 2 of the keys in the quorum to authorize requests to the Privy API.You will later register this key quorum as the owner of a wallet, and a sufficient number of members of the key quorum must sign requests to use the wallet.Follow the guide below to create your authorization key(s) and key quorum.
Create authorization keys
Create authorization keys in your Privy Dashboard.
Key quorums quickstart
Create a key quorum in your Privy Dashboard.
Implement a policy
Privy’s policy engine allows your application to restrict the actions that can be taken with wallets. These policies include critical controls such as transfer limits, time-bound signers, allowlists and denylists of smart contracts and programs, and restricting smart contract parameters and calldata.Follow the guide below to create policies for your desired use case. After creating your policy, save the
id to assign the policy to the wallet(s) you create later.Policies overview
Learn how to construct policies with Privy’s policy language.
Policies quickstart
Create a policy.
Create a wallet
Create a wallet with the following configuration:
- Set the
owner_idof the wallet to theidof the key quorum you created earlier - Set the
policy_idsarray of the wallet to a singleton containing theidof the policy you created earlier
Wallets quickstart
Create a wallet.
In addition to the owner, you can also set additional signers on the wallet that can take actions with the wallet subject to their own policies. This allows multiple parties to authorize requests to the Privy API, with different policies and permissions over the wallet.
Generate authorization signatures for a request
When taking action with the wallet, the wallet’s owner must sign requests to the Privy API.For your key quorum to authorize this request, m-of-n of the authorization private keys in the quorum must sign the request. These signatures must then be included in the
privy-authorization-signature header when making a request to take action with a wallet.Follow the guide below to learn how to sign requests to the Privy API.Authorization signature quickstart
Sign requests to the Privy API.
Send a transaction
You can now send transactions, sign transactions, or sign messages with Privy’s API. Follow the guide below to send a transaction.
Send an EVM transaction
Learn how to send an EVM transaction.
Send a Solana transaction
Learn how to send a Solana transaction.
Send transactions on Tier 2 chains
Learn how to send transactions on Tier 2 chains.
Alternative: Manual approvals
For treasury wallets where team members should review transactions in the Dashboard before execution, your app can use manual approvals instead of programmatic authorization signatures. Team members review and approve proposed transactions with MFA, and once the approval threshold is met, the transaction executes automatically.Manual approvals is an Enterprise feature. Reach out to [email protected] to
request access.
Manual approvals overview
Set up team member key quorums and review intents.
Propose intents
Create intents for transactions and wallet updates.
Learn more
Transaction status
Check the status of a transaction.
Balance webhooks
Receive deposit and withdrawal events.
Wallet funding
Fund your wallet using Bridge.

