---
title: "List intents"
method: GET
path: "/v1/intents"
tags: ["Intents"]
---

# List intents

`GET /v1/intents`

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

## Query parameters

- `cursor` string
- `limit` number, nullable
- `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed' — Current status of an intent.
- `intent_type` 'KEY_QUORUM' | 'POLICY' | 'RULE' | 'RPC' | 'TRANSFER' | 'WALLET' — Type of intent.
- `created_by_id` string
- `pending_member_id` string
- `resource_id` string
- `current_user_has_signed` 'true' | 'false'
- `sort_by` 'created_at_desc' | 'expires_at_asc' | 'updated_at_desc'

## Headers

- `privy-app-id` string, required — ID of your Privy app.

## Response `200`

List of intents.

- object
  - `data` IntentResponse[], required
    - union — Response for an intent object
      - object — Response for an RPC intent
        - `authorization_details` IntentAuthorization[], required — Detailed authorization information including key quorum members, thresholds, and signature status
          - `display_name` string — Display name of the key quorum
          - `members` IntentAuthorizationMember[], required — Members in this authorization quorum
            - union — A member of an intent authorization quorum. Can be a user, key, or nested key quorum.
              - …
          - `threshold` number, required — Number of signatures required to satisfy this quorum
        - `created_at` number, required — Unix timestamp when the intent was created
        - `created_by_display_name` string, required — Display name of the user who created the intent
        - `created_by_id` string — ID of the user who created the intent. If undefined, the intent was created using the app secret
        - `custom_expiry` boolean, required — Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.
        - `dismissal_reason` string — Human-readable reason for dismissal, present when status is 'dismissed'
        - `dismissed_at` number — Unix timestamp when the intent was dismissed, present when status is 'dismissed'
        - `expires_at` number, required — Unix timestamp when the intent expires
        - `intent_id` string, required — Unique ID for the intent
        - `rejected_at` number — Unix timestamp when the intent was rejected, present when status is 'rejected'
        - `resource_id` string, required — ID of the resource being modified (wallet_id, policy_id, etc)
        - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required — Current status of an intent.
        - `action_result` object — Result of RPC execution (only present if status is 'executed' or 'failed')
          - `authorized_by_display_name` string — Display name of the key quorum that authorized execution
          - `authorized_by_id` string — ID of the key quorum that authorized execution
          - `executed_at` number, required — Unix timestamp when the action was executed
          - `status_code` number, required — HTTP status code from the action execution
          - `response_body` union, required — Response body for wallet RPC operations, discriminated by method.
            - object — Response to the EVM `personal_sign` RPC.
              - …
            - object — Response to the EVM `eth_signTypedData_v4` RPC.
              - …
            - object — Response to the EVM `eth_signTransaction` RPC.
              - …
            - object — Response to the EVM `eth_sendTransaction` RPC.
              - …
            - object — Response to the EVM `eth_signUserOperation` RPC.
              - …
            - object — Response to the EVM `eth_sign7702Authorization` RPC.
              - …
            - object — Response to the EVM `secp256k1_sign` RPC.
              - …
            - object — Response to the `wallet_sendCalls` RPC.
              - …
            - object — Response to the SVM `signMessage` RPC.
              - …
            - object — Response to the SVM `signTransaction` RPC.
              - …
            - object — Response to the SVM `signAndSendTransaction` RPC.
              - …
            - object — Response to the Spark `transfer` RPC.
              - …
            - object — Response to the Spark `getBalance` RPC.
              - …
            - object — Response to the Spark `transferTokens` RPC.
              - …
            - object — Response to the Spark `getStaticDepositAddress` RPC.
              - …
            - object — Response to the Spark `getClaimStaticDepositQuote` RPC.
              - …
            - object — Response to the Spark `claimStaticDeposit` RPC.
              - …
            - object — Response to the Spark `createLightningInvoice` RPC.
              - …
            - object — Response to the Spark `payLightningInvoice` RPC.
              - …
            - object — Response to the Spark `signMessageWithIdentityKey` RPC.
              - …
            - object — Response to the Spark `withdraw` RPC.
              - …
            - object — Response to the Spark `getWithdrawalFeeQuote` RPC.
              - …
            - object — Response to the Tron `tron_signTransaction` RPC.
              - …
            - object — Response to the Tron `tron_sendTransaction` RPC.
              - …
            - object — Response to the `exportPrivateKey` RPC.
              - …
            - object — Response to the `exportSeedPhrase` RPC.
              - …
        - `current_resource_data` object — Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
          - `additional_signers` WalletAdditionalSignerItem[], required — Additional signers for the wallet.
            - `override_policy_ids` string[] — An optional list of up to one policy ID to enforce on the wallet.
            - `signer_id` string, cuid2, required — A unique identifier for a key quorum.
          - `address` string, required — Address of the wallet.
          - `archived_at` number, nullable — Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
          - `authorization_threshold` number — The number of keys that must sign for an action to be valid.
          - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
          - `created_at` number, required — Unix timestamp of when the wallet was created in milliseconds.
          - `custody` WalletCustodian — Information about the custodian managing this wallet.
            - `provider` string, required — The custodian responsible for the wallet.
            - `provider_user_id` string, required — The resource ID of the beneficiary of the custodial wallet.
          - `display_name` string — A human-readable label for the wallet.
          - `exported_at` number, nullable, required — Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
          - `external_id` string — A customer-provided identifier for mapping to external systems. Write-once, set only at creation.
          - `id` string, required — Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
          - `imported_at` number, nullable, required — Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
          - `owner_id` string, cuid2, nullable, required — The key quorum ID of the owner of the wallet.
          - `policy_ids` string[], required — List of policy IDs for policies that are enforced on the wallet.
          - `public_key` string — The compressed, raw public key for the wallet along the chain cryptographic curve.
        - `intent_type` 'RPC', required
        - `request_details` object, required — The original RPC request that would be sent to the wallet endpoint
          - `body` union, required — Request body for wallet RPC operations, discriminated by method.
            - object — Executes the EVM `eth_signTransaction` RPC to sign a transaction.
              - …
            - object — Executes the EVM `eth_sendTransaction` RPC to sign and broadcast a transaction.
              - …
            - object — Executes the EVM `personal_sign` RPC (EIP-191) to sign a message.
              - …
            - object — Executes the EVM `eth_signTypedData_v4` RPC (EIP-712) to sign a typed data object.
              - …
            - object — Signs a raw hash on the secp256k1 curve.
              - …
            - object — Signs an EIP-7702 authorization.
              - …
            - object — Executes an RPC method to hash and sign a UserOperation.
              - …
            - object — Executes the `wallet_sendCalls` RPC (EIP-5792) to batch multiple calls into a single atomic transaction.
              - …
            - object — Executes the SVM `signTransaction` RPC to sign a transaction.
              - …
            - object — Executes the SVM `signAndSendTransaction` RPC to sign and broadcast a transaction.
              - …
            - object — Executes the SVM `signMessage` RPC to sign a message.
              - …
            - object — Transfers satoshis to a Spark address.
              - …
            - object — Gets the balance of the Spark wallet.
              - …
            - object — Transfers tokens to a Spark address.
              - …
            - object — Gets a static deposit address for the Spark wallet.
              - …
            - object — Gets a quote for claiming a static deposit.
              - …
            - object — Claims a static deposit into the Spark wallet.
              - …
            - object — Creates a Lightning invoice for the Spark wallet.
              - …
            - object — Pays a Lightning invoice from the Spark wallet.
              - …
            - object — Signs a message with the Spark identity key.
              - …
            - object — Withdraws from Spark to a Bitcoin L1 address (cooperative exit).
              - …
            - object — Gets a fee quote for withdrawing from Spark to a Bitcoin L1 address.
              - …
            - object — Executes the Tron `tron_signTransaction` RPC to sign a transaction. The caller is responsible for broadcasting.
              - …
            - object — Executes the Tron `tron_sendTransaction` RPC to sign and broadcast a transaction.
              - …
            - object — Exports the private key of the wallet.
              - …
            - object — Exports the seed phrase of the wallet.
              - …
          - `method` 'POST', required
          - `url` string, required
      - object — Response for a transfer intent
        - `authorization_details` IntentAuthorization[], required — Detailed authorization information including key quorum members, thresholds, and signature status
          - `display_name` string — Display name of the key quorum
          - `members` IntentAuthorizationMember[], required — Members in this authorization quorum
            - union — A member of an intent authorization quorum. Can be a user, key, or nested key quorum.
              - …
          - `threshold` number, required — Number of signatures required to satisfy this quorum
        - `created_at` number, required — Unix timestamp when the intent was created
        - `created_by_display_name` string, required — Display name of the user who created the intent
        - `created_by_id` string — ID of the user who created the intent. If undefined, the intent was created using the app secret
        - `custom_expiry` boolean, required — Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.
        - `dismissal_reason` string — Human-readable reason for dismissal, present when status is 'dismissed'
        - `dismissed_at` number — Unix timestamp when the intent was dismissed, present when status is 'dismissed'
        - `expires_at` number, required — Unix timestamp when the intent expires
        - `intent_id` string, required — Unique ID for the intent
        - `rejected_at` number — Unix timestamp when the intent was rejected, present when status is 'rejected'
        - `resource_id` string, required — ID of the resource being modified (wallet_id, policy_id, etc)
        - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required — Current status of an intent.
        - `action_result` object — Result of transfer execution (only present if intent status is 'executed' or 'failed')
          - `authorized_by_display_name` string — Display name of the key quorum that authorized execution
          - `authorized_by_id` string — ID of the key quorum that authorized execution
          - `executed_at` number, required — Unix timestamp when the action was executed
          - `status_code` number, required — HTTP status code from the action execution
          - `response_body` TransferActionResponse, required — Response for a transfer action.
            - `amount_type` 'exact_input' | 'exact_output' — Whether the amount refers to the input token or output token.
            - `created_at` string, date-time, required — ISO 8601 timestamp of when the wallet action was created.
            - `destination_address` string, required — Recipient address.
            - `destination_amount` string, nullable, required — Amount received on the destination chain. For exact_output cross-chain transfers, set at creation (the guaranteed exact amount). For exact_input cross-chain transfers, null until fill confirmation.
            - `destination_asset` string — Destination asset for cross-asset transfers. Omitted for same-asset transfers.
            - `destination_chain` string — Destination chain for cross-chain transfers. Omitted for same-chain transfers.
            - `estimated_fees` FeeLineItem[], nullable — Estimated fee breakdown from the provider quote. Only present for cross-chain or cross-asset transfers. Populated after on-chain confirmation.
              - …
            - `estimated_gas` Gas — Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.
              - …
            - `failure_reason` object — Top-level failure context for the wallet action. Present on rejected or failed actions when available.
              - …
            - `fees` FeeLineItem[], nullable — Actual fees paid for the transfer. Populated after on-chain confirmation. Only present for cross-chain transfers.
              - …
            - `gas` Gas — Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.
              - …
            - `id` string, required — The ID of the wallet action.
            - `source_amount` string — Decimal amount sent on the source chain (e.g. "1.5"). For exact_output cross-chain transfers, null until fill confirmation.
            - `source_asset` string — Asset identifier (e.g. "usdc", "eth"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers.
            - `source_asset_address` string — Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with `asset_address`.
            - `source_asset_decimals` integer — Number of decimals for the transferred token. Present when the transfer was initiated with `asset_address` and the decimals were resolved on-chain.
            - `source_chain` string, required — Chain name (e.g. "base", "ethereum").
            - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required — The current status of the wallet action.
            - `steps` WalletActionStep[] — The steps of the wallet action. Only returned if `?include=steps` is provided.
              - …
            - `type` 'transfer', required
            - `wallet_id` string, required — The ID of the wallet involved in the action.
        - `current_resource_data` object — Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
          - `additional_signers` WalletAdditionalSignerItem[], required — Additional signers for the wallet.
            - `override_policy_ids` string[] — An optional list of up to one policy ID to enforce on the wallet.
            - `signer_id` string, cuid2, required — A unique identifier for a key quorum.
          - `address` string, required — Address of the wallet.
          - `archived_at` number, nullable — Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
          - `authorization_threshold` number — The number of keys that must sign for an action to be valid.
          - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
          - `created_at` number, required — Unix timestamp of when the wallet was created in milliseconds.
          - `custody` WalletCustodian — Information about the custodian managing this wallet.
            - `provider` string, required — The custodian responsible for the wallet.
            - `provider_user_id` string, required — The resource ID of the beneficiary of the custodial wallet.
          - `display_name` string — A human-readable label for the wallet.
          - `exported_at` number, nullable, required — Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
          - `external_id` string — A customer-provided identifier for mapping to external systems. Write-once, set only at creation.
          - `id` string, required — Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
          - `imported_at` number, nullable, required — Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
          - `owner_id` string, cuid2, nullable, required — The key quorum ID of the owner of the wallet.
          - `policy_ids` string[], required — List of policy IDs for policies that are enforced on the wallet.
          - `public_key` string — The compressed, raw public key for the wallet along the chain cryptographic curve.
        - `intent_type` 'TRANSFER', required
        - `request_details` object, required — The original transfer request that would be sent to the wallet transfer endpoint
          - `body` TransferRequestBody, required — Request body for initiating a sponsored token transfer from an embedded wallet.
            - `amount` string — Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC). For exact_input, the amount to send. For exact_output, the exact amount to receive. Takes precedence over source.amount when both are provided.
            - `amount_type` 'exact_input' | 'exact_output' — Whether the amount refers to the input token or output token.
            - `destination` TokenTransferDestination, required — The destination address for a token transfer. Optionally specify a different asset or chain for cross-asset or cross-chain transfers.
              - …
            - `fee_configuration` object — Optional fee configuration for the transfer. If omitted, cross-chain transfers will not charge additional fees.
              - …
            - `slippage_bps` integer — Maximum allowed slippage in basis points (1 bps = 0.01%). Only applicable for cross-chain or cross-asset transfers; omit to use the provider default.
            - `source` union, required — The source asset, amount, and chain for a token transfer. Specify either `asset` (named) or `asset_address` (custom), not both.
              - …
          - `method` 'POST', required
          - `url` string, required
      - object — Response for a wallet intent
        - `authorization_details` IntentAuthorization[], required — Detailed authorization information including key quorum members, thresholds, and signature status
          - `display_name` string — Display name of the key quorum
          - `members` IntentAuthorizationMember[], required — Members in this authorization quorum
            - union — A member of an intent authorization quorum. Can be a user, key, or nested key quorum.
              - …
          - `threshold` number, required — Number of signatures required to satisfy this quorum
        - `created_at` number, required — Unix timestamp when the intent was created
        - `created_by_display_name` string, required — Display name of the user who created the intent
        - `created_by_id` string — ID of the user who created the intent. If undefined, the intent was created using the app secret
        - `custom_expiry` boolean, required — Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.
        - `dismissal_reason` string — Human-readable reason for dismissal, present when status is 'dismissed'
        - `dismissed_at` number — Unix timestamp when the intent was dismissed, present when status is 'dismissed'
        - `expires_at` number, required — Unix timestamp when the intent expires
        - `intent_id` string, required — Unique ID for the intent
        - `rejected_at` number — Unix timestamp when the intent was rejected, present when status is 'rejected'
        - `resource_id` string, required — ID of the resource being modified (wallet_id, policy_id, etc)
        - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required — Current status of an intent.
        - `action_result` object — Result of wallet update execution (only present if status is 'executed' or 'failed')
          - `authorized_by_display_name` string — Display name of the key quorum that authorized execution
          - `authorized_by_id` string — ID of the key quorum that authorized execution
          - `executed_at` number, required — Unix timestamp when the action was executed
          - `status_code` number, required — HTTP status code from the action execution
          - `prior_state` object, required — State of the wallet immediately before execution
            - `additional_signers` WalletAdditionalSignerItem[], required — Additional signers for the wallet.
              - …
            - `address` string, required — Address of the wallet.
            - `archived_at` number, nullable — Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
            - `authorization_threshold` number — The number of keys that must sign for an action to be valid.
            - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
            - `created_at` number, required — Unix timestamp of when the wallet was created in milliseconds.
            - `custody` WalletCustodian — Information about the custodian managing this wallet.
              - …
            - `display_name` string — A human-readable label for the wallet.
            - `exported_at` number, nullable, required — Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
            - `external_id` string — A customer-provided identifier for mapping to external systems. Write-once, set only at creation.
            - `id` string, required — Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
            - `imported_at` number, nullable, required — Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
            - `owner_id` string, cuid2, nullable, required — The key quorum ID of the owner of the wallet.
            - `policy_ids` string[], required — List of policy IDs for policies that are enforced on the wallet.
            - `public_key` string — The compressed, raw public key for the wallet along the chain cryptographic curve.
          - `response_body` Wallet, required — A wallet managed by Privy's wallet infrastructure.
            - `additional_signers` WalletAdditionalSignerItem[], required — Additional signers for the wallet.
              - …
            - `address` string, required — Address of the wallet.
            - `archived_at` number, nullable — Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
            - `authorization_threshold` number — The number of keys that must sign for an action to be valid.
            - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
            - `created_at` number, required — Unix timestamp of when the wallet was created in milliseconds.
            - `custody` WalletCustodian — Information about the custodian managing this wallet.
              - …
            - `display_name` string — A human-readable label for the wallet.
            - `exported_at` number, nullable, required — Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
            - `external_id` string — A customer-provided identifier for mapping to external systems. Write-once, set only at creation.
            - `id` string, required — Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
            - `imported_at` number, nullable, required — Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
            - `owner_id` string, cuid2, nullable, required — The key quorum ID of the owner of the wallet.
            - `policy_ids` string[], required — List of policy IDs for policies that are enforced on the wallet.
            - `public_key` string — The compressed, raw public key for the wallet along the chain cryptographic curve.
        - `current_resource_data` object — Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
          - `additional_signers` WalletAdditionalSignerItem[], required — Additional signers for the wallet.
            - `override_policy_ids` string[] — An optional list of up to one policy ID to enforce on the wallet.
            - `signer_id` string, cuid2, required — A unique identifier for a key quorum.
          - `address` string, required — Address of the wallet.
          - `archived_at` number, nullable — Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
          - `authorization_threshold` number — The number of keys that must sign for an action to be valid.
          - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
          - `created_at` number, required — Unix timestamp of when the wallet was created in milliseconds.
          - `custody` WalletCustodian — Information about the custodian managing this wallet.
            - `provider` string, required — The custodian responsible for the wallet.
            - `provider_user_id` string, required — The resource ID of the beneficiary of the custodial wallet.
          - `display_name` string — A human-readable label for the wallet.
          - `exported_at` number, nullable, required — Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
          - `external_id` string — A customer-provided identifier for mapping to external systems. Write-once, set only at creation.
          - `id` string, required — Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
          - `imported_at` number, nullable, required — Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
          - `owner_id` string, cuid2, nullable, required — The key quorum ID of the owner of the wallet.
          - `policy_ids` string[], required — List of policy IDs for policies that are enforced on the wallet.
          - `public_key` string — The compressed, raw public key for the wallet along the chain cryptographic curve.
        - `intent_type` 'WALLET', required
        - `request_details` object, required — The original wallet update request that would be sent to the wallet endpoint
          - `body` object, required
            - `additional_signers` AdditionalSignerItemInput[] — Additional signers for the wallet.
              - …
            - `authorization_key_ids` string[]
            - `authorization_threshold` number
            - `display_name` string, nullable
            - `owner` union — The owner of the resource, specified as a Privy user ID, a P-256 public key, or null to remove the current owner.
              - …
            - `owner_id` string, cuid2, nullable — The key quorum ID to set as the owner of the resource. If you provide this, do not specify an owner.
            - `policy_ids` string[] — An optional list of up to one policy ID to enforce on the wallet.
          - `method` 'PATCH', required
          - `url` string, required
      - object — Response for a policy intent
        - `authorization_details` IntentAuthorization[], required — Detailed authorization information including key quorum members, thresholds, and signature status
          - `display_name` string — Display name of the key quorum
          - `members` IntentAuthorizationMember[], required — Members in this authorization quorum
            - union — A member of an intent authorization quorum. Can be a user, key, or nested key quorum.
              - …
          - `threshold` number, required — Number of signatures required to satisfy this quorum
        - `created_at` number, required — Unix timestamp when the intent was created
        - `created_by_display_name` string, required — Display name of the user who created the intent
        - `created_by_id` string — ID of the user who created the intent. If undefined, the intent was created using the app secret
        - `custom_expiry` boolean, required — Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.
        - `dismissal_reason` string — Human-readable reason for dismissal, present when status is 'dismissed'
        - `dismissed_at` number — Unix timestamp when the intent was dismissed, present when status is 'dismissed'
        - `expires_at` number, required — Unix timestamp when the intent expires
        - `intent_id` string, required — Unique ID for the intent
        - `rejected_at` number — Unix timestamp when the intent was rejected, present when status is 'rejected'
        - `resource_id` string, required — ID of the resource being modified (wallet_id, policy_id, etc)
        - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required — Current status of an intent.
        - `action_result` object — Result of policy update execution (only present if status is 'executed' or 'failed')
          - `authorized_by_display_name` string — Display name of the key quorum that authorized execution
          - `authorized_by_id` string — ID of the key quorum that authorized execution
          - `executed_at` number, required — Unix timestamp when the action was executed
          - `status_code` number, required — HTTP status code from the action execution
          - `prior_state` object, required — State of the policy immediately before execution
            - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
            - `created_at` number, required — Unix timestamp of when the policy was created in milliseconds.
            - `id` string, required — Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
            - `name` string, required — Name to assign to policy.
            - `owner_id` string, cuid2, required — A unique identifier for a key quorum.
            - `rules` PolicyRuleResponse[], required
              - …
            - `version` '1.0', required — Version of the policy. Currently, 1.0 is the only version.
          - `response_body` Policy, required — A policy for controlling wallet operations.
            - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
            - `created_at` number, required — Unix timestamp of when the policy was created in milliseconds.
            - `id` string, required — Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
            - `name` string, required — Name to assign to policy.
            - `owner_id` string, cuid2, required — A unique identifier for a key quorum.
            - `rules` PolicyRuleResponse[], required
              - …
            - `version` '1.0', required — Version of the policy. Currently, 1.0 is the only version.
        - `current_resource_data` object — Current state of the policy before any changes. If undefined, the resource was deleted and no longer exists
          - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
          - `created_at` number, required — Unix timestamp of when the policy was created in milliseconds.
          - `id` string, required — Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
          - `name` string, required — Name to assign to policy.
          - `owner_id` string, cuid2, required — A unique identifier for a key quorum.
          - `rules` PolicyRuleResponse[], required
            - `action` 'ALLOW' | 'DENY', required — The action to take when a policy rule matches.
            - `conditions` PolicyCondition[], required
              - …
            - `id` string, required
            - `method` 'eth_sendTransaction' | 'eth_signTransaction' | 'eth_signUserOperation' | 'eth_signTypedData_v4' | 'personal_sign' | 'eth_sign7702Authorization' | 'wallet_sendCalls' | 'signTransaction' | 'signAndSendTransaction' | 'signMessage' | 'exportPrivateKey' | 'exportSeedPhrase' | 'signTransactionBytes' | 'signRawMessageBytes' | 'tron_sendTransaction' | 'tron_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'transfer' | '*', required — Method the rule applies to.
            - `name` string, required
          - `version` '1.0', required — Version of the policy. Currently, 1.0 is the only version.
        - `intent_type` 'POLICY', required
        - `request_details` object, required — The original policy update request that would be sent to the policy endpoint
          - `body` object, required
            - `name` string — Name to assign to policy.
            - `owner` union — The owner of the resource, specified as a Privy user ID, a P-256 public key, or null to remove the current owner.
              - …
            - `owner_id` string, cuid2, nullable — The key quorum ID to set as the owner of the resource. If you provide this, do not specify an owner.
            - `rules` PolicyRuleRequestBody[]
              - …
          - `method` 'PATCH', required
          - `url` string, required
      - object — Response for a rule intent
        - `authorization_details` IntentAuthorization[], required — Detailed authorization information including key quorum members, thresholds, and signature status
          - `display_name` string — Display name of the key quorum
          - `members` IntentAuthorizationMember[], required — Members in this authorization quorum
            - union — A member of an intent authorization quorum. Can be a user, key, or nested key quorum.
              - …
          - `threshold` number, required — Number of signatures required to satisfy this quorum
        - `created_at` number, required — Unix timestamp when the intent was created
        - `created_by_display_name` string, required — Display name of the user who created the intent
        - `created_by_id` string — ID of the user who created the intent. If undefined, the intent was created using the app secret
        - `custom_expiry` boolean, required — Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.
        - `dismissal_reason` string — Human-readable reason for dismissal, present when status is 'dismissed'
        - `dismissed_at` number — Unix timestamp when the intent was dismissed, present when status is 'dismissed'
        - `expires_at` number, required — Unix timestamp when the intent expires
        - `intent_id` string, required — Unique ID for the intent
        - `rejected_at` number — Unix timestamp when the intent was rejected, present when status is 'rejected'
        - `resource_id` string, required — ID of the resource being modified (wallet_id, policy_id, etc)
        - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required — Current status of an intent.
        - `action_result` object — Result of rule execution (only present if status is 'executed' or 'failed')
          - `authorized_by_display_name` string — Display name of the key quorum that authorized execution
          - `authorized_by_id` string — ID of the key quorum that authorized execution
          - `executed_at` number, required — Unix timestamp when the action was executed
          - `status_code` number, required — HTTP status code from the action execution
          - `prior_state` object — State of the rule immediately before execution. Undefined for create intents
            - `action` 'ALLOW' | 'DENY', required — The action to take when a policy rule matches.
            - `conditions` PolicyCondition[], required
              - …
            - `id` string, required
            - `method` 'eth_sendTransaction' | 'eth_signTransaction' | 'eth_signUserOperation' | 'eth_signTypedData_v4' | 'personal_sign' | 'eth_sign7702Authorization' | 'wallet_sendCalls' | 'signTransaction' | 'signAndSendTransaction' | 'signMessage' | 'exportPrivateKey' | 'exportSeedPhrase' | 'signTransactionBytes' | 'signRawMessageBytes' | 'tron_sendTransaction' | 'tron_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'transfer' | '*', required — Method the rule applies to.
            - `name` string, required
          - `response_body` union
            - PolicyRuleResponse — A rule that defines the conditions and action to take if the conditions are true.
              - …
            - SuccessResponse — A simple success response.
              - …
        - `current_resource_data` object — Current state of the rule before any changes. Undefined for create intents or if the rule was deleted
          - `action` 'ALLOW' | 'DENY', required — The action to take when a policy rule matches.
          - `conditions` PolicyCondition[], required
            - union — A condition that must be true for the rule action to be applied.
              - …
          - `id` string, required
          - `method` 'eth_sendTransaction' | 'eth_signTransaction' | 'eth_signUserOperation' | 'eth_signTypedData_v4' | 'personal_sign' | 'eth_sign7702Authorization' | 'wallet_sendCalls' | 'signTransaction' | 'signAndSendTransaction' | 'signMessage' | 'exportPrivateKey' | 'exportSeedPhrase' | 'signTransactionBytes' | 'signRawMessageBytes' | 'tron_sendTransaction' | 'tron_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'transfer' | '*', required — Method the rule applies to.
          - `name` string, required
        - `intent_type` 'RULE', required
        - `policy` object — Parent policy containing this rule, including sibling rules for contextual display
          - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
          - `created_at` number, required — Unix timestamp of when the policy was created in milliseconds.
          - `id` string, required — Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
          - `name` string, required — Name to assign to policy.
          - `owner_id` string, cuid2, required — A unique identifier for a key quorum.
          - `rules` PolicyRuleResponse[], required
            - `action` 'ALLOW' | 'DENY', required — The action to take when a policy rule matches.
            - `conditions` PolicyCondition[], required
              - …
            - `id` string, required
            - `method` 'eth_sendTransaction' | 'eth_signTransaction' | 'eth_signUserOperation' | 'eth_signTypedData_v4' | 'personal_sign' | 'eth_sign7702Authorization' | 'wallet_sendCalls' | 'signTransaction' | 'signAndSendTransaction' | 'signMessage' | 'exportPrivateKey' | 'exportSeedPhrase' | 'signTransactionBytes' | 'signRawMessageBytes' | 'tron_sendTransaction' | 'tron_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'transfer' | '*', required — Method the rule applies to.
            - `name` string, required
          - `version` '1.0', required — Version of the policy. Currently, 1.0 is the only version.
        - `request_details` union, required — The original rule request. Method is POST (create), PATCH (update), or DELETE (delete)
          - object — Request details for creating a rule via intent.
            - `body` PolicyRuleRequestBody, required — The rules that apply to each method the policy covers.
              - …
            - `method` 'POST', required
            - `url` string, required
          - object — Request details for updating a rule via intent.
            - `body` PolicyRuleRequestBody, required — The rules that apply to each method the policy covers.
              - …
            - `method` 'PATCH', required
            - `url` string, required
          - object — Request details for deleting a rule via intent.
            - `body` object — Empty request body for a rule delete intent.
            - `method` 'DELETE', required
            - `url` string, required
      - object — Response for a key quorum intent
        - `authorization_details` IntentAuthorization[], required — Detailed authorization information including key quorum members, thresholds, and signature status
          - `display_name` string — Display name of the key quorum
          - `members` IntentAuthorizationMember[], required — Members in this authorization quorum
            - union — A member of an intent authorization quorum. Can be a user, key, or nested key quorum.
              - …
          - `threshold` number, required — Number of signatures required to satisfy this quorum
        - `created_at` number, required — Unix timestamp when the intent was created
        - `created_by_display_name` string, required — Display name of the user who created the intent
        - `created_by_id` string — ID of the user who created the intent. If undefined, the intent was created using the app secret
        - `custom_expiry` boolean, required — Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.
        - `dismissal_reason` string — Human-readable reason for dismissal, present when status is 'dismissed'
        - `dismissed_at` number — Unix timestamp when the intent was dismissed, present when status is 'dismissed'
        - `expires_at` number, required — Unix timestamp when the intent expires
        - `intent_id` string, required — Unique ID for the intent
        - `rejected_at` number — Unix timestamp when the intent was rejected, present when status is 'rejected'
        - `resource_id` string, required — ID of the resource being modified (wallet_id, policy_id, etc)
        - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required — Current status of an intent.
        - `action_result` object — Result of key quorum update execution (only present if status is 'executed' or 'failed')
          - `authorized_by_display_name` string — Display name of the key quorum that authorized execution
          - `authorized_by_id` string — ID of the key quorum that authorized execution
          - `executed_at` number, required — Unix timestamp when the action was executed
          - `status_code` number, required — HTTP status code from the action execution
          - `prior_state` object, required — State of the key quorum immediately before execution
            - `authorization_keys` AuthorizationKey[], required
              - …
            - `authorization_threshold` number, nullable, required
            - `display_name` string, nullable, required
            - `id` string, cuid2, required
            - `key_quorum_ids` string[] — List of nested key quorum IDs that are members of this key quorum.
            - `user_ids` string[], nullable, required
          - `response_body` KeyQuorum, required — A key quorum for authorizing wallet operations.
            - `authorization_keys` AuthorizationKey[], required
              - …
            - `authorization_threshold` number, nullable, required
            - `display_name` string, nullable, required
            - `id` string, cuid2, required
            - `key_quorum_ids` string[] — List of nested key quorum IDs that are members of this key quorum.
            - `user_ids` string[], nullable, required
        - `current_resource_data` object — Current state of the key quorum before any changes. If undefined, the resource was deleted and no longer exists
          - `authorization_keys` AuthorizationKey[], required
            - `display_name` string, nullable, required
            - `public_key` string, required
          - `authorization_threshold` number, nullable, required
          - `display_name` string, nullable, required
          - `id` string, cuid2, required
          - `key_quorum_ids` string[] — List of nested key quorum IDs that are members of this key quorum.
          - `user_ids` string[], nullable, required
        - `intent_type` 'KEY_QUORUM', required
        - `request_details` object, required — The original key quorum update request that would be sent to the key quorum endpoint
          - `body` object, required — Request input for updating an existing key quorum. At least one field must be provided.
            - `authorization_threshold` number — The number of keys that must sign for an action to be valid. Must be less than or equal to total number of key quorum members.
            - `display_name` string
            - `key_quorum_ids` string[] — List of key quorum IDs that should be members of this key quorum. Key quorums can only be nested 1 level deep.
            - `public_keys` string[] — List of P-256 public keys of the keys that should be authorized to sign on the key quorum, in base64-encoded DER format.
            - `user_ids` string[] — List of user IDs of the users that should be authorized to sign on the key quorum.
          - `method` 'PATCH', required
          - `url` string, required
  - `next_cursor` string, nullable

---

[API](https://skmtc.net/privy-io/apis/privy-api.md) · [All operations](https://skmtc.net/privy-io/apis/privy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/privy-io/privy-api/revisions/bb2eb34156cc/schema)
