What are intents?
Intents are an abstraction in the Privy system for asynchronous authorization. With intents, your application expresses an intent to take an action (e.g. update a policy, send a transaction), and later appends authorization signatures to the intent as users of your application approve the intent. Once the approval threshold for the intent is met, the intent is automatically executed.Learn more about intents to familiarize yourself with
how organizations can asynchronously approve actions.
Using intents
At a high-level, you can use intents to take actions with organization wallets as follows:1
Create an intent for the action
To start, programmatically create an intent for the action the organization intends to take with the wallet. This may be a wallet update (e.g. updating a policy), a signature, or a transaction.
2
Authenticate users of the organization
Next, authenticate users of the organization who have been provisioned access to the wallet (via the root key quorum or other key quorums).If using your own authentication service, simply retrieve a valid JWT for the authenticated user.If using Privy’s authentication service, simply log in the user with your configured login methods using Privy’s client-side SDKs.
3
Authorize the intent with the authenticated user
Once the user is authenticated, have them authorize the intent by fetching a user signing key with their access token and signing the intent request with it.We strongly suggest using Privy’s client-side SDKs or server-side SDKs to facilitate intent authorization with a user’s access token.
4
Capture the result of intent execution
Once a sufficient threshold of users approves the intent (e.g. the threshold of the root quorum), Privy will automatically execute the intent.You can consume the result of intent execution via Privy’s REST API or by subscribing to intent webhooks.

