Skip to main content
Once your organizations have been set up with wallets, you can facilitate users taking actions with those wallets using intents.

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.