Configure session signers
Follow the guide below to configure session signers your app can use to transact on user’s embedded wallets.
1. Enable session signers
First, enable session signers within the Privy Dashboard to allow your app to request permission from users to transact on their behalf.
To enable session signers for your app, visit the Privy Dashboard and navigate to the User management > Authentication page for your app.
Select the Advanced tab and toggle the Server-side access setting to enable session signers for your app.
2. Generate a key quorum
Fundamentally, a session signer is a key quorum that is authorized to submit transaction request for signature from a user’s wallet.
You can create key quorums in the Privy Dashboard or via an API request,
To generate a key quorum in the Dashboard, navigate to the Wallet infrastructure > Authorization keys page and click on the Create new key button. The modal will show the key quorum ID and the private key used for signing.
Save both these values in a secure location. Privy never sees this private key and cannot help you recover it. The private key will be used to sign transaction requests on the wallet.
The authorization key is the private key of a P-256 keypair. Privy never sees the private key, and verifies signatures on your requests against the corresponding public key to ensure your server authorizes the action to take with a user’s delegated wallet.
3. [Optional] Configuring permissions with policies
Session signers can also have policies that any transaction must satisfy to be signed by the wallet. To configure permissions to control what kinds of actions your app can take with users wallets, set up policies in your Privy dashboard under Wallet infrastructure > Policies.
4. Add the session signer to the wallet
To use session signers, your user must first grant consent for your app to take certain actions on their behalf. To have users grant consent, follow the guides below depending on the client-side SDK(s) you integrate.