---
title: "Create RPC intent"
method: POST
path: "/v1/intents/wallets/{wallet_id}/rpc"
tags: ["Intents"]
---

# Create RPC intent

`POST /v1/intents/wallets/{wallet_id}/rpc`

## Request

- Base URL: `https://api.privy.io`
- URL: `https://api.privy.io/v1/intents/wallets/{wallet_id}/rpc`
- Auth: HTTP basic

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

## Path parameters

- `wallet_id` string, required: ID of the wallet.

## Headers

- `privy-app-id` string, required: ID of your Privy app.
- `privy-request-expiry` string: Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed.

## Request body

- union: 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).
        - object: An unsigned standard Ethereum transaction object. Supports EVM transaction types 0, 2, and 4.
          - `from` string
          - `to` string
          - `chain_id` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `nonce` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - `value` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `type` union
            - 0
            - 2
            - 4
          - `gas_limit` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `gas_price` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_priority_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `authorization_list` EthereumSign7702Authorization[]
            - `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, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `r` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `s` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `y_parity` number, required
        - object: An unsigned Tempo transaction (type 118) with batched calls.
          - `type` 118, required
          - `from` string
          - `chain_id` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `nonce` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `gas_limit` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_priority_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `calls` TempoCall[], required
            - `to` string, required
            - `data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `value` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
          - `fee_token` string
          - `nonce_key` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `valid_before` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `valid_after` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `fee_payer_signature` TempoFeePayerSignature: A fee payer signature for sponsored Tempo transactions (secp256k1 only).
            - `r` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `s` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `y_parity` union, required
              - …
          - `access_list` AccessListEntry[]
            - `address` string, required
            - `storage_keys` Hex[], required
          - `aa_authorization_list` TempoAAAuthorization[]
            - `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, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `signature` 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: 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).
        - object: An unsigned standard Ethereum transaction object. Supports EVM transaction types 0, 2, and 4.
          - `from` string
          - `to` string
          - `chain_id` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `nonce` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - `value` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `type` union
            - 0
            - 2
            - 4
          - `gas_limit` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `gas_price` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_priority_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `authorization_list` EthereumSign7702Authorization[]
            - `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, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `r` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `s` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `y_parity` number, required
        - object: An unsigned Tempo transaction (type 118) with batched calls.
          - `type` 118, required
          - `from` string
          - `chain_id` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `nonce` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `gas_limit` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `max_priority_fee_per_gas` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `calls` TempoCall[], required
            - `to` string, required
            - `data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `value` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
          - `fee_token` string
          - `nonce_key` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `valid_before` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `valid_after` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `fee_payer_signature` TempoFeePayerSignature: A fee payer signature for sponsored Tempo transactions (secp256k1 only).
            - `r` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `s` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `y_parity` union, required
              - …
          - `access_list` AccessListEntry[]
            - `address` string, required
            - `storage_keys` Hex[], required
          - `aa_authorization_list` TempoAAAuthorization[]
            - `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, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `signature` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
    - `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
        - 'utf-8'
        - 'hex'
    - `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.
        - `domain` TypedDataDomainInputParams, required: The domain parameters for EIP-712 typed data signing.
        - `types` TypedDataTypesInputParams, required: The type definitions for EIP-712 typed data signing.
        - `message` object, required
        - `primary_type` string, 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: 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.
        - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - integer
      - `nonce` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
        - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - 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.
        - `sender` string, required
        - `nonce` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `factory` string
        - `factory_data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `call_data` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `paymaster` string
        - `paymaster_data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `paymaster_post_op_gas_limit` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `paymaster_verification_gas_limit` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `max_priority_fee_per_gas` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `max_fee_per_gas` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `call_gas_limit` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `verification_gas_limit` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `pre_verification_gas` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
      - `chain_id` union, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
        - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - 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
        - `to` string, required
        - `value` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
          - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - integer
        - `data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
    - `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[]
        - `output` TokenOutput: A Spark token output.
          - `id` string
          - `owner_public_key` string, required
          - `revocation_commitment` string
          - `withdraw_bond_sats` number
          - `withdraw_relative_block_locktime` number
          - `token_public_key` string
          - `token_identifier` string
          - `token_amount` string, required
        - `previous_transaction_hash` string, required
        - `previous_transaction_vout` number, required
    - `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.
        - `contract` TronContract[], required
          - union: A Tron contract, discriminated by type. Supported types: TransferContract, TriggerSmartContract.
            - object: Tron native TRX transfer contract.
              - …
            - object: Tron smart contract call (TRC-20 transfers and general contract interactions).
              - …
        - `data` string
        - `timestamp` integer
        - `fee_limit` integer
        - `ref_block_bytes` string, required
        - `ref_block_hash` string, required
        - `expiration` integer, required
  - 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.
        - `contract` TronContract[], required
          - union: A Tron contract, discriminated by type. Supported types: TransferContract, TriggerSmartContract.
            - object: Tron native TRX transfer contract.
              - …
            - object: Tron smart contract call (TRC-20 transfers and general contract interactions).
              - …
        - `data` string
        - `timestamp` integer
        - `fee_limit` integer
        - `ref_block_bytes` string
        - `ref_block_hash` string
        - `expiration` integer
      - `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.
        - string
        - string
      - `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.
        - string
        - string
      - `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

## Response `200`

Created RPC intent.

- RpcIntentResponse: 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
            - union: A leaf member (user or key) of a nested key quorum in an intent authorization.
              - …
    - `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).
            - object: An unsigned standard Ethereum transaction object. Supports EVM transaction types 0, 2, and 4.
              - …
            - object: An unsigned Tempo transaction (type 118) with batched calls.
              - …
        - `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).
            - object: An unsigned standard Ethereum transaction object. Supports EVM transaction types 0, 2, and 4.
              - …
            - object: An unsigned Tempo transaction (type 118) with batched calls.
              - …
        - `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
            - 'utf-8'
            - 'hex'
        - `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.
            - `domain` TypedDataDomainInputParams, required: The domain parameters for EIP-712 typed data signing.
            - `types` TypedDataTypesInputParams, required: The type definitions for EIP-712 typed data signing.
            - `message` object, required
            - `primary_type` string, 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: 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.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - integer
          - `nonce` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - 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.
            - `sender` string, required
            - `nonce` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `factory` string
            - `factory_data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `call_data` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `paymaster` string
            - `paymaster_data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `paymaster_post_op_gas_limit` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `paymaster_verification_gas_limit` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `max_priority_fee_per_gas` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `max_fee_per_gas` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `call_gas_limit` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `verification_gas_limit` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `pre_verification_gas` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
          - `chain_id` union, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
            - string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - 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
            - `to` string, required
            - `value` union: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `data` string: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `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[]
            - `output` TokenOutput: A Spark token output.
              - …
            - `previous_transaction_hash` string, required
            - `previous_transaction_vout` number, required
        - `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.
            - `contract` TronContract[], required
              - …
            - `data` string
            - `timestamp` integer
            - `fee_limit` integer
            - `ref_block_bytes` string, required
            - `ref_block_hash` string, required
            - `expiration` integer, required
      - 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.
            - `contract` TronContract[], required
              - …
            - `data` string
            - `timestamp` integer
            - `fee_limit` integer
            - `ref_block_bytes` string
            - `ref_block_hash` string
            - `expiration` integer
          - `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.
            - string
            - string
          - `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.
            - string
            - string
          - `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).
            - object: An unsigned standard Ethereum transaction object. Supports EVM transaction types 0, 2, and 4.
              - …
            - object: An unsigned Tempo transaction (type 118) with batched calls.
              - …
          - `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.
            - `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, required: A quantity value that can be either a hex string starting with '0x' or a non-negative integer.
              - …
            - `r` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `s` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
            - `y_parity` number, required
      - 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
            - `leaf` SparkWalletLeaf: A Spark wallet leaf node.
              - …
            - `secret_cipher` string, required
            - `signature` string, required
            - `intermediate_refund_tx` string, 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.
            - `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
          - SparkLightningSendRequest: A Spark Lightning send request.
            - `id` string, required
            - `created_at` string, required
            - `updated_at` string, required
            - `network` string, required
            - `encoded_invoice` string, required
            - `fee` SparkLightningFee, required: The fee for a Spark Lightning payment.
              - …
            - `idempotency_key` string, required
            - `status` string, required
            - `typename` string, required
            - `transfer` unknown
            - `payment_preimage` string
      - 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.
            - `original_value` number, required
            - `original_unit` string, required
          - `l1_broadcast_fee` SparkCurrencyAmount, required: A currency amount with its original value and unit.
            - `original_value` number, required
            - `original_unit` string, required
          - `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.
            - `original_value` number, required
            - `original_unit` string, required
          - `user_fee_fast` SparkCurrencyAmount, required: A currency amount with its original value and unit.
            - `original_value` number, required
            - `original_unit` string, required
          - `user_fee_medium` SparkCurrencyAmount, required: A currency amount with its original value and unit.
            - `original_value` number, required
            - `original_unit` string, required
          - `user_fee_slow` SparkCurrencyAmount, required: A currency amount with its original value and unit.
            - `original_value` number, required
            - `original_unit` string, required
          - `l1_broadcast_fee_fast` SparkCurrencyAmount, required: A currency amount with its original value and unit.
            - `original_value` number, required
            - `original_unit` string, required
          - `l1_broadcast_fee_medium` SparkCurrencyAmount, required: A currency amount with its original value and unit.
            - `original_value` number, required
            - `original_unit` string, required
          - `l1_broadcast_fee_slow` SparkCurrencyAmount, required: A currency amount with its original value and unit.
            - `original_value` number, required
            - `original_unit` string, required
          - `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.
            - string
            - string
          - `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

## Changes

- **2026-10-26** `bc6468dfd728`: 2 breaking, 3 info
  - removed `subschema #2` from the `oneOf[subschema #1: EthereumSignTransactionRpcInput]/params/transaction/anyOf[subschema #1: UnsignedStandardEthereumTransaction]/type` request property `anyOf` list
  - removed `subschema #2` from the `oneOf[subschema #2: EthereumSendTransactionRpcInput]/params/transaction/anyOf[subschema #1: UnsignedStandardEthereumTransaction]/type` request property `anyOf` list
  - removed `subschema #2` from the `allOf[subschema #2]/action_result/allOf[subschema #2]/response_body/oneOf[subschema #4: EthereumSendTransactionRpcResponse]/data/transaction_request/anyOf[subschema #1: UnsignedStandardEthereumTransaction]/type` response property `anyOf` list for the response status `200`
  - removed `subschema #2` from the `allOf[subschema #2]/request_details/body/oneOf[subschema #1: EthereumSignTransactionRpcInput]/params/transaction/anyOf[subschema #1: UnsignedStandardEthereumTransaction]/type` response property `anyOf` list for the response status `200`
  - …1 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/privy-io/apis/privy-api/changes/v1/intents/wallets/:wallet_id/rpc/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)
