Intents

intents

Methods

List Intents -> Cursor<>
get/v1/intents

List intents for an app. Returns a paginated list of intents with their current status and details.

Get Intent ->
get/v1/intents/{intent_id}

Retrieve an intent by ID. Returns the intent details including its current status, authorization details, and execution result if applicable.

Create Rpc Intent ->
post/v1/intents/wallets/{wallet_id}/rpc

Create an intent to execute an RPC method on a wallet. The intent must be authorized by either the wallet owner or signers before it can be executed.

Create Transfer Intent ->
post/v1/intents/wallets/{wallet_id}/transfer

Create an intent to execute a token transfer via a wallet. The intent must be authorized by either the wallet owner or signers before it can be executed.

Create Wallet Update Intent ->
patch/v1/intents/wallets/{wallet_id}

Create an intent to update a wallet. The intent must be authorized by the wallet owner before it can be executed.

Create Policy Update Intent ->
patch/v1/intents/policies/{policy_id}

Create an intent to update a policy. The intent must be authorized by the policy owner before it can be executed.

Create Policy Rule Intent ->
post/v1/intents/policies/{policy_id}/rules

Create an intent to add a rule to a policy. The intent must be authorized by the policy owner before it can be executed.

Create Policy Rule Update Intent ->
patch/v1/intents/policies/{policy_id}/rules/{rule_id}

Create an intent to update a rule on a policy. The intent must be authorized by the policy owner before it can be executed.

Create Policy Rule Delete Intent ->
delete/v1/intents/policies/{policy_id}/rules/{rule_id}

Create an intent to delete a rule from a policy. The intent must be authorized by the policy owner before it can be executed.

path Parameters
policy_id: string

ID of the policy.

rule_id: string

ID of the rule.

header Parameters
privy-request-expiry: string
Optional

Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed.

Request example
200Example
Create Key Quorum Update Intent ->
patch/v1/intents/key_quorums/{key_quorum_id}

Create an intent to update a key quorum. The intent must be authorized by the key quorum members before it can be executed.

Domain types

BaseActionResult = { executed_at, status_code, authorized_by_display_name, 1 more... }

Common fields for intent action execution results.

BaseIntentResponse = { authorization_details, created_at, created_by_display_name, 9 more... }

Common fields shared by all intent response types.

IntentAuthorization = { members, threshold, display_name }

Authorization quorum for an intent

IntentAuthorizationKeyQuorumMember = { signed_at, type, user_id } | { public_key, signed_at, type }

A leaf member (user or key) of a nested key quorum in an intent authorization.

IntentAuthorizationMember = { signed_at, type, user_id } | { public_key, signed_at, type } | { key_quorum_id, members, threshold, 3 more... }

A member of an intent authorization quorum. Can be a user, key, or nested key quorum.

IntentAuthorizeInput = { signature, timestamp }

Request body for authorizing an intent.

IntentCreationHeaders = { privy-app-id, privy-request-expiry }

Headers required to create an intent.

Response for an intent object

IntentStatus = "pending" | "processing" | "executed" | 4 more...

Current status of an intent.

IntentType = "KEY_QUORUM" | "POLICY" | "RULE" | 3 more...

Type of intent.

KeyQuorumIntentResponse =

Response for a key quorum intent

PolicyIntentRequestDetails = { body, method, url }

Request details for a policy intent.

PolicyIntentResponse =

Response for a policy intent

RpcIntentRequestDetails = { body, method, url }

Request details for an RPC intent.

RpcIntentResponse =

Response for an RPC intent

RuleDeleteIntentResponse =

Response for a delete rule intent

RuleIntentCreateRequestDetails = { body, method, url }

Request details for creating a rule via intent.

RuleIntentDeleteRequestDetails = { method, url, body }

Request details for deleting a rule via intent.

The original rule request. Method is POST (create), PATCH (update), or DELETE (delete)

RuleIntentResponse =

Response for a rule intent

RuleIntentUpdateRequestDetails = { body, method, url }

Request details for updating a rule via intent.

RuleMutateIntentResponse =

Response for a create or update rule intent

TransferIntentRequestDetails = { body, method, url }

Request details for a transfer intent.

TransferIntentResponse =

Response for a transfer intent

WalletIntentResponse =

Response for a wallet intent