---
title: "Reject intent"
method: POST
path: "/v1/intents/{intent_id}/reject"
tags: ["Intents"]
---

# Reject intent

`POST /v1/intents/{intent_id}/reject`

## Request

- Base URL: `https://api.privy.io`
- URL: `https://api.privy.io/v1/intents/{intent_id}/reject`
- Auth: HTTP basic

Reject a pending intent, preventing it from being executed. Can be called by the intent creator (via user token) or with the app secret.

## Path parameters

- `intent_id` string, required: ID of the intent.

## Headers

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

## Response `200`

Rejected intent.

- union: Response for an intent object
  - object: Response for an RPC intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'RPC', required
    - `request_details` object, required: The original RPC request that would be sent to the wallet endpoint
      - `method` 'POST', required
      - `url` string, required
      - `body` union, required: Request body for wallet RPC operations, discriminated by method.
        - object: Executes the EVM `eth_signTransaction` RPC to sign a transaction.
          - `method` 'eth_signTransaction', required
          - `params` EthereumSignTransactionRpcInputParams, required: Parameters for the EVM `eth_signTransaction` RPC.
            - `transaction` union, required: An unsigned Ethereum transaction object. Supports standard EVM transaction types (0, 2, 4) and Tempo transactions (type 118).
              - …
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Executes the EVM `eth_sendTransaction` RPC to sign and broadcast a transaction.
          - `method` 'eth_sendTransaction', required
          - `caip2` string, required: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
          - `params` EthereumSendTransactionRpcInputParams, required: Parameters for the EVM `eth_sendTransaction` RPC.
            - `transaction` union, required: An unsigned Ethereum transaction object. Supports standard EVM transaction types (0, 2, 4) and Tempo transactions (type 118).
              - …
          - `sponsor` boolean
          - `sponsor_options` RpcSponsorOptions: Options for user-pays gas sponsorship on the RPC endpoint. When provided alongside `sponsor: true`, controls which token asset the user pays gas with.
            - `asset` string, required: Token asset identifier for user-pays gas sponsorship. Common values: 'usdc', 'usdt', 'eurc', 'usdg', 'usdc_e'. Available tokens vary by chain.
          - `reference_id` string: Developer-provided identifier for this request. Must be unique per app.
          - `experimental_data_suffix` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Executes the EVM `personal_sign` RPC (EIP-191) to sign a message.
          - `method` 'personal_sign', required
          - `params` EthereumPersonalSignRpcInputParams, required: Parameters for the EVM `personal_sign` RPC.
            - `message` string, required
            - `encoding` union, required
              - …
          - `caip2` string: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
          - `signature_options` SignatureOptions: Options controlling signature production for personal_sign and eth_signTypedData_v4.
            - `type` 'ecdsa' | 'erc1271', required: The type of cryptographic signature to produce. Use "ecdsa" for standard ECDSA signatures, or "erc1271" for ERC-1271 compliant signatures for smart account wallets.
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Executes the EVM `eth_signTypedData_v4` RPC (EIP-712) to sign a typed data object.
          - `method` 'eth_signTypedData_v4', required
          - `params` EthereumSignTypedDataRpcInputParams, required: Parameters for the EVM `eth_signTypedData_v4` RPC.
            - `typed_data` EthereumTypedDataInput, required: EIP-712 typed data object.
              - …
          - `caip2` string: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
          - `signature_options` SignatureOptions: Options controlling signature production for personal_sign and eth_signTypedData_v4.
            - `type` 'ecdsa' | 'erc1271', required: The type of cryptographic signature to produce. Use "ecdsa" for standard ECDSA signatures, or "erc1271" for ERC-1271 compliant signatures for smart account wallets.
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Signs a raw hash on the secp256k1 curve.
          - `method` 'secp256k1_sign', required
          - `params` EthereumSecp256k1SignRpcInputParams, required: Parameters for the EVM `secp256k1_sign` RPC.
            - `hash` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Signs an EIP-7702 authorization.
          - `method` 'eth_sign7702Authorization', required
          - `params` EthereumSign7702AuthorizationRpcInputParams, required: Parameters for the EVM `eth_sign7702Authorization` RPC.
            - `contract` string, required
            - `chain_id` union, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `nonce` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `executor` 'self'
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Executes an RPC method to hash and sign a UserOperation.
          - `method` 'eth_signUserOperation', required
          - `params` EthereumSignUserOperationRpcInputParams, required: Parameters for the EVM `eth_signUserOperation` RPC.
            - `contract` string, required
            - `user_operation` UserOperationInput, required: An ERC-4337 user operation.
              - …
            - `chain_id` union, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Executes the `wallet_sendCalls` RPC (EIP-5792) to batch multiple calls into a single atomic transaction.
          - `method` 'wallet_sendCalls', required
          - `caip2` string, required: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
          - `params` EthereumSendCallsRpcInputParams, required: Parameters for the `wallet_sendCalls` RPC.
            - `calls` EthereumSendCallsCall[], required
              - …
          - `sponsor` boolean
          - `sponsor_options` RpcSponsorOptions: Options for user-pays gas sponsorship on the RPC endpoint. When provided alongside `sponsor: true`, controls which token asset the user pays gas with.
            - `asset` string, required: Token asset identifier for user-pays gas sponsorship. Common values: 'usdc', 'usdt', 'eurc', 'usdg', 'usdc_e'. Available tokens vary by chain.
          - `experimental_data_suffix` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - `address` string
          - `chain_type` 'ethereum'
          - `wallet_id` string
        - object: Executes the Aptos `aptos_signTransaction` RPC to sign a legacy single-signer Ed25519 RawTransaction. The caller is responsible for broadcasting.
          - `method` 'aptos_signTransaction', required
          - `params` AptosSignTransactionRpcInputParams, required: Parameters for the Aptos `aptos_signTransaction` RPC.
            - `transaction` string, required: A non-empty, 0x-prefixed, even-length BCS hex string.
        - object: Executes the SVM `signTransaction` RPC to sign a transaction.
          - `method` 'signTransaction', required
          - `params` SolanaSignTransactionRpcInputParams, required: Parameters for the SVM `signTransaction` RPC.
            - `transaction` string, required
            - `encoding` 'base64', required
          - `address` string
          - `chain_type` 'solana'
          - `wallet_id` string
        - object: Executes the SVM `signAndSendTransaction` RPC to sign and broadcast a transaction.
          - `method` 'signAndSendTransaction', required
          - `caip2` string, required: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
          - `params` SolanaSignAndSendTransactionRpcInputParams, required: Parameters for the SVM `signAndSendTransaction` RPC.
            - `transaction` string, required
            - `encoding` 'base64', required
          - `sponsor` boolean
          - `sponsor_options` RpcSponsorOptions: Options for user-pays gas sponsorship on the RPC endpoint. When provided alongside `sponsor: true`, controls which token asset the user pays gas with.
            - `asset` string, required: Token asset identifier for user-pays gas sponsorship. Common values: 'usdc', 'usdt', 'eurc', 'usdg', 'usdc_e'. Available tokens vary by chain.
          - `reference_id` string: Developer-provided identifier for this request. Must be unique per app.
          - `optimistic_broadcast` boolean
          - `address` string
          - `chain_type` 'solana'
          - `wallet_id` string
        - object: Executes the SVM `signMessage` RPC to sign a message.
          - `method` 'signMessage', required
          - `params` SolanaSignMessageRpcInputParams, required: Parameters for the SVM `signMessage` RPC.
            - `message` string, required
            - `encoding` 'base64', required
          - `address` string
          - `chain_type` 'solana'
          - `wallet_id` string
        - object: Transfers satoshis to a Spark address.
          - `method` 'transfer', required
          - `params` SparkTransferRpcInputParams, required: Parameters for the Spark `transfer` RPC.
            - `receiver_spark_address` string, required
            - `amount_sats` number, required
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Gets the balance of the Spark wallet.
          - `method` 'getBalance', required
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Transfers tokens to a Spark address.
          - `method` 'transferTokens', required
          - `params` SparkTransferTokensRpcInputParams, required: Parameters for the Spark `transferTokens` RPC.
            - `token_identifier` string, required
            - `token_amount` number, required
            - `receiver_spark_address` string, required
            - `output_selection_strategy` 'SMALL_FIRST' | 'LARGE_FIRST': Strategy for selecting outputs in a Spark token transfer.
            - `selected_outputs` OutputWithPreviousTransactionData[]
              - …
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Gets a static deposit address for the Spark wallet.
          - `method` 'getStaticDepositAddress', required
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Gets a quote for claiming a static deposit.
          - `method` 'getClaimStaticDepositQuote', required
          - `params` SparkGetClaimStaticDepositQuoteRpcInputParams, required: Parameters for the Spark `getClaimStaticDepositQuote` RPC.
            - `transaction_id` string, required
            - `output_index` number
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Claims a static deposit into the Spark wallet.
          - `method` 'claimStaticDeposit', required
          - `params` SparkClaimStaticDepositRpcInputParams, required: Parameters for the Spark `claimStaticDeposit` RPC.
            - `transaction_id` string, required
            - `output_index` number
            - `credit_amount_sats` number, required
            - `signature` string, required
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Creates a Lightning invoice for the Spark wallet.
          - `method` 'createLightningInvoice', required
          - `params` SparkCreateLightningInvoiceRpcInputParams, required: Parameters for the Spark `createLightningInvoice` RPC.
            - `amount_sats` number, required
            - `memo` string
            - `expiry_seconds` number
            - `include_spark_address` boolean
            - `receiver_identity_pubkey` string
            - `description_hash` string
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Pays a Lightning invoice from the Spark wallet.
          - `method` 'payLightningInvoice', required
          - `params` SparkPayLightningInvoiceRpcInputParams, required: Parameters for the Spark `payLightningInvoice` RPC.
            - `invoice` string, required
            - `max_fee_sats` number, required
            - `prefer_spark` boolean
            - `amount_sats_to_send` number
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Signs a message with the Spark identity key.
          - `method` 'signMessageWithIdentityKey', required
          - `params` SparkSignMessageWithIdentityKeyRpcInputParams, required: Parameters for the Spark `signMessageWithIdentityKey` RPC.
            - `message` string, required
            - `compact` boolean
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Withdraws from Spark to a Bitcoin L1 address (cooperative exit).
          - `method` 'withdraw', required
          - `params` SparkWithdrawRpcInputParams, required: Parameters for the Spark `withdraw` RPC.
            - `onchain_address` string, required
            - `exit_speed` 'FAST' | 'MEDIUM' | 'SLOW', required: The exit speed for a cooperative withdrawal from Spark to L1.
            - `amount_sats` number
            - `fee_amount_sats` number
            - `fee_quote_id` string
            - `deduct_fee_from_withdrawal_amount` boolean
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Gets a fee quote for withdrawing from Spark to a Bitcoin L1 address.
          - `method` 'getWithdrawalFeeQuote', required
          - `params` SparkGetWithdrawalFeeQuoteRpcInputParams, required: Parameters for the Spark `getWithdrawalFeeQuote` RPC.
            - `amount_sats` number, required
            - `onchain_address` string, required
          - `network` 'MAINNET' | 'REGTEST': The Spark network.
        - object: Executes the Tron `tron_signTransaction` RPC to sign a transaction. The caller is responsible for broadcasting.
          - `method` 'tron_signTransaction', required
          - `params` TronSignTransactionRpcInputParams, required: Parameters for the Tron `tron_signTransaction` RPC.
            - `raw_data` TronRawDataForSign, required: Tron raw_data for tron_signTransaction. Block reference fields are required; caller is responsible for fetching them.
              - …
        - object: Executes the Tron `tron_sendTransaction` RPC to sign and broadcast a transaction.
          - `method` 'tron_sendTransaction', required
          - `caip2` string: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
          - `params` TronSendTransactionRpcInputParams, required: Parameters for the Tron `tron_sendTransaction` RPC.
            - `raw_data` TronRawDataForSend, required: Tron raw_data for tron_sendTransaction. Block reference fields are optional; Privy fetches fresh values if omitted.
              - …
            - `reference_id` string
        - object: Executes the XRPL `xrpl_signTransaction` RPC to sign a transaction. The caller is responsible for broadcasting.
          - `method` 'xrpl_signTransaction', required
          - `params` XrplSignTransactionRpcInputParams, required: Parameters for the XRPL `xrpl_signTransaction` RPC.
            - `transaction` string, required
            - `encoding` 'hex', required
        - object: Executes the NEAR `near_signTransaction` RPC to sign a transaction. The caller is responsible for broadcasting.
          - `method` 'near_signTransaction', required
          - `params` NearSignTransactionRpcRequestBodyParams, required: Parameters for the NEAR `near_signTransaction` RPC.
            - `transaction` string, required: A non-empty, base64-encoded Borsh NEAR Transaction.
        - object: Exports the private key of the wallet.
          - `address` string, required
          - `method` 'exportPrivateKey', required
          - `params` PrivateKeyExportInput, required: Input for exporting a wallet (private key or seed phrase) with HPKE encryption.
            - `encryption_type` 'HPKE', required: The encryption type of the wallet to import. Currently only supports `HPKE`.
            - `recipient_public_key` union, required: The recipient public key for HPKE encryption, in PEM or DER (base64-encoded) format.
              - …
            - `export_type` 'display' | 'client': The export type. 'display' is for showing the key to the user in the UI, 'client' is for exporting to the client application.
            - `export_seed_phrase` boolean
        - object: Exports the seed phrase of the wallet.
          - `address` string, required
          - `method` 'exportSeedPhrase', required
          - `params` SeedPhraseExportInput, required: Input for exporting a wallet (private key or seed phrase) with HPKE encryption.
            - `encryption_type` 'HPKE', required: The encryption type of the wallet to import. Currently only supports `HPKE`.
            - `recipient_public_key` union, required: The recipient public key for HPKE encryption, in PEM or DER (base64-encoded) format.
              - …
            - `export_type` 'display' | 'client': The export type. 'display' is for showing the key to the user in the UI, 'client' is for exporting to the client application.
            - `export_seed_phrase` boolean
    - `current_resource_data` object: Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
      - `id` string, required: Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
      - `address` string, required: Address of the wallet.
      - `display_name` string: A human-readable label for the wallet.
      - `external_id` string: A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed once set.
      - `public_key` string: The compressed, raw public key for the wallet along the chain cryptographic curve.
      - `created_at` number, required: Unix timestamp of when the wallet was created in milliseconds.
      - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
      - `policy_ids` string[], required: List of policy IDs for policies that are enforced on the wallet.
      - `owner_id` string, cuid2, nullable, required: The key quorum ID of the owner of the wallet.
      - `parent_wallet_id` string, nullable: ID of the HD root wallet this wallet was derived from, or null if it was not derived from another wallet.
      - `entity` WalletEntity: The entity a wallet is attributed to.
        - `id` string, required: A Privy entity ID.
        - `type` 'user' | 'organization', required: The type of entity a wallet is attributed to.
      - `additional_signers` WalletAdditionalSignerItem[], required: Additional signers for the wallet.
        - `signer_id` string, cuid2, required: A unique identifier for a key quorum.
        - `override_policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
      - `exported_at` number, nullable, required: Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
      - `imported_at` number, nullable, required: Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
      - `authorization_threshold` number: The number of keys that must sign for an action to be valid.
      - `automations` AttachedWalletAutomation[]: Automations attached to the wallet, including disabled ones.
        - `id` string, required: ID of the automation.
        - `enabled` boolean, required: Whether this attachment is currently active — true only if both the attachment and the underlying automation are enabled.
      - `archived_at` number, nullable: Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
      - `chain` 'base' | 'solana' | 'tempo': The chain of this wallet, only present for custodial wallets.
      - `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.
    - `action_result` object: Result of RPC execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` union, required: Response body for wallet RPC operations, discriminated by method.
        - object: Response to the EVM `personal_sign` RPC.
          - `method` 'personal_sign', required
          - `data` EthereumPersonalSignRpcResponseData, required: Data returned by the EVM `personal_sign` RPC.
            - `signature` string, required
            - `encoding` 'hex', required
        - object: Response to the EVM `eth_signTypedData_v4` RPC.
          - `method` 'eth_signTypedData_v4', required
          - `data` EthereumSignTypedDataRpcResponseData, required: Data returned by the EVM `eth_signTypedData_v4` RPC.
            - `signature` string, required
            - `encoding` 'hex', required
        - object: Response to the EVM `eth_signTransaction` RPC.
          - `method` 'eth_signTransaction', required
          - `data` EthereumSignTransactionRpcResponseData, required: Data returned by the EVM `eth_signTransaction` RPC.
            - `signed_transaction` string, required
            - `encoding` 'rlp', required
        - object: Response to the EVM `eth_sendTransaction` RPC.
          - `method` 'eth_sendTransaction', required
          - `data` EthereumSendTransactionRpcResponseData, required: Data returned by the EVM `eth_sendTransaction` RPC.
            - `transaction_id` string
            - `hash` string, required
            - `caip2` string, required: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
            - `transaction_request` union: An unsigned Ethereum transaction object. Supports standard EVM transaction types (0, 2, 4) and Tempo transactions (type 118).
              - …
            - `user_operation_hash` string
            - `reference_id` string, nullable: Developer-provided reference ID, if one was included in the request.
        - object: Response to the EVM `eth_signUserOperation` RPC.
          - `method` 'eth_signUserOperation', required
          - `data` EthereumSignUserOperationRpcResponseData, required: Data returned by the EVM `eth_signUserOperation` RPC.
            - `signature` string, required
            - `encoding` 'hex', required
        - object: Response to the EVM `eth_sign7702Authorization` RPC.
          - `method` 'eth_sign7702Authorization', required
          - `data` EthereumSign7702AuthorizationRpcResponseData, required: Data returned by the EVM `eth_sign7702Authorization` RPC.
            - `authorization` EthereumSign7702Authorization, required: A signed EIP-7702 authorization that delegates code execution to a contract address.
              - …
        - object: Response to the EVM `secp256k1_sign` RPC.
          - `method` 'secp256k1_sign', required
          - `data` EthereumSecp256k1SignRpcResponseData, required: Data returned by the EVM `secp256k1_sign` RPC.
            - `signature` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `encoding` 'hex', required
        - object: Response to the `wallet_sendCalls` RPC.
          - `method` 'wallet_sendCalls', required
          - `data` EthereumSendCallsRpcResponseData, required: Data returned by the `wallet_sendCalls` RPC.
            - `transaction_id` string, required
            - `caip2` string, required: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
        - object: Response to the Aptos `aptos_signTransaction` RPC.
          - `method` 'aptos_signTransaction', required
          - `data` AptosSignTransactionRpcResponseData, required: Data returned by the Aptos `aptos_signTransaction` RPC.
            - `signed_transaction` string, required: A non-empty, 0x-prefixed, even-length BCS legacy Ed25519 SignedTransaction.
            - `encoding` 'hex', required
        - object: Response to the SVM `signMessage` RPC.
          - `method` 'signMessage', required
          - `data` SolanaSignMessageRpcResponseData, required: Data returned by the SVM `signMessage` RPC.
            - `signature` string, required
            - `encoding` 'base64', required
        - object: Response to the SVM `signTransaction` RPC.
          - `method` 'signTransaction', required
          - `data` SolanaSignTransactionRpcResponseData, required: Data returned by the SVM `signTransaction` RPC.
            - `signed_transaction` string, required
            - `encoding` 'base64', required
        - object: Response to the SVM `signAndSendTransaction` RPC.
          - `method` 'signAndSendTransaction', required
          - `data` SolanaSignAndSendTransactionRpcResponseData, required: Data returned by the SVM `signAndSendTransaction` RPC.
            - `transaction_id` string
            - `hash` string, required
            - `caip2` string, required: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
            - `reference_id` string, nullable: Developer-provided reference ID, if one was included in the request.
            - `signed_transaction` string
        - object: Response to the Spark `transfer` RPC.
          - `method` 'transfer', required
          - `data` SparkTransfer: A Spark transfer.
            - `id` string, required
            - `sender_identity_public_key` string, required
            - `receiver_identity_public_key` string, required
            - `status` string, required
            - `total_value` number, required
            - `expiry_time` string
            - `leaves` SparkTransferLeaf[], required
              - …
            - `created_time` string
            - `updated_time` string
            - `type` string, required
            - `transfer_direction` string, required
        - object: Response to the Spark `getBalance` RPC.
          - `method` 'getBalance', required
          - `data` SparkBalance: The balance of a Spark wallet.
            - `balance` string, required
            - `token_balances` object, required
        - object: Response to the Spark `transferTokens` RPC.
          - `method` 'transferTokens', required
          - `data` SparkTransferTokensRpcResponseData: Data returned by the Spark `transferTokens` RPC.
            - `id` string, required
        - object: Response to the Spark `getStaticDepositAddress` RPC.
          - `method` 'getStaticDepositAddress', required
          - `data` SparkGetStaticDepositAddressRpcResponseData: Data returned by the Spark `getStaticDepositAddress` RPC.
            - `address` string, required
        - object: Response to the Spark `getClaimStaticDepositQuote` RPC.
          - `method` 'getClaimStaticDepositQuote', required
          - `data` SparkGetClaimStaticDepositQuoteRpcResponseData: Data returned by the Spark `getClaimStaticDepositQuote` RPC.
            - `transaction_id` string, required
            - `output_index` number, required
            - `network` string, required
            - `credit_amount_sats` number, required
            - `signature` string, required
        - object: Response to the Spark `claimStaticDeposit` RPC.
          - `method` 'claimStaticDeposit', required
          - `data` SparkClaimStaticDepositRpcResponseData: Data returned by the Spark `claimStaticDeposit` RPC.
            - `transfer_id` string, required
        - object: Response to the Spark `createLightningInvoice` RPC.
          - `method` 'createLightningInvoice', required
          - `data` SparkLightningReceiveRequest: A Spark Lightning receive request.
            - `id` string, required
            - `created_at` string, required
            - `updated_at` string, required
            - `network` string, required
            - `invoice` unknown
            - `status` string, required
            - `typename` string, required
            - `transfer` unknown
            - `payment_preimage` string
            - `receiver_identity_public_key` string
        - object: Response to the Spark `payLightningInvoice` RPC.
          - `method` 'payLightningInvoice', required
          - `data` union
            - SparkTransfer: A Spark transfer.
              - …
            - SparkLightningSendRequest: A Spark Lightning send request.
              - …
        - object: Response to the Spark `signMessageWithIdentityKey` RPC.
          - `method` 'signMessageWithIdentityKey', required
          - `data` SparkSignMessageWithIdentityKeyRpcResponseData: Data returned by the Spark `signMessageWithIdentityKey` RPC.
            - `signature` string, required
        - object: Response to the Spark `withdraw` RPC.
          - `method` 'withdraw', required
          - `data` SparkCoopExitRequest: A cooperative exit request from Spark to Bitcoin L1.
            - `id` string, required
            - `created_at` string, required
            - `updated_at` string, required
            - `network` string, required
            - `fee` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `l1_broadcast_fee` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `status` string, required
            - `expires_at` string, required
            - `coop_exit_txid` string, required
            - `fee_quote_id` string
            - `exit_speed` 'FAST' | 'MEDIUM' | 'SLOW': The exit speed for a cooperative withdrawal from Spark to L1.
        - object: Response to the Spark `getWithdrawalFeeQuote` RPC.
          - `method` 'getWithdrawalFeeQuote', required
          - `data` SparkCoopExitFeeQuote: A fee quote for a cooperative exit from Spark to Bitcoin L1.
            - `id` string, required
            - `created_at` string, required
            - `updated_at` string, required
            - `network` string, required
            - `total_amount` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `user_fee_fast` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `user_fee_medium` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `user_fee_slow` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `l1_broadcast_fee_fast` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `l1_broadcast_fee_medium` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `l1_broadcast_fee_slow` SparkCurrencyAmount, required: A currency amount with its original value and unit.
              - …
            - `expires_at` string, required
        - object: Response to the Tron `tron_signTransaction` RPC.
          - `method` 'tron_signTransaction', required
          - `data` TronSignTransactionRpcResponseData, required: Data returned by the Tron `tron_signTransaction` RPC.
            - `signed_transaction` string, required
            - `encoding` 'hex', required
        - object: Response to the Tron `tron_sendTransaction` RPC.
          - `method` 'tron_sendTransaction', required
          - `data` TronSendTransactionRpcResponseData, required: Data returned by the Tron `tron_sendTransaction` RPC.
            - `hash` string, required
            - `caip2` string, required: A valid CAIP-2 chain ID (e.g. 'eip155:4217' for Tempo, 'eip155:1' for Ethereum).
            - `transaction_id` string, required
            - `reference_id` string
        - object: Response to the XRPL `xrpl_signTransaction` RPC.
          - `method` 'xrpl_signTransaction', required
          - `data` XrplSignTransactionRpcResponseData, required: Data returned by the XRPL `xrpl_signTransaction` RPC.
            - `txn_signature` string, required
            - `signed_transaction` string, required
            - `encoding` 'hex', required
        - object: Response to the NEAR `near_signTransaction` RPC.
          - `method` 'near_signTransaction', required
          - `data` NearSignTransactionRpcResponseData, required: Data returned by the NEAR `near_signTransaction` RPC.
            - `signed_transaction` string, required: A non-empty, base64-encoded NEAR Ed25519 SignedTransaction.
            - `encoding` 'base64', required
        - object: Response to the `exportPrivateKey` RPC.
          - `method` 'exportPrivateKey', required
          - `data` PrivateKeyExportInput, required: Input for exporting a wallet (private key or seed phrase) with HPKE encryption.
            - `encryption_type` 'HPKE', required: The encryption type of the wallet to import. Currently only supports `HPKE`.
            - `recipient_public_key` union, required: The recipient public key for HPKE encryption, in PEM or DER (base64-encoded) format.
              - …
            - `export_type` 'display' | 'client': The export type. 'display' is for showing the key to the user in the UI, 'client' is for exporting to the client application.
            - `export_seed_phrase` boolean
        - object: Response to the `exportSeedPhrase` RPC.
          - `method` 'exportSeedPhrase', required
          - `data` SeedPhraseExportResponse, required: Response containing HPKE-encrypted wallet data (private key or seed phrase).
            - `encryption_type` 'HPKE', required: The encryption type of the wallet to import. Currently only supports `HPKE`.
            - `ciphertext` string, required
            - `encapsulated_key` string, required
  - object: Response for a transfer intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'TRANSFER', required
    - `request_details` object, required: The original transfer request that would be sent to the wallet transfer endpoint
      - `method` 'POST', required
      - `url` string, required
      - `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.
        - `source` union, required: The source asset, amount, and chain for a token transfer. Specify either `asset` (named) or `asset_address` (custom), not both.
          - object: Source for a transfer identified by a named asset (e.g. "usdc", "eth"). Use this variant for first-class assets maintained by Privy.
            - `amount` string: Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC, "0.01" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters. Deprecated: use the top-level `amount` field instead.
            - `chain` string, required: The blockchain network on which to perform the transfer. Supported chains include: 'tempo', 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets.
            - `asset` string, required: The asset to transfer. Supported: 'usdc', 'usdb', 'usdt', 'eurc', 'ousd', 'pathusd' (stablecoins), 'eth' (native Ethereum), 'sol' (native Solana).
          - object: Source for a transfer identified by a token contract address (EVM) or mint address (Solana). Use this variant for tokens that are not first-class assets.
            - `amount` string: Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC, "0.01" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters. Deprecated: use the top-level `amount` field instead.
            - `chain` string, required: The blockchain network on which to perform the transfer. Supported chains include: 'tempo', 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets.
            - `asset_address` union, required: The token contract address (EVM) or mint address (Solana) of the asset to transfer.
              - …
        - `destination` TokenTransferDestination, required: The destination address for a token transfer. Optionally specify a different asset or chain for cross-asset or cross-chain transfers.
          - `address` union, required: Recipient address (hex for EVM, base58 for Solana, base58check for Tron)
            - string
            - string
            - string: Tron address: base58check-encoded, starting with T, 34 characters.
          - `asset` string: The destination asset. Required for cross-asset transfers (e.g., source 'usdt' to destination 'usdc').
          - `chain` string: The destination blockchain network. Required for cross-chain transfers (e.g., source 'tempo' to destination 'base').
        - `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.
        - `fee_configuration` object: Optional fee configuration for the transfer. If omitted, cross-chain transfers will not charge additional fees.
          - `type` 'total_fee_bps', required: Discriminator: total fee specified in BPS.
          - `value` integer, required: Total fee in basis points (1 bps = 0.01%).
        - `custody_options` TransferCustodyOptions: Options for a transfer from a custodial wallet.
          - `initiation` TransferInitiation, required: Payment initiation context for transfers sourced from wallets that require initiation data. Captures how the payment was initiated (channel and subchannel) and whether Strong Customer Authentication was applied or which SCA exemption was used.
            - `channel` union, required: How the payment was initiated. Use `p2p_mobile_payment` for peer-to-peer transfers initiated on a mobile device; `other_mobile_payment` for non-P2P mobile-initiated payments (e.g. a merchant payment via a mobile app); `other` for payments not relying on a mobile device.
              - …
            - `subchannel` union, required: Whether the payment was made remotely or in person. Use `remote` for payments initiated from a distance (mobile app, online banking, or e-commerce checkout); `non_remote` for payments made in person (physical card, payment terminal, or contactless tap).
              - …
            - `attestations` TransferInitiationAttestations, required: Payment initiation attestations for a transfer.
              - …
        - `nonce` string: Unique caller-generated nonce used to prevent replaying a signed wallet action request. Must be at least 24 characters (e.g. a cuid2 or UUID).
        - `reference_id` string: Developer-provided identifier for this request. Must be unique per app.
    - `current_resource_data` object: Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
      - `id` string, required: Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
      - `address` string, required: Address of the wallet.
      - `display_name` string: A human-readable label for the wallet.
      - `external_id` string: A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed once set.
      - `public_key` string: The compressed, raw public key for the wallet along the chain cryptographic curve.
      - `created_at` number, required: Unix timestamp of when the wallet was created in milliseconds.
      - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
      - `policy_ids` string[], required: List of policy IDs for policies that are enforced on the wallet.
      - `owner_id` string, cuid2, nullable, required: The key quorum ID of the owner of the wallet.
      - `parent_wallet_id` string, nullable: ID of the HD root wallet this wallet was derived from, or null if it was not derived from another wallet.
      - `entity` WalletEntity: The entity a wallet is attributed to.
        - `id` string, required: A Privy entity ID.
        - `type` 'user' | 'organization', required: The type of entity a wallet is attributed to.
      - `additional_signers` WalletAdditionalSignerItem[], required: Additional signers for the wallet.
        - `signer_id` string, cuid2, required: A unique identifier for a key quorum.
        - `override_policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
      - `exported_at` number, nullable, required: Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
      - `imported_at` number, nullable, required: Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
      - `authorization_threshold` number: The number of keys that must sign for an action to be valid.
      - `automations` AttachedWalletAutomation[]: Automations attached to the wallet, including disabled ones.
        - `id` string, required: ID of the automation.
        - `enabled` boolean, required: Whether this attachment is currently active — true only if both the attachment and the underlying automation are enabled.
      - `archived_at` number, nullable: Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
      - `chain` 'base' | 'solana' | 'tempo': The chain of this wallet, only present for custodial wallets.
      - `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.
    - `action_result` object: Result of transfer execution (only present if intent status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` TransferActionResponse, required: Response for a transfer action.
        - `id` string, required: The ID of the wallet action.
        - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required: The current status of the wallet action.
        - `wallet_id` string, required: The ID of the wallet involved in the action.
        - `created_at` string, date-time, required: ISO 8601 timestamp of when the wallet action was created.
        - `reference_id` string, nullable: Developer-provided reference ID, if one was included in the request.
        - `failure_reason` object: Top-level failure context for the wallet action. Present on rejected or failed actions when available.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `steps` WalletActionStep[]: The steps of the wallet action. Only returned if `?include=steps` is provided.
          - union: A step within a wallet action, representing a single onchain action.
            - object: A wallet action step consisting of an EVM transaction.
              - …
            - object: A wallet action step consisting of an EVM user operation.
              - …
            - object: A wallet action step consisting of an SVM (Solana) transaction.
              - …
            - object: A wallet action step consisting of a TVM (Tron) transaction.
              - …
            - object: A wallet action step representing a cross-chain/cross-asset fill by an external provider.
              - …
            - object: A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
              - …
            - object: A wallet action step representing a Tempo Zone settlement on its parent chain.
              - …
        - `type` 'transfer', required
        - `amount_type` 'exact_input' | 'exact_output': Whether the amount refers to the input token or output token.
        - `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_amount` string: Decimal amount sent on the source chain (e.g. "1.5"). For exact_output cross-chain transfers, null until fill confirmation.
        - `source_chain` string, required: Chain name (e.g. "tempo", "base").
        - `destination_address` string, required: Recipient address.
        - `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.
        - `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.
        - `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.
          - union: An individual fee assessed on a transfer.
            - object: Estimated fee paid to the relayer.
              - …
            - object: Estimated fee paid to Privy.
              - …
            - object: Estimated fee paid to the developer.
              - …
        - `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.
          - `base_amount` string, required: Gas cost in the gas token's base units (e.g. wei).
          - `amount` string, required: Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
          - `gas_asset` string, required: Gas token symbol (e.g. "ETH", "USDC").
        - `fees` FeeLineItem[], nullable: Actual fees paid for the transfer. Populated after on-chain confirmation. Only present for cross-chain transfers.
          - union: An individual fee assessed on a transfer.
            - object: Estimated fee paid to the relayer.
              - …
            - object: Estimated fee paid to Privy.
              - …
            - object: Estimated fee paid to the developer.
              - …
        - `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.
          - `base_amount` string, required: Gas cost in the gas token's base units (e.g. wei).
          - `amount` string, required: Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
          - `gas_asset` string, required: Gas token symbol (e.g. "ETH", "USDC").
  - object: Response for a raw sign intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'RAW_SIGN', required
    - `request_details` object, required: The original raw sign request that would be sent to the wallet endpoint
      - `method` 'POST', required
      - `url` string, required
      - `body` RawSignInput, required: Provide either `hash` (to sign a pre-computed hash) OR `bytes`, `encoding`, and `hash_function` (to hash and then sign). These options are mutually exclusive.
        - `params` union, required: Parameters for the `raw_sign` RPC.
          - object: Parameters for signing a pre-computed hash with the `raw_sign` RPC.
            - `hash` string, required: The hash to sign.
          - object: Parameters for hashing and signing bytes with the `raw_sign` RPC.
            - `bytes` string, required: The bytes to hash and sign.
            - `encoding` 'utf-8' | 'hex' | 'base64', required: Encoding scheme for the bytes.
            - `hash_function` 'keccak256' | 'sha256' | 'blake2b256', required: Hash function to use for the bytes.
    - `current_resource_data` object: Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
      - `id` string, required: Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
      - `address` string, required: Address of the wallet.
      - `display_name` string: A human-readable label for the wallet.
      - `external_id` string: A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed once set.
      - `public_key` string: The compressed, raw public key for the wallet along the chain cryptographic curve.
      - `created_at` number, required: Unix timestamp of when the wallet was created in milliseconds.
      - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
      - `policy_ids` string[], required: List of policy IDs for policies that are enforced on the wallet.
      - `owner_id` string, cuid2, nullable, required: The key quorum ID of the owner of the wallet.
      - `parent_wallet_id` string, nullable: ID of the HD root wallet this wallet was derived from, or null if it was not derived from another wallet.
      - `entity` WalletEntity: The entity a wallet is attributed to.
        - `id` string, required: A Privy entity ID.
        - `type` 'user' | 'organization', required: The type of entity a wallet is attributed to.
      - `additional_signers` WalletAdditionalSignerItem[], required: Additional signers for the wallet.
        - `signer_id` string, cuid2, required: A unique identifier for a key quorum.
        - `override_policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
      - `exported_at` number, nullable, required: Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
      - `imported_at` number, nullable, required: Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
      - `authorization_threshold` number: The number of keys that must sign for an action to be valid.
      - `automations` AttachedWalletAutomation[]: Automations attached to the wallet, including disabled ones.
        - `id` string, required: ID of the automation.
        - `enabled` boolean, required: Whether this attachment is currently active — true only if both the attachment and the underlying automation are enabled.
      - `archived_at` number, nullable: Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
      - `chain` 'base' | 'solana' | 'tempo': The chain of this wallet, only present for custodial wallets.
      - `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.
    - `action_result` object: Result of raw sign execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` RawSignResponse, required: Response to the `raw_sign` RPC.
        - `method` 'raw_sign', required
        - `data` RawSignResponseData, required: Data returned by the `raw_sign` RPC.
          - `signature` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - `encoding` 'hex', required
  - object: Response for a wallet intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'WALLET', required
    - `request_details` object, required: The original wallet update request that would be sent to the wallet endpoint
      - `method` 'PATCH', required
      - `url` string, required
      - `body` object, required
        - `display_name` string, nullable
        - `external_id` string
        - `policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
        - `authorization_key_ids` string[]
        - `authorization_threshold` number
        - `additional_signers` AdditionalSignerItemInput[]: Additional signers for the wallet.
          - `signer_id` string, cuid2, required: A unique identifier for a key quorum.
          - `override_policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
        - `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.
          - object: Owner input specifying a Privy user ID.
            - `user_id` string, required
          - object: Owner input specifying a P-256 public key.
            - `public_key` string, required: A P-256 (secp256r1) public key.
        - `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.
    - `current_resource_data` object: Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
      - `id` string, required: Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
      - `address` string, required: Address of the wallet.
      - `display_name` string: A human-readable label for the wallet.
      - `external_id` string: A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed once set.
      - `public_key` string: The compressed, raw public key for the wallet along the chain cryptographic curve.
      - `created_at` number, required: Unix timestamp of when the wallet was created in milliseconds.
      - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
      - `policy_ids` string[], required: List of policy IDs for policies that are enforced on the wallet.
      - `owner_id` string, cuid2, nullable, required: The key quorum ID of the owner of the wallet.
      - `parent_wallet_id` string, nullable: ID of the HD root wallet this wallet was derived from, or null if it was not derived from another wallet.
      - `entity` WalletEntity: The entity a wallet is attributed to.
        - `id` string, required: A Privy entity ID.
        - `type` 'user' | 'organization', required: The type of entity a wallet is attributed to.
      - `additional_signers` WalletAdditionalSignerItem[], required: Additional signers for the wallet.
        - `signer_id` string, cuid2, required: A unique identifier for a key quorum.
        - `override_policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
      - `exported_at` number, nullable, required: Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
      - `imported_at` number, nullable, required: Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
      - `authorization_threshold` number: The number of keys that must sign for an action to be valid.
      - `automations` AttachedWalletAutomation[]: Automations attached to the wallet, including disabled ones.
        - `id` string, required: ID of the automation.
        - `enabled` boolean, required: Whether this attachment is currently active — true only if both the attachment and the underlying automation are enabled.
      - `archived_at` number, nullable: Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
      - `chain` 'base' | 'solana' | 'tempo': The chain of this wallet, only present for custodial wallets.
      - `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.
    - `action_result` object: Result of wallet update execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` Wallet, required: A wallet managed by Privy's wallet infrastructure.
        - `id` string, required: Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
        - `address` string, required: Address of the wallet.
        - `display_name` string: A human-readable label for the wallet.
        - `external_id` string: A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed once set.
        - `public_key` string: The compressed, raw public key for the wallet along the chain cryptographic curve.
        - `created_at` number, required: Unix timestamp of when the wallet was created in milliseconds.
        - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
        - `policy_ids` string[], required: List of policy IDs for policies that are enforced on the wallet.
        - `owner_id` string, cuid2, nullable, required: The key quorum ID of the owner of the wallet.
        - `parent_wallet_id` string, nullable: ID of the HD root wallet this wallet was derived from, or null if it was not derived from another wallet.
        - `entity` WalletEntity: The entity a wallet is attributed to.
          - `id` string, required: A Privy entity ID.
          - `type` 'user' | 'organization', required: The type of entity a wallet is attributed to.
        - `additional_signers` WalletAdditionalSignerItem[], required: Additional signers for the wallet.
          - `signer_id` string, cuid2, required: A unique identifier for a key quorum.
          - `override_policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
        - `exported_at` number, nullable, required: Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
        - `imported_at` number, nullable, required: Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
        - `authorization_threshold` number: The number of keys that must sign for an action to be valid.
        - `automations` AttachedWalletAutomation[]: Automations attached to the wallet, including disabled ones.
          - `id` string, required: ID of the automation.
          - `enabled` boolean, required: Whether this attachment is currently active — true only if both the attachment and the underlying automation are enabled.
        - `archived_at` number, nullable: Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
        - `chain` 'base' | 'solana' | 'tempo': The chain of this wallet, only present for custodial wallets.
        - `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.
      - `prior_state` object, required: State of the wallet immediately before execution
        - `id` string, required: Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
        - `address` string, required: Address of the wallet.
        - `display_name` string: A human-readable label for the wallet.
        - `external_id` string: A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed once set.
        - `public_key` string: The compressed, raw public key for the wallet along the chain cryptographic curve.
        - `created_at` number, required: Unix timestamp of when the wallet was created in milliseconds.
        - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
        - `policy_ids` string[], required: List of policy IDs for policies that are enforced on the wallet.
        - `owner_id` string, cuid2, nullable, required: The key quorum ID of the owner of the wallet.
        - `parent_wallet_id` string, nullable: ID of the HD root wallet this wallet was derived from, or null if it was not derived from another wallet.
        - `entity` WalletEntity: The entity a wallet is attributed to.
          - `id` string, required: A Privy entity ID.
          - `type` 'user' | 'organization', required: The type of entity a wallet is attributed to.
        - `additional_signers` WalletAdditionalSignerItem[], required: Additional signers for the wallet.
          - `signer_id` string, cuid2, required: A unique identifier for a key quorum.
          - `override_policy_ids` string[]: An optional list of up to one policy ID to enforce on the wallet.
        - `exported_at` number, nullable, required: Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
        - `imported_at` number, nullable, required: Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
        - `authorization_threshold` number: The number of keys that must sign for an action to be valid.
        - `automations` AttachedWalletAutomation[]: Automations attached to the wallet, including disabled ones.
          - `id` string, required: ID of the automation.
          - `enabled` boolean, required: Whether this attachment is currently active — true only if both the attachment and the underlying automation are enabled.
        - `archived_at` number, nullable: Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
        - `chain` 'base' | 'solana' | 'tempo': The chain of this wallet, only present for custodial wallets.
        - `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.
  - object: Response for a policy intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'POLICY', required
    - `current_resource_data` object: Current state of the policy before any changes. If undefined, the resource was deleted and no longer exists
      - `version` '1.0', required: Version of the policy. Currently, 1.0 is the only version.
      - `name` string, required: Name to assign to the policy, up to 100 characters.
      - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
      - `id` string, required: Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
      - `owner_id` string, cuid2, required: A unique identifier for a key quorum.
      - `created_at` number, required: Unix timestamp of when the policy was created in milliseconds.
      - `rules` PolicyRuleResponse[], required
        - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
        - `conditions` PolicyCondition[], required
          - union: A condition that must be true for the rule action to be applied.
            - object: The verbatim Ethereum transaction object in an eth_signTransaction or eth_sendTransaction request.
              - …
            - object: The decoded calldata in a smart contract interaction as the smart contract method's parameters. Note that 'ethereum_calldata' conditions must contain an abi parameter with the JSON ABI of the smart contract.
              - …
            - object: Attributes from the signing domain that will verify the signature.
              - …
            - object: 'types' and 'primary_type' attributes of the TypedData JSON object defined in EIP-712.
              - …
            - object: Allowed contract addresses for eth_sign7702Authorization requests.
              - …
            - object: A Tempo (type 118) transaction-level field. Evaluated once per transaction (not per call).
              - …
            - object: Solana Program attributes, enables allowlisting Solana Programs.
              - …
            - object: Solana instruction arguments and named accounts interpreted using an inline Anchor IDL.
              - …
            - object: Solana System Program attributes, including more granular Transfer instruction fields.
              - …
            - object: Solana Token Program attributes, including more granular TransferChecked instruction fields.
              - …
            - object: System attributes, including current unix timestamp (in seconds).
              - …
            - object: TRON transaction fields for TransferContract and TriggerSmartContract transaction types.
              - …
            - object: Decoded calldata from a TRON TriggerSmartContract interaction.
              - …
            - object: Policy condition evaluated against decoded XRPL transaction fields.
              - …
            - object: SUI transaction command attributes, enables allowlisting specific command types. Allowed commands: 'TransferObjects', 'SplitCoins', 'MergeCoins'. Only 'eq' and 'in' operators are supported.
              - …
            - object: SUI TransferObjects command attributes, including recipient and amount fields.
              - …
            - object: Condition on the original wallet action API request body fields.
              - …
            - object: Condition referencing an aggregation value. The field must start with "aggregation." followed by the aggregation ID.
              - …
            - object: Condition on the message being signed (e.g. in personal_sign).
              - …
        - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
        - `id` string, required
    - `request_details` union, required: The original policy request. Method is PATCH (update) or DELETE (delete).
      - object: Request details for a policy intent.
        - `method` 'PATCH', required
        - `url` string, required
        - `body` object, required
          - `name` string: Name to assign to the policy, up to 100 characters.
          - `rules` PolicyRuleRequestBody[]
            - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
            - `conditions` PolicyCondition[], required
              - …
            - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
          - `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.
            - object: Owner input specifying a Privy user ID.
              - …
            - object: Owner input specifying a P-256 public key.
              - …
          - `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.
      - object: Request details for deleting a policy via intent.
        - `method` 'DELETE', required
        - `url` string, required
        - `body` object: Empty request body for a policy delete intent.
    - `action_result` object: Result of policy execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` union, required
        - Policy: A policy for controlling wallet operations.
          - `version` '1.0', required: Version of the policy. Currently, 1.0 is the only version.
          - `name` string, required: Name to assign to the policy, up to 100 characters.
          - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
          - `id` string, required: Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
          - `owner_id` string, cuid2, required: A unique identifier for a key quorum.
          - `created_at` number, required: Unix timestamp of when the policy was created in milliseconds.
          - `rules` PolicyRuleResponse[], required
            - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
            - `conditions` PolicyCondition[], required
              - …
            - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
            - `id` string, required
        - SuccessResponse: A simple success response.
          - `success` boolean, required
      - `prior_state` object, required: State of the policy immediately before execution
        - `version` '1.0', required: Version of the policy. Currently, 1.0 is the only version.
        - `name` string, required: Name to assign to the policy, up to 100 characters.
        - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
        - `id` string, required: Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
        - `owner_id` string, cuid2, required: A unique identifier for a key quorum.
        - `created_at` number, required: Unix timestamp of when the policy was created in milliseconds.
        - `rules` PolicyRuleResponse[], required
          - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
          - `conditions` PolicyCondition[], required
            - union: A condition that must be true for the rule action to be applied.
              - …
          - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
          - `id` string, required
  - object: Response for a rule intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'RULE', required
    - `current_resource_data` object: Current state of the rule before any changes. Undefined for create intents or if the rule was deleted
      - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
      - `conditions` PolicyCondition[], required
        - union: A condition that must be true for the rule action to be applied.
          - object: The verbatim Ethereum transaction object in an eth_signTransaction or eth_sendTransaction request.
            - `field_source` 'ethereum_transaction', required
            - `field` 'to' | 'value' | 'chain_id' | 'data_byte_length', required: Ethereum transaction-level fields that can be referenced in a policy condition.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: The decoded calldata in a smart contract interaction as the smart contract method's parameters. Note that 'ethereum_calldata' conditions must contain an abi parameter with the JSON ABI of the smart contract.
            - `field_source` 'ethereum_calldata', required
            - `field` string, required
            - `abi` object[], required: A Solidity ABI definition for decoding smart contract calldata.
              - …
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Attributes from the signing domain that will verify the signature.
            - `field_source` 'ethereum_typed_data_domain', required
            - `field` 'chainId' | 'verifyingContract' | 'chain_id' | 'verifying_contract', required: Supported fields for Ethereum typed data domain conditions.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: 'types' and 'primary_type' attributes of the TypedData JSON object defined in EIP-712.
            - `field_source` 'ethereum_typed_data_message', required
            - `field` string, required
            - `typed_data` TypedDataInput, required: The typed data structure containing EIP-712 types and the primary type for typed data message policy conditions.
              - …
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Allowed contract addresses for eth_sign7702Authorization requests.
            - `field_source` 'ethereum_7702_authorization', required
            - `field` 'contract', required
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: A Tempo (type 118) transaction-level field. Evaluated once per transaction (not per call).
            - `field_source` 'tempo_transaction', required
            - `field` 'fee_token' | 'fee_payer_signature' | 'nonce_key' | 'valid_before' | 'valid_after', required: Tempo (type 118) transaction-level fields that can be referenced in a policy condition.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Solana Program attributes, enables allowlisting Solana Programs.
            - `field_source` 'solana_program_instruction', required
            - `field` 'programId', required
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Solana instruction arguments and named accounts interpreted using an inline Anchor IDL.
            - `field_source` 'solana_instruction_data', required
            - `field` string, required
            - `idl` SolanaIdl, required: A modern Anchor IDL containing selected instructions and their complete type dependencies.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Solana System Program attributes, including more granular Transfer instruction fields.
            - `field_source` 'solana_system_program_instruction', required
            - `field` 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports', required: Supported fields for Solana System Program conditions including Transfer instruction fields.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Solana Token Program attributes, including more granular TransferChecked instruction fields.
            - `field_source` 'solana_token_program_instruction', required
            - `field` 'instructionName' | 'Transfer.source' | 'Transfer.destination' | 'Transfer.authority' | 'Transfer.amount' | 'TransferChecked.source' | 'TransferChecked.destination' | 'TransferChecked.authority' | 'TransferChecked.amount' | 'TransferChecked.mint' | 'Burn.account' | 'Burn.mint' | 'Burn.authority' | 'Burn.amount' | 'MintTo.mint' | 'MintTo.account' | 'MintTo.authority' | 'MintTo.amount' | 'CloseAccount.account' | 'CloseAccount.destination' | 'CloseAccount.authority' | 'InitializeAccount3.account' | 'InitializeAccount3.mint' | 'InitializeAccount3.owner', required: Supported fields for Solana Token Program conditions including Transfer, TransferChecked, Burn, MintTo, CloseAccount, and InitializeAccount3 instruction fields.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: System attributes, including current unix timestamp (in seconds).
            - `field_source` 'system', required
            - `field` 'current_unix_timestamp', required
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: TRON transaction fields for TransferContract and TriggerSmartContract transaction types.
            - `field_source` 'tron_transaction', required
            - `field` 'TransferContract.to_address' | 'TransferContract.amount' | 'TriggerSmartContract.contract_address' | 'TriggerSmartContract.call_value' | 'TriggerSmartContract.token_id' | 'TriggerSmartContract.call_token_value', required: Supported TRON transaction fields for TransferContract and TriggerSmartContract in format "TransactionType.field_name".
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Decoded calldata from a TRON TriggerSmartContract interaction.
            - `field_source` 'tron_trigger_smart_contract_data', required
            - `field` string, required
            - `abi` object[], required: A Solidity ABI definition for decoding smart contract calldata.
              - …
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Policy condition evaluated against decoded XRPL transaction fields.
            - `field_source` 'xrpl_transaction', required
            - `field` 'TransactionType' | 'Payment.Destination' | 'Payment.DestinationTag' | 'Payment.Amount.drops' | 'Payment.Amount.value' | 'Payment.Amount.currency' | 'Payment.Amount.issuer' | 'Payment.SendMax.drops' | 'Payment.SendMax.value' | 'Payment.SendMax.currency' | 'Payment.SendMax.issuer' | 'Payment.DeliverMin.drops' | 'Payment.DeliverMin.value' | 'Payment.DeliverMin.currency' | 'Payment.DeliverMin.issuer' | 'OfferCreate.TakerPays.drops' | 'OfferCreate.TakerPays.value' | 'OfferCreate.TakerPays.currency' | 'OfferCreate.TakerPays.issuer' | 'OfferCreate.TakerGets.drops' | 'OfferCreate.TakerGets.value' | 'OfferCreate.TakerGets.currency' | 'OfferCreate.TakerGets.issuer' | 'OfferCreate.Expiration' | 'TrustSet.LimitAmount.value' | 'TrustSet.LimitAmount.currency' | 'TrustSet.LimitAmount.issuer' | 'TrustSet.QualityIn' | 'TrustSet.QualityOut', required: Supported XRPL transaction field paths for policy conditions.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: SUI transaction command attributes, enables allowlisting specific command types. Allowed commands: 'TransferObjects', 'SplitCoins', 'MergeCoins'. Only 'eq' and 'in' operators are supported.
            - `field_source` 'sui_transaction_command', required
            - `field` 'commandName', required
            - `operator` union, required: Operator to use for SUI transaction command conditions. Only 'eq' and 'in' are supported for command names.
              - …
            - `value` union, required: Command name(s) to match. Must be one of: 'TransferObjects', 'SplitCoins', 'MergeCoins'
              - …
          - object: SUI TransferObjects command attributes, including recipient and amount fields.
            - `field_source` 'sui_transfer_objects_command', required
            - `field` 'recipient' | 'amount', required: Supported fields for SUI TransferObjects command conditions. Only 'recipient' and 'amount' are supported.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Condition on the original wallet action API request body fields.
            - `field_source` 'action_request_body', required
            - `field` string, required
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Condition referencing an aggregation value. The field must start with "aggregation." followed by the aggregation ID.
            - `field_source` 'reference', required
            - `field` string, required
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
          - object: Condition on the message being signed (e.g. in personal_sign).
            - `field_source` 'message', required
            - `field` 'content' | 'byte_length', required: Supported fields for message signing conditions.
            - `operator` 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set' | 'contains' | 'starts_with' | 'ends_with', required: Operator to use for policy conditions.
            - `value` union, required: Value to compare against in a policy condition. Can be a single string or an array of strings.
              - …
      - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
      - `id` string, required
    - `policy` object: Parent policy containing this rule, including sibling rules for contextual display
      - `version` '1.0', required: Version of the policy. Currently, 1.0 is the only version.
      - `name` string, required: Name to assign to the policy, up to 100 characters.
      - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'xrpl' | 'spark', required: The wallet chain types.
      - `id` string, required: Unique ID of the created policy. This will be the primary identifier when using the policy in the future.
      - `owner_id` string, cuid2, required: A unique identifier for a key quorum.
      - `created_at` number, required: Unix timestamp of when the policy was created in milliseconds.
      - `rules` PolicyRuleResponse[], required
        - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
        - `conditions` PolicyCondition[], required
          - union: A condition that must be true for the rule action to be applied.
            - object: The verbatim Ethereum transaction object in an eth_signTransaction or eth_sendTransaction request.
              - …
            - object: The decoded calldata in a smart contract interaction as the smart contract method's parameters. Note that 'ethereum_calldata' conditions must contain an abi parameter with the JSON ABI of the smart contract.
              - …
            - object: Attributes from the signing domain that will verify the signature.
              - …
            - object: 'types' and 'primary_type' attributes of the TypedData JSON object defined in EIP-712.
              - …
            - object: Allowed contract addresses for eth_sign7702Authorization requests.
              - …
            - object: A Tempo (type 118) transaction-level field. Evaluated once per transaction (not per call).
              - …
            - object: Solana Program attributes, enables allowlisting Solana Programs.
              - …
            - object: Solana instruction arguments and named accounts interpreted using an inline Anchor IDL.
              - …
            - object: Solana System Program attributes, including more granular Transfer instruction fields.
              - …
            - object: Solana Token Program attributes, including more granular TransferChecked instruction fields.
              - …
            - object: System attributes, including current unix timestamp (in seconds).
              - …
            - object: TRON transaction fields for TransferContract and TriggerSmartContract transaction types.
              - …
            - object: Decoded calldata from a TRON TriggerSmartContract interaction.
              - …
            - object: Policy condition evaluated against decoded XRPL transaction fields.
              - …
            - object: SUI transaction command attributes, enables allowlisting specific command types. Allowed commands: 'TransferObjects', 'SplitCoins', 'MergeCoins'. Only 'eq' and 'in' operators are supported.
              - …
            - object: SUI TransferObjects command attributes, including recipient and amount fields.
              - …
            - object: Condition on the original wallet action API request body fields.
              - …
            - object: Condition referencing an aggregation value. The field must start with "aggregation." followed by the aggregation ID.
              - …
            - object: Condition on the message being signed (e.g. in personal_sign).
              - …
        - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
        - `id` string, required
    - `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.
        - `method` 'POST', required
        - `url` string, required
        - `body` PolicyRuleRequestBody, required: The rules that apply to each method the policy covers.
          - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
          - `conditions` PolicyCondition[], required
            - union: A condition that must be true for the rule action to be applied.
              - …
          - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
      - object: Request details for updating a rule via intent.
        - `method` 'PATCH', required
        - `url` string, required
        - `body` PolicyRuleRequestBody, required: The rules that apply to each method the policy covers.
          - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
          - `conditions` PolicyCondition[], required
            - union: A condition that must be true for the rule action to be applied.
              - …
          - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
      - object: Request details for deleting a rule via intent.
        - `method` 'DELETE', required
        - `url` string, required
        - `body` object: Empty request body for a rule delete intent.
    - `action_result` object: Result of rule execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` union
        - PolicyRuleResponse: A rule that defines the conditions and action to take if the conditions are true.
          - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
          - `conditions` PolicyCondition[], required
            - union: A condition that must be true for the rule action to be applied.
              - …
          - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
          - `id` string, required
        - SuccessResponse: A simple success response.
          - `success` boolean, required
      - `prior_state` object: State of the rule immediately before execution. Undefined for create intents
        - `name` 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' | 'xrpl_signTransaction' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'transfer' | '*', required: Method the rule applies to.
        - `conditions` PolicyCondition[], required
          - union: A condition that must be true for the rule action to be applied.
            - object: The verbatim Ethereum transaction object in an eth_signTransaction or eth_sendTransaction request.
              - …
            - object: The decoded calldata in a smart contract interaction as the smart contract method's parameters. Note that 'ethereum_calldata' conditions must contain an abi parameter with the JSON ABI of the smart contract.
              - …
            - object: Attributes from the signing domain that will verify the signature.
              - …
            - object: 'types' and 'primary_type' attributes of the TypedData JSON object defined in EIP-712.
              - …
            - object: Allowed contract addresses for eth_sign7702Authorization requests.
              - …
            - object: A Tempo (type 118) transaction-level field. Evaluated once per transaction (not per call).
              - …
            - object: Solana Program attributes, enables allowlisting Solana Programs.
              - …
            - object: Solana instruction arguments and named accounts interpreted using an inline Anchor IDL.
              - …
            - object: Solana System Program attributes, including more granular Transfer instruction fields.
              - …
            - object: Solana Token Program attributes, including more granular TransferChecked instruction fields.
              - …
            - object: System attributes, including current unix timestamp (in seconds).
              - …
            - object: TRON transaction fields for TransferContract and TriggerSmartContract transaction types.
              - …
            - object: Decoded calldata from a TRON TriggerSmartContract interaction.
              - …
            - object: Policy condition evaluated against decoded XRPL transaction fields.
              - …
            - object: SUI transaction command attributes, enables allowlisting specific command types. Allowed commands: 'TransferObjects', 'SplitCoins', 'MergeCoins'. Only 'eq' and 'in' operators are supported.
              - …
            - object: SUI TransferObjects command attributes, including recipient and amount fields.
              - …
            - object: Condition on the original wallet action API request body fields.
              - …
            - object: Condition referencing an aggregation value. The field must start with "aggregation." followed by the aggregation ID.
              - …
            - object: Condition on the message being signed (e.g. in personal_sign).
              - …
        - `action` 'ALLOW' | 'DENY', required: The action to take when a policy rule matches.
        - `id` string, required
  - object: Response for a key quorum intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'KEY_QUORUM', required
    - `current_resource_data` object: Current state of the key quorum before any changes. If undefined, the resource was deleted and no longer exists
      - `id` string, cuid2, required
      - `display_name` string, nullable, required
      - `authorization_threshold` number, nullable, required
      - `authorization_keys` AuthorizationKey[], required
        - `public_key` string, required
        - `display_name` string, nullable, required
      - `user_ids` string[], nullable, required
      - `key_quorum_ids` string[]: List of nested key quorum IDs that are members of this key quorum.
    - `request_details` union, required: The original key quorum request. Method is PATCH (update) or DELETE (delete).
      - object: Request details for a key quorum intent.
        - `method` 'PATCH', required
        - `url` string, required
        - `body` object, required: Request input for updating an existing key quorum. At least one field must be provided.
          - `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.
          - `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
          - `user_ids` string[]: List of user IDs of the users that should be authorized to sign on the key quorum.
          - `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.
      - object: Request details for deleting a key quorum via intent.
        - `method` 'DELETE', required
        - `url` string, required
        - `body` object: Empty request body for a key quorum delete intent.
    - `action_result` object: Result of key quorum execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` union, required
        - KeyQuorum: A key quorum for authorizing wallet operations.
          - `id` string, cuid2, required
          - `display_name` string, nullable, required
          - `authorization_threshold` number, nullable, required
          - `authorization_keys` AuthorizationKey[], required
            - `public_key` string, required
            - `display_name` string, nullable, required
          - `user_ids` string[], nullable, required
          - `key_quorum_ids` string[]: List of nested key quorum IDs that are members of this key quorum.
        - SuccessResponse: A simple success response.
          - `success` boolean, required
      - `prior_state` object, required: State of the key quorum immediately before execution
        - `id` string, cuid2, required
        - `display_name` string, nullable, required
        - `authorization_threshold` number, nullable, required
        - `authorization_keys` AuthorizationKey[], required
          - `public_key` string, required
          - `display_name` string, nullable, required
        - `user_ids` string[], nullable, required
        - `key_quorum_ids` string[]: List of nested key quorum IDs that are members of this key quorum.
  - object: Response for a condition set intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'CONDITION_SET', required
    - `current_resource_data` object: Current state of the condition set. If undefined, the condition set was deleted and no longer exists
      - `id` string, required: Unique ID of the created condition set. This will be the primary identifier when using the condition set in the future.
      - `name` string, required: Name of the condition set.
      - `owner_id` string, cuid2, required: A unique identifier for a key quorum.
      - `created_at` number, required: Unix timestamp of when the condition set was created in milliseconds.
    - `request_details` ConditionSetIntentDeleteRequestDetails, required: Request details for deleting a condition set via intent.
      - `method` 'DELETE', required
      - `url` string, required
      - `body` object: Empty request body for a condition set delete intent.
    - `action_result` object: Result of condition set execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` SuccessResponse: A simple success response.
        - `success` boolean, required
      - `prior_state` object, required: State of the condition set immediately before execution
        - `id` string, required: Unique ID of the created condition set. This will be the primary identifier when using the condition set in the future.
        - `name` string, required: Name of the condition set.
        - `owner_id` string, cuid2, required: A unique identifier for a key quorum.
        - `created_at` number, required: Unix timestamp of when the condition set was created in milliseconds.
  - object: Response for a condition set item intent
    - `intent_id` string, required: Unique ID for the intent
    - `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
    - `created_at` number, required: Unix timestamp when the intent was created
    - `resource_id` string, required: ID of the resource being modified (wallet_id, policy_id, etc)
    - `authorization_details` IntentAuthorization[], required: Detailed authorization information including key quorum members, thresholds, and signature status
      - `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.
          - object: A user member of an intent authorization quorum.
            - `type` 'user', required
            - `user_id` string, required: User ID of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A key member of an intent authorization quorum.
            - `type` 'key', required
            - `public_key` string, required: Public key of the key quorum member
            - `signed_at` number, nullable, required: Unix timestamp when this member signed, or null if not yet signed.
          - object: A nested key quorum member of an intent authorization quorum.
            - `type` 'key_quorum', required
            - `key_quorum_id` string, required: ID of the child key quorum member
            - `display_name` string: Display name for the child key quorum (if any)
            - `threshold_met` boolean, required: Whether this child key quorum has met its signature threshold
            - `threshold` number, required: Number of signatures required from this child quorum
            - `members` IntentAuthorizationKeyQuorumMember[], required: Members of this child quorum
              - …
      - `threshold` number, required: Number of signatures required to satisfy this quorum
      - `display_name` string: Display name of the key quorum
    - `status` 'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed', required: Current status of an intent.
    - `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.
    - `expires_at` number, required: Unix timestamp when the intent expires
    - `rejected_at` number: Unix timestamp when the intent was rejected, present when status is 'rejected'
    - `dismissed_at` number: Unix timestamp when the intent was dismissed, present when status is 'dismissed'
    - `dismissal_reason` string: Human-readable reason for dismissal, present when status is 'dismissed'
    - `intent_type` 'CONDITION_SET_ITEM', required
    - `current_resource_data` object: Current state of the targeted condition set item. Undefined for intents that add or replace items, or if the item was deleted
      - `id` string, required: Unique ID of the created condition set item.
      - `condition_set_id` string, required: Unique ID of the condition set this item belongs to.
      - `value` string, required: The value stored in this condition set item.
      - `created_at` number, required: Unix timestamp of when the condition set item was created in milliseconds.
    - `condition_set` object: Parent condition set of the items. If undefined, the condition set was deleted and no longer exists
      - `id` string, required: Unique ID of the created condition set. This will be the primary identifier when using the condition set in the future.
      - `name` string, required: Name of the condition set.
      - `owner_id` string, cuid2, required: A unique identifier for a key quorum.
      - `created_at` number, required: Unix timestamp of when the condition set was created in milliseconds.
    - `request_details` union, required: The original condition set item request. Method is POST (add items), PUT (replace items), or DELETE (delete an item)
      - object: Request details for adding items to a condition set via intent.
        - `method` 'POST', required
        - `url` string, required
        - `body` ConditionSetItemValueInput[], required: Array of values to add to the condition set. Maximum 100 items per request.
          - `value` string, required
      - object: Request details for replacing the items of a condition set via intent.
        - `method` 'PUT', required
        - `url` string, required
        - `body` ConditionSetItemValueInput[], required: Array of values to add to the condition set. Maximum 100 items per request.
          - `value` string, required
      - object: Request details for deleting a condition set item via intent.
        - `method` 'DELETE', required
        - `url` string, required
        - `body` object: Empty request body for a condition set item delete intent.
    - `action_result` object: Result of condition set item execution (only present if status is 'executed' or 'failed')
      - `status_code` number, required: HTTP status code from the action execution
      - `executed_at` number, required: Unix timestamp when the action was executed
      - `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
      - `response_body` union
        - ConditionSetItem[]: Array of condition set items.
          - `id` string, required: Unique ID of the created condition set item.
          - `condition_set_id` string, required: Unique ID of the condition set this item belongs to.
          - `value` string, required: The value stored in this condition set item.
          - `created_at` number, required: Unix timestamp of when the condition set item was created in milliseconds.
        - SuccessResponse: A simple success response.
          - `success` boolean, required
      - `prior_state` union: State immediately before execution: the condition set's items for an intent that replaces items (only some of them for a large condition set), or the targeted item for an intent that deletes one. Undefined for intents that add items
        - ConditionSetItem[]: Array of condition set items.
          - `id` string, required: Unique ID of the created condition set item.
          - `condition_set_id` string, required: Unique ID of the condition set this item belongs to.
          - `value` string, required: The value stored in this condition set item.
          - `created_at` number, required: Unix timestamp of when the condition set item was created in milliseconds.
        - ConditionSetItem: A single item in a condition set.
          - `id` string, required: Unique ID of the created condition set item.
          - `condition_set_id` string, required: Unique ID of the condition set this item belongs to.
          - `value` string, required: The value stored in this condition set item.
          - `created_at` number, required: Unix timestamp of when the condition set item was created in milliseconds.

## Changes

- **2026-10-27** `3a2288470053`: 10 warning
  - added the new `earn_incentive_claim` enum value to the `oneOf[subschema #5: PolicyIntentResponse]/allOf[subschema #2]/action_result/allOf[subschema #2]/prior_state/allOf[subschema #1: Policy]/rules/items/method` response property for the response status `200`
  - added the new `earn_incentive_claim` enum value to the `oneOf[subschema #5: PolicyIntentResponse]/allOf[subschema #2]/action_result/allOf[subschema #2]/response_body/anyOf[subschema #1: Policy]/rules/items/method` response property for the response status `200`
  - added the new `earn_incentive_claim` enum value to the `oneOf[subschema #5: PolicyIntentResponse]/allOf[subschema #2]/current_resource_data/allOf[subschema #1: Policy]/rules/items/method` response property for the response status `200`
  - added the new `earn_incentive_claim` enum value to the `oneOf[subschema #5: PolicyIntentResponse]/allOf[subschema #2]/request_details/oneOf[subschema #1: PolicyIntentRequestDetails]/body/rules/items/method` response property for the response status `200`
  - …6 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/privy-io/apis/privy-api/changes/v1/intents/:intent_id/reject/post.md)

---

[API](https://skmtc.dev/privy-io/apis/privy-api.md) - [All operations](https://skmtc.dev/privy-io/apis/privy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/privy-io/apis/privy-api/revisions/6a80d4be53a8?raw)
