> ## Documentation Index
> Fetch the complete documentation index at: https://docs.privy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create RPC transaction

> 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.



## OpenAPI

````yaml post /v1/intents/wallets/{wallet_id}/rpc
openapi: 3.1.0
info:
  version: 0.0.1
  title: Privy API
  description: >-
    REST API for Privy's wallet infrastructure — provision and manage wallets
    across EVM, Solana, and Bitcoin, authenticate users, sign transactions, and
    configure programmable policies and authorization intents.
  contact:
    name: Privy
    url: https://www.privy.io/
    email: support@privy.io
servers:
  - url: https://api.privy.io
security: []
tags:
  - name: Accounts
    description: Operations related to asset accounts
  - name: Aggregations
    description: Operations related to aggregations for tracking and measuring metrics
  - name: Apps
    description: Operations related to app settings and allowlist management
  - name: Client Auth
    description: OAuth token exchange and device authorization operations
  - name: Condition Sets
    description: Operations related to condition sets
  - name: Embedded wallets
    description: Operations related to embedded wallet creation and authentication
  - name: Fiat
    description: Operations related to fiat onramping and offramping
  - name: Intents
    description: Operations related to authorization intents for wallet actions
  - name: Key quorums
    description: Operations related to key quorums
  - name: Kraken Embed
    description: >-
      Operations for Kraken Embed integration, including quotes, trades, user
      management, and portfolio operations
  - name: OAuth
    description: >-
      OAuth 2.0 endpoints including Device Authorization Grant (RFC 8628) for
      CLI and limited-input device login flows
  - name: Organizations
    description: Operations related to organization secret management
  - name: Policies
    description: Operations related to policies
  - name: Shared
    description: Common schemas shared across resources
  - name: Swaps
    description: Operations for swapping tokens within wallets
  - name: Transactions
    description: Operations related to transactions
  - name: User signers
    description: Operations related to user signers
  - name: Users
    description: Operations related to users
  - name: Wallet Actions
    description: Operations related to wallet actions
  - name: Wallets
    description: Operations related to wallets
  - name: Webhooks
    description: >-
      Webhook events that Privy sends to your configured endpoint when specific
      actions occur in your app
  - name: Yield
    description: >-
      Operations for depositing and withdrawing funds from ERC-4626 yield vaults
      (Morpho, Aave)
paths:
  /v1/intents/wallets/{wallet_id}/rpc:
    post:
      tags:
        - Intents
      summary: Create RPC intent
      description: >-
        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.
      operationId: createRpcIntent
      parameters:
        - schema:
            type: string
            description: ID of the wallet.
          required: true
          name: wallet_id
          in: path
        - schema:
            type: string
            description: ID of your Privy app.
          required: true
          name: privy-app-id
          in: header
        - schema:
            type: string
            description: >-
              Request expiry. Value is a Unix timestamp in milliseconds
              representing the deadline by which the request must be processed.
          required: false
          name: privy-request-expiry
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WalletRpcRequestBody'
      responses:
        '200':
          description: Created RPC intent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RpcIntentResponse'
      security:
        - appSecretAuth: []
components:
  schemas:
    WalletRpcRequestBody:
      oneOf:
        - $ref: '#/components/schemas/EthereumSignTransactionRpcInput'
        - $ref: '#/components/schemas/EthereumSendTransactionRpcInput'
        - $ref: '#/components/schemas/EthereumPersonalSignRpcInput'
        - $ref: '#/components/schemas/EthereumSignTypedDataRpcInput'
        - $ref: '#/components/schemas/EthereumSecp256k1SignRpcInput'
        - $ref: '#/components/schemas/EthereumSign7702AuthorizationRpcInput'
        - $ref: '#/components/schemas/EthereumSignUserOperationRpcInput'
        - $ref: '#/components/schemas/EthereumSendCallsRpcInput'
        - $ref: '#/components/schemas/SolanaSignTransactionRpcInput'
        - $ref: '#/components/schemas/SolanaSignAndSendTransactionRpcInput'
        - $ref: '#/components/schemas/SolanaSignMessageRpcInput'
        - $ref: '#/components/schemas/SparkTransferRpcInput'
        - $ref: '#/components/schemas/SparkGetBalanceRpcInput'
        - $ref: '#/components/schemas/SparkTransferTokensRpcInput'
        - $ref: '#/components/schemas/SparkGetStaticDepositAddressRpcInput'
        - $ref: '#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInput'
        - $ref: '#/components/schemas/SparkClaimStaticDepositRpcInput'
        - $ref: '#/components/schemas/SparkCreateLightningInvoiceRpcInput'
        - $ref: '#/components/schemas/SparkPayLightningInvoiceRpcInput'
        - $ref: '#/components/schemas/SparkSignMessageWithIdentityKeyRpcInput'
        - $ref: '#/components/schemas/SparkWithdrawRpcInput'
        - $ref: '#/components/schemas/SparkGetWithdrawalFeeQuoteRpcInput'
        - $ref: '#/components/schemas/TronSignTransactionRpcInput'
        - $ref: '#/components/schemas/TronSendTransactionRpcInput'
        - $ref: '#/components/schemas/ExportPrivateKeyRpcInput'
        - $ref: '#/components/schemas/ExportSeedPhraseRpcInput'
      discriminator:
        propertyName: method
        mapping:
          eth_signTransaction:
            $ref: '#/components/schemas/EthereumSignTransactionRpcInput'
          eth_sendTransaction:
            $ref: '#/components/schemas/EthereumSendTransactionRpcInput'
          personal_sign:
            $ref: '#/components/schemas/EthereumPersonalSignRpcInput'
          eth_signTypedData_v4:
            $ref: '#/components/schemas/EthereumSignTypedDataRpcInput'
          secp256k1_sign:
            $ref: '#/components/schemas/EthereumSecp256k1SignRpcInput'
          eth_sign7702Authorization:
            $ref: '#/components/schemas/EthereumSign7702AuthorizationRpcInput'
          eth_signUserOperation:
            $ref: '#/components/schemas/EthereumSignUserOperationRpcInput'
          wallet_sendCalls:
            $ref: '#/components/schemas/EthereumSendCallsRpcInput'
          signTransaction:
            $ref: '#/components/schemas/SolanaSignTransactionRpcInput'
          signAndSendTransaction:
            $ref: '#/components/schemas/SolanaSignAndSendTransactionRpcInput'
          signMessage:
            $ref: '#/components/schemas/SolanaSignMessageRpcInput'
          transfer:
            $ref: '#/components/schemas/SparkTransferRpcInput'
          getBalance:
            $ref: '#/components/schemas/SparkGetBalanceRpcInput'
          transferTokens:
            $ref: '#/components/schemas/SparkTransferTokensRpcInput'
          getStaticDepositAddress:
            $ref: '#/components/schemas/SparkGetStaticDepositAddressRpcInput'
          getClaimStaticDepositQuote:
            $ref: '#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInput'
          claimStaticDeposit:
            $ref: '#/components/schemas/SparkClaimStaticDepositRpcInput'
          createLightningInvoice:
            $ref: '#/components/schemas/SparkCreateLightningInvoiceRpcInput'
          payLightningInvoice:
            $ref: '#/components/schemas/SparkPayLightningInvoiceRpcInput'
          signMessageWithIdentityKey:
            $ref: '#/components/schemas/SparkSignMessageWithIdentityKeyRpcInput'
          withdraw:
            $ref: '#/components/schemas/SparkWithdrawRpcInput'
          getWithdrawalFeeQuote:
            $ref: '#/components/schemas/SparkGetWithdrawalFeeQuoteRpcInput'
          tron_signTransaction:
            $ref: '#/components/schemas/TronSignTransactionRpcInput'
          tron_sendTransaction:
            $ref: '#/components/schemas/TronSendTransactionRpcInput'
          exportPrivateKey:
            $ref: '#/components/schemas/ExportPrivateKeyRpcInput'
          exportSeedPhrase:
            $ref: '#/components/schemas/ExportSeedPhraseRpcInput'
      description: Request body for wallet RPC operations, discriminated by method.
      title: WalletRpcRequestBody
      x-stainless-model: wallets.wallet_rpc_request_body
    RpcIntentResponse:
      allOf:
        - $ref: '#/components/schemas/BaseIntentResponse'
        - type: object
          properties:
            intent_type:
              type: string
              enum:
                - RPC
            request_details:
              type: object
              properties:
                method:
                  type: string
                  enum:
                    - POST
                url:
                  type: string
                body:
                  $ref: '#/components/schemas/WalletRpcRequestBody'
              required:
                - method
                - url
                - body
              description: >-
                The original RPC request that would be sent to the wallet
                endpoint
            current_resource_data:
              allOf:
                - $ref: '#/components/schemas/Wallet'
                - description: >-
                    Current state of the wallet before any changes. If
                    undefined, the resource was deleted and no longer exists
            action_result:
              allOf:
                - $ref: '#/components/schemas/BaseActionResult'
                - type: object
                  properties:
                    response_body:
                      $ref: '#/components/schemas/WalletRpcResponse'
                  required:
                    - response_body
              description: >-
                Result of RPC execution (only present if status is 'executed' or
                'failed')
              title: BaseActionResult
              x-stainless-model: intents.base_action_result
          required:
            - intent_type
            - request_details
      description: Response for an RPC intent
      title: RpcIntentResponse
      example:
        intent_id: clpq1234567890abcdefghij
        intent_type: RPC
        created_by_display_name: developer@example.com
        created_by_id: did:privy:clabcd123
        created_at: 1741834854578
        resource_id: xs76o3pi0v5syd62ui1wmijw
        authorization_details:
          - members:
              - type: user
                user_id: did:privy:clabcd123
                signed_at: null
            threshold: 1
            display_name: Admin Key Quorum
        status: pending
        custom_expiry: false
        expires_at: 1741921254578
        request_details:
          method: POST
          url: https://api.privy.io/v1/wallets/xs76o3pi0v5syd62ui1wmijw/rpc
          body:
            method: eth_sendTransaction
            caip2: eip155:8453
            chain_type: ethereum
            params:
              transaction:
                to: '0x0000000000000000000000000000000000000000'
                value: 1
      x-stainless-model: intents.rpc_intent_response
    EthereumSignTransactionRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_signTransaction
        params:
          $ref: '#/components/schemas/EthereumSignTransactionRpcInputParams'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: Executes the EVM `eth_signTransaction` RPC to sign a transaction.
      title: EthereumSignTransactionRpcInput
      x-stainless-model: wallets.ethereum_sign_transaction_rpc_input
    EthereumSendTransactionRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_sendTransaction
        caip2:
          $ref: '#/components/schemas/CAIP2'
        params:
          $ref: '#/components/schemas/EthereumSendTransactionRpcInputParams'
        sponsor:
          type: boolean
        reference_id:
          type: string
          minLength: 1
          maxLength: 64
        experimental_data_suffix:
          $ref: '#/components/schemas/Hex'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - caip2
        - params
      additionalProperties: false
      description: >-
        Executes the EVM `eth_sendTransaction` RPC to sign and broadcast a
        transaction.
      title: EthereumSendTransactionRpcInput
      x-stainless-model: wallets.ethereum_send_transaction_rpc_input
    EthereumPersonalSignRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - personal_sign
        params:
          $ref: '#/components/schemas/EthereumPersonalSignRpcInputParams'
        caip2:
          $ref: '#/components/schemas/CAIP2'
        signature_options:
          $ref: '#/components/schemas/SignatureOptions'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: Executes the EVM `personal_sign` RPC (EIP-191) to sign a message.
      title: EthereumPersonalSignRpcInput
      x-stainless-model: wallets.ethereum_personal_sign_rpc_input
    EthereumSignTypedDataRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_signTypedData_v4
        params:
          $ref: '#/components/schemas/EthereumSignTypedDataRpcInputParams'
        caip2:
          $ref: '#/components/schemas/CAIP2'
        signature_options:
          $ref: '#/components/schemas/SignatureOptions'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: >-
        Executes the EVM `eth_signTypedData_v4` RPC (EIP-712) to sign a typed
        data object.
      title: EthereumSignTypedDataRpcInput
      x-stainless-model: wallets.ethereum_sign_typed_data_rpc_input
    EthereumSecp256k1SignRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - secp256k1_sign
        params:
          $ref: '#/components/schemas/EthereumSecp256k1SignRpcInputParams'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: Signs a raw hash on the secp256k1 curve.
      title: EthereumSecp256k1SignRpcInput
      x-stainless-model: wallets.ethereum_secp_256k_1_sign_rpc_input
    EthereumSign7702AuthorizationRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_sign7702Authorization
        params:
          $ref: '#/components/schemas/EthereumSign7702AuthorizationRpcInputParams'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: Signs an EIP-7702 authorization.
      title: EthereumSign7702AuthorizationRpcInput
      x-stainless-model: wallets.ethereum_sign_7702_authorization_rpc_input
    EthereumSignUserOperationRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_signUserOperation
        params:
          $ref: '#/components/schemas/EthereumSignUserOperationRpcInputParams'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: Executes an RPC method to hash and sign a UserOperation.
      title: EthereumSignUserOperationRpcInput
      x-stainless-model: wallets.ethereum_sign_user_operation_rpc_input
    EthereumSendCallsRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - wallet_sendCalls
        caip2:
          $ref: '#/components/schemas/CAIP2'
        params:
          $ref: '#/components/schemas/EthereumSendCallsRpcInputParams'
        sponsor:
          type: boolean
        experimental_data_suffix:
          $ref: '#/components/schemas/Hex'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - ethereum
        wallet_id:
          type: string
      required:
        - method
        - caip2
        - params
      additionalProperties: false
      description: >-
        Executes the `wallet_sendCalls` RPC (EIP-5792) to batch multiple calls
        into a single atomic transaction.
      title: EthereumSendCallsRpcInput
      x-stainless-model: wallets.ethereum_send_calls_rpc_input
    SolanaSignTransactionRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - signTransaction
        params:
          $ref: '#/components/schemas/SolanaSignTransactionRpcInputParams'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - solana
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: Executes the SVM `signTransaction` RPC to sign a transaction.
      title: SolanaSignTransactionRpcInput
      x-stainless-model: wallets.solana_sign_transaction_rpc_input
    SolanaSignAndSendTransactionRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - signAndSendTransaction
        caip2:
          $ref: '#/components/schemas/CAIP2'
        params:
          $ref: '#/components/schemas/SolanaSignAndSendTransactionRpcInputParams'
        sponsor:
          type: boolean
        reference_id:
          type: string
          minLength: 1
          maxLength: 64
        optimistic_broadcast:
          type: boolean
        address:
          type: string
        chain_type:
          type: string
          enum:
            - solana
        wallet_id:
          type: string
      required:
        - method
        - caip2
        - params
      additionalProperties: false
      description: >-
        Executes the SVM `signAndSendTransaction` RPC to sign and broadcast a
        transaction.
      title: SolanaSignAndSendTransactionRpcInput
      x-stainless-model: wallets.solana_sign_and_send_transaction_rpc_input
    SolanaSignMessageRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - signMessage
        params:
          $ref: '#/components/schemas/SolanaSignMessageRpcInputParams'
        address:
          type: string
        chain_type:
          type: string
          enum:
            - solana
        wallet_id:
          type: string
      required:
        - method
        - params
      additionalProperties: false
      description: Executes the SVM `signMessage` RPC to sign a message.
      title: SolanaSignMessageRpcInput
      x-stainless-model: wallets.solana_sign_message_rpc_input
    SparkTransferRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - transfer
        params:
          $ref: '#/components/schemas/SparkTransferRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Transfers satoshis to a Spark address.
      title: SparkTransferRpcInput
      x-stainless-model: wallets.spark_transfer_rpc_input
    SparkGetBalanceRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - getBalance
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
      additionalProperties: false
      description: Gets the balance of the Spark wallet.
      title: SparkGetBalanceRpcInput
      x-stainless-model: wallets.spark_get_balance_rpc_input
    SparkTransferTokensRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - transferTokens
        params:
          $ref: '#/components/schemas/SparkTransferTokensRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Transfers tokens to a Spark address.
      title: SparkTransferTokensRpcInput
      x-stainless-model: wallets.spark_transfer_tokens_rpc_input
    SparkGetStaticDepositAddressRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - getStaticDepositAddress
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
      additionalProperties: false
      description: Gets a static deposit address for the Spark wallet.
      title: SparkGetStaticDepositAddressRpcInput
      x-stainless-model: wallets.spark_get_static_deposit_address_rpc_input
    SparkGetClaimStaticDepositQuoteRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - getClaimStaticDepositQuote
        params:
          $ref: '#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Gets a quote for claiming a static deposit.
      title: SparkGetClaimStaticDepositQuoteRpcInput
      x-stainless-model: wallets.spark_get_claim_static_deposit_quote_rpc_input
    SparkClaimStaticDepositRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - claimStaticDeposit
        params:
          $ref: '#/components/schemas/SparkClaimStaticDepositRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Claims a static deposit into the Spark wallet.
      title: SparkClaimStaticDepositRpcInput
      x-stainless-model: wallets.spark_claim_static_deposit_rpc_input
    SparkCreateLightningInvoiceRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - createLightningInvoice
        params:
          $ref: '#/components/schemas/SparkCreateLightningInvoiceRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Creates a Lightning invoice for the Spark wallet.
      title: SparkCreateLightningInvoiceRpcInput
      x-stainless-model: wallets.spark_create_lightning_invoice_rpc_input
    SparkPayLightningInvoiceRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - payLightningInvoice
        params:
          $ref: '#/components/schemas/SparkPayLightningInvoiceRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Pays a Lightning invoice from the Spark wallet.
      title: SparkPayLightningInvoiceRpcInput
      x-stainless-model: wallets.spark_pay_lightning_invoice_rpc_input
    SparkSignMessageWithIdentityKeyRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - signMessageWithIdentityKey
        params:
          $ref: '#/components/schemas/SparkSignMessageWithIdentityKeyRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Signs a message with the Spark identity key.
      title: SparkSignMessageWithIdentityKeyRpcInput
      x-stainless-model: wallets.spark_sign_message_with_identity_key_rpc_input
    SparkWithdrawRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - withdraw
        params:
          $ref: '#/components/schemas/SparkWithdrawRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Withdraws from Spark to a Bitcoin L1 address (cooperative exit).
      title: SparkWithdrawRpcInput
      x-stainless-model: wallets.spark_withdraw_rpc_input
    SparkGetWithdrawalFeeQuoteRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - getWithdrawalFeeQuote
        params:
          $ref: '#/components/schemas/SparkGetWithdrawalFeeQuoteRpcInputParams'
        network:
          allOf:
            - $ref: '#/components/schemas/SparkNetwork'
            - default: MAINNET
      required:
        - method
        - params
      additionalProperties: false
      description: Gets a fee quote for withdrawing from Spark to a Bitcoin L1 address.
      title: SparkGetWithdrawalFeeQuoteRpcInput
      x-stainless-model: wallets.spark_get_withdrawal_fee_quote_rpc_input
    TronSignTransactionRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - tron_signTransaction
        params:
          $ref: '#/components/schemas/TronSignTransactionRpcInputParams'
      required:
        - method
        - params
      additionalProperties: false
      description: >-
        Executes the Tron `tron_signTransaction` RPC to sign a transaction. The
        caller is responsible for broadcasting.
      title: TronSignTransactionRpcInput
      x-stainless-model: wallets.tron_sign_transaction_rpc_input
    TronSendTransactionRpcInput:
      type: object
      properties:
        method:
          type: string
          enum:
            - tron_sendTransaction
        caip2:
          $ref: '#/components/schemas/CAIP2'
        params:
          $ref: '#/components/schemas/TronSendTransactionRpcInputParams'
      required:
        - method
        - params
      additionalProperties: false
      description: >-
        Executes the Tron `tron_sendTransaction` RPC to sign and broadcast a
        transaction.
      title: TronSendTransactionRpcInput
      x-stainless-model: wallets.tron_send_transaction_rpc_input
    ExportPrivateKeyRpcInput:
      type: object
      properties:
        address:
          type: string
        method:
          type: string
          enum:
            - exportPrivateKey
        params:
          $ref: '#/components/schemas/PrivateKeyExportInput'
      required:
        - address
        - method
        - params
      additionalProperties: false
      description: Exports the private key of the wallet.
      title: ExportPrivateKeyRpcInput
      x-stainless-model: wallets.export_private_key_rpc_input
    ExportSeedPhraseRpcInput:
      type: object
      properties:
        address:
          type: string
        method:
          type: string
          enum:
            - exportSeedPhrase
        params:
          $ref: '#/components/schemas/SeedPhraseExportInput'
      required:
        - address
        - method
        - params
      additionalProperties: false
      description: Exports the seed phrase of the wallet.
      title: ExportSeedPhraseRpcInput
      x-stainless-model: wallets.export_seed_phrase_rpc_input
    BaseIntentResponse:
      type: object
      properties:
        intent_id:
          type: string
          description: Unique ID for the intent
        created_by_display_name:
          type: string
          description: Display name of the user who created the intent
        created_by_id:
          type: string
          description: >-
            ID of the user who created the intent. If undefined, the intent was
            created using the app secret
        created_at:
          type: number
          description: Unix timestamp when the intent was created
        resource_id:
          type: string
          description: ID of the resource being modified (wallet_id, policy_id, etc)
        authorization_details:
          type: array
          items:
            $ref: '#/components/schemas/IntentAuthorization'
          description: >-
            Detailed authorization information including key quorum members,
            thresholds, and signature status
        status:
          $ref: '#/components/schemas/IntentStatus'
        custom_expiry:
          type: boolean
          description: >-
            Whether this intent has a custom expiry time set by the client. If
            false, the intent expires after a default duration.
        expires_at:
          type: number
          description: Unix timestamp when the intent expires
        rejected_at:
          type: number
          description: >-
            Unix timestamp when the intent was rejected, present when status is
            'rejected'
        dismissed_at:
          type: number
          description: >-
            Unix timestamp when the intent was dismissed, present when status is
            'dismissed'
        dismissal_reason:
          type: string
          description: >-
            Human-readable reason for dismissal, present when status is
            'dismissed'
      required:
        - intent_id
        - created_by_display_name
        - created_at
        - resource_id
        - authorization_details
        - status
        - custom_expiry
        - expires_at
      description: Common fields shared by all intent response types.
      title: BaseIntentResponse
      x-stainless-model: intents.base_intent_response
    Wallet:
      type: object
      properties:
        id:
          type: string
          description: >-
            Unique ID of the wallet. This will be the primary identifier when
            using the wallet in the future.
        address:
          type: string
          description: Address of the wallet.
        display_name:
          type: string
          description: A human-readable label for the wallet.
        external_id:
          type: string
          description: >-
            A customer-provided identifier for mapping to external systems.
            Write-once, set only at creation.
        public_key:
          type: string
          description: >-
            The compressed, raw public key for the wallet along the chain
            cryptographic curve.
        created_at:
          type: number
          description: Unix timestamp of when the wallet was created in milliseconds.
        chain_type:
          $ref: '#/components/schemas/WalletChainType'
        policy_ids:
          type: array
          items:
            type: string
          description: List of policy IDs for policies that are enforced on the wallet.
        owner_id:
          type:
            - string
            - 'null'
          format: cuid2
          description: The key quorum ID of the owner of the wallet.
        additional_signers:
          $ref: '#/components/schemas/WalletAdditionalSigner'
        exported_at:
          type:
            - number
            - 'null'
          description: >-
            Unix timestamp of when the wallet was exported in milliseconds, if
            the wallet was exported.
        imported_at:
          type:
            - number
            - 'null'
          description: >-
            Unix timestamp of when the wallet was imported in milliseconds, if
            the wallet was imported.
        authorization_threshold:
          type: number
          description: The number of keys that must sign for an action to be valid.
        archived_at:
          type:
            - number
            - 'null'
          default: null
          description: >-
            Unix timestamp of when the wallet was archived in milliseconds, or
            null if the wallet is active.
        custody:
          $ref: '#/components/schemas/WalletCustodian'
      required:
        - id
        - address
        - created_at
        - chain_type
        - policy_ids
        - owner_id
        - additional_signers
        - exported_at
        - imported_at
      description: A wallet managed by Privy's wallet infrastructure.
      title: Wallet
      example:
        id: id2tptkqrxd39qo9j423etij
        address: '0xF1DBff66C993EE895C8cb176c30b07A559d76496'
        display_name: Treasury
        external_id: my-order-123
        chain_type: ethereum
        policy_ids: []
        additional_signers: []
        owner_id: rkiz0ivz254drv1xw982v3jq
        created_at: 1741834854578
        exported_at: null
        imported_at: null
        archived_at: null
      x-stainless-model: wallets.wallet
    BaseActionResult:
      type: object
      properties:
        status_code:
          type: number
          description: HTTP status code from the action execution
        executed_at:
          type: number
          description: Unix timestamp when the action was executed
        authorized_by_display_name:
          type: string
          description: Display name of the key quorum that authorized execution
        authorized_by_id:
          type: string
          description: ID of the key quorum that authorized execution
      required:
        - status_code
        - executed_at
      description: Common fields for intent action execution results.
      title: BaseActionResult
      x-stainless-model: intents.base_action_result
    WalletRpcResponse:
      oneOf:
        - $ref: '#/components/schemas/EthereumPersonalSignRpcResponse'
        - $ref: '#/components/schemas/EthereumSignTypedDataRpcResponse'
        - $ref: '#/components/schemas/EthereumSignTransactionRpcResponse'
        - $ref: '#/components/schemas/EthereumSendTransactionRpcResponse'
        - $ref: '#/components/schemas/EthereumSignUserOperationRpcResponse'
        - $ref: '#/components/schemas/EthereumSign7702AuthorizationRpcResponse'
        - $ref: '#/components/schemas/EthereumSecp256k1SignRpcResponse'
        - $ref: '#/components/schemas/EthereumSendCallsRpcResponse'
        - $ref: '#/components/schemas/SolanaSignMessageRpcResponse'
        - $ref: '#/components/schemas/SolanaSignTransactionRpcResponse'
        - $ref: '#/components/schemas/SolanaSignAndSendTransactionRpcResponse'
        - $ref: '#/components/schemas/SparkTransferRpcResponse'
        - $ref: '#/components/schemas/SparkGetBalanceRpcResponse'
        - $ref: '#/components/schemas/SparkTransferTokensRpcResponse'
        - $ref: '#/components/schemas/SparkGetStaticDepositAddressRpcResponse'
        - $ref: '#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponse'
        - $ref: '#/components/schemas/SparkClaimStaticDepositRpcResponse'
        - $ref: '#/components/schemas/SparkCreateLightningInvoiceRpcResponse'
        - $ref: '#/components/schemas/SparkPayLightningInvoiceRpcResponse'
        - $ref: '#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponse'
        - $ref: '#/components/schemas/SparkWithdrawRpcResponse'
        - $ref: '#/components/schemas/SparkGetWithdrawalFeeQuoteRpcResponse'
        - $ref: '#/components/schemas/TronSignTransactionRpcResponse'
        - $ref: '#/components/schemas/TronSendTransactionRpcResponse'
        - $ref: '#/components/schemas/ExportPrivateKeyRpcResponse'
        - $ref: '#/components/schemas/ExportSeedPhraseRpcResponse'
      discriminator:
        propertyName: method
        mapping:
          personal_sign:
            $ref: '#/components/schemas/EthereumPersonalSignRpcResponse'
          eth_signTypedData_v4:
            $ref: '#/components/schemas/EthereumSignTypedDataRpcResponse'
          eth_signTransaction:
            $ref: '#/components/schemas/EthereumSignTransactionRpcResponse'
          eth_sendTransaction:
            $ref: '#/components/schemas/EthereumSendTransactionRpcResponse'
          eth_signUserOperation:
            $ref: '#/components/schemas/EthereumSignUserOperationRpcResponse'
          eth_sign7702Authorization:
            $ref: '#/components/schemas/EthereumSign7702AuthorizationRpcResponse'
          secp256k1_sign:
            $ref: '#/components/schemas/EthereumSecp256k1SignRpcResponse'
          wallet_sendCalls:
            $ref: '#/components/schemas/EthereumSendCallsRpcResponse'
          signMessage:
            $ref: '#/components/schemas/SolanaSignMessageRpcResponse'
          signTransaction:
            $ref: '#/components/schemas/SolanaSignTransactionRpcResponse'
          signAndSendTransaction:
            $ref: '#/components/schemas/SolanaSignAndSendTransactionRpcResponse'
          transfer:
            $ref: '#/components/schemas/SparkTransferRpcResponse'
          getBalance:
            $ref: '#/components/schemas/SparkGetBalanceRpcResponse'
          transferTokens:
            $ref: '#/components/schemas/SparkTransferTokensRpcResponse'
          getStaticDepositAddress:
            $ref: '#/components/schemas/SparkGetStaticDepositAddressRpcResponse'
          getClaimStaticDepositQuote:
            $ref: '#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponse'
          claimStaticDeposit:
            $ref: '#/components/schemas/SparkClaimStaticDepositRpcResponse'
          createLightningInvoice:
            $ref: '#/components/schemas/SparkCreateLightningInvoiceRpcResponse'
          payLightningInvoice:
            $ref: '#/components/schemas/SparkPayLightningInvoiceRpcResponse'
          signMessageWithIdentityKey:
            $ref: '#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponse'
          withdraw:
            $ref: '#/components/schemas/SparkWithdrawRpcResponse'
          getWithdrawalFeeQuote:
            $ref: '#/components/schemas/SparkGetWithdrawalFeeQuoteRpcResponse'
          tron_signTransaction:
            $ref: '#/components/schemas/TronSignTransactionRpcResponse'
          tron_sendTransaction:
            $ref: '#/components/schemas/TronSendTransactionRpcResponse'
          exportPrivateKey:
            $ref: '#/components/schemas/ExportPrivateKeyRpcResponse'
          exportSeedPhrase:
            $ref: '#/components/schemas/ExportSeedPhraseRpcResponse'
      description: Response body for wallet RPC operations, discriminated by method.
      title: WalletRpcResponse
      example:
        method: eth_sendTransaction
        data:
          hash: '0x0775aeed9c9ce6e0fbc4db25c5e4e6368029651c905c286f813126a09025a21e'
          caip2: eip155:8453
          transaction_request:
            nonce: 1
            to: '0xF1DBff66C993EE895C8cb176c30b07A559d76496'
            from: '0x38Bc05d7b69F63D05337829fA5Dc4896F179B5fA'
            value: '0x1'
            gas_limit: '0x5208'
            max_fee_per_gas: '0xfc328'
            max_priority_fee_per_gas: '0xf4240'
            type: 2
            chain_id: '1'
      x-stainless-model: wallets.wallet_rpc_response
    EthereumSignTransactionRpcInputParams:
      type: object
      properties:
        transaction:
          $ref: '#/components/schemas/UnsignedEthereumTransaction'
      required:
        - transaction
      additionalProperties: false
      description: Parameters for the EVM `eth_signTransaction` RPC.
      title: EthereumSignTransactionRpcInputParams
      x-stainless-model: wallets.ethereum_sign_transaction_rpc_input_params
    CAIP2:
      type: string
      pattern: ^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$
      description: A valid CAIP-2 chain ID (e.g. 'eip155:1').
      title: CAIP2
      x-stainless-model: apps.caip_2
    EthereumSendTransactionRpcInputParams:
      type: object
      properties:
        transaction:
          $ref: '#/components/schemas/UnsignedEthereumTransaction'
      required:
        - transaction
      additionalProperties: false
      description: Parameters for the EVM `eth_sendTransaction` RPC.
      title: EthereumSendTransactionRpcInputParams
      x-stainless-model: wallets.ethereum_send_transaction_rpc_input_params
    Hex:
      type: string
      maxLength: 100002
      description: >-
        A hex-encoded string prefixed with '0x', capped at 100002 characters
        (50,000 bytes).
      title: Hex
      x-stainless-model: wallets.hex
    EthereumPersonalSignRpcInputParams:
      type: object
      properties:
        message:
          type: string
          maxLength: 100002
        encoding:
          anyOf:
            - type: string
              enum:
                - utf-8
            - type: string
              enum:
                - hex
      required:
        - message
        - encoding
      additionalProperties: false
      description: Parameters for the EVM `personal_sign` RPC.
      title: EthereumPersonalSignRpcInputParams
      x-stainless-model: wallets.ethereum_personal_sign_rpc_input_params
    SignatureOptions:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SignatureType'
      required:
        - type
      additionalProperties: false
      description: >-
        Options controlling signature production for personal_sign and
        eth_signTypedData_v4.
      title: SignatureOptions
      x-stainless-model: wallets.signature_options
    EthereumSignTypedDataRpcInputParams:
      type: object
      properties:
        typed_data:
          $ref: '#/components/schemas/EthereumTypedDataInput'
      required:
        - typed_data
      additionalProperties: false
      description: Parameters for the EVM `eth_signTypedData_v4` RPC.
      title: EthereumSignTypedDataRpcInputParams
      x-stainless-model: wallets.ethereum_sign_typed_data_rpc_input_params
    EthereumSecp256k1SignRpcInputParams:
      type: object
      properties:
        hash:
          $ref: '#/components/schemas/Hex'
      required:
        - hash
      additionalProperties: false
      description: Parameters for the EVM `secp256k1_sign` RPC.
      title: EthereumSecp256k1SignRpcInputParams
      x-stainless-model: wallets.ethereum_secp_256k_1_sign_rpc_input_params
    EthereumSign7702AuthorizationRpcInputParams:
      type: object
      properties:
        contract:
          type: string
        chain_id:
          $ref: '#/components/schemas/Quantity'
        nonce:
          $ref: '#/components/schemas/Quantity'
        executor:
          type: string
          enum:
            - self
      required:
        - contract
        - chain_id
      additionalProperties: false
      description: Parameters for the EVM `eth_sign7702Authorization` RPC.
      title: EthereumSign7702AuthorizationRpcInputParams
      x-stainless-model: wallets.ethereum_sign_7702_authorization_rpc_input_params
    EthereumSignUserOperationRpcInputParams:
      type: object
      properties:
        contract:
          type: string
        user_operation:
          $ref: '#/components/schemas/UserOperationInput'
        chain_id:
          $ref: '#/components/schemas/Quantity'
      required:
        - contract
        - user_operation
        - chain_id
      additionalProperties: false
      description: Parameters for the EVM `eth_signUserOperation` RPC.
      title: EthereumSignUserOperationRpcInputParams
      x-stainless-model: wallets.ethereum_sign_user_operation_rpc_input_params
    EthereumSendCallsRpcInputParams:
      type: object
      properties:
        calls:
          type: array
          items:
            $ref: '#/components/schemas/EthereumSendCallsCall'
          minItems: 1
          maxItems: 35
      required:
        - calls
      additionalProperties: false
      description: Parameters for the `wallet_sendCalls` RPC.
      title: EthereumSendCallsRpcInputParams
      x-stainless-model: wallets.ethereum_send_calls_rpc_input_params
    SolanaSignTransactionRpcInputParams:
      type: object
      properties:
        transaction:
          type: string
          maxLength: 100002
        encoding:
          type: string
          enum:
            - base64
      required:
        - transaction
        - encoding
      additionalProperties: false
      description: Parameters for the SVM `signTransaction` RPC.
      title: SolanaSignTransactionRpcInputParams
      x-stainless-model: wallets.solana_sign_transaction_rpc_input_params
    SolanaSignAndSendTransactionRpcInputParams:
      type: object
      properties:
        transaction:
          type: string
          maxLength: 100002
        encoding:
          type: string
          enum:
            - base64
      required:
        - transaction
        - encoding
      additionalProperties: false
      description: Parameters for the SVM `signAndSendTransaction` RPC.
      title: SolanaSignAndSendTransactionRpcInputParams
      x-stainless-model: wallets.solana_sign_and_send_transaction_rpc_input_params
    SolanaSignMessageRpcInputParams:
      type: object
      properties:
        message:
          type: string
          maxLength: 100002
        encoding:
          type: string
          enum:
            - base64
      required:
        - message
        - encoding
      additionalProperties: false
      description: Parameters for the SVM `signMessage` RPC.
      title: SolanaSignMessageRpcInputParams
      x-stainless-model: wallets.solana_sign_message_rpc_input_params
    SparkTransferRpcInputParams:
      type: object
      properties:
        receiver_spark_address:
          type: string
        amount_sats:
          type: number
      required:
        - receiver_spark_address
        - amount_sats
      additionalProperties: false
      description: Parameters for the Spark `transfer` RPC.
      title: SparkTransferRpcInputParams
      x-stainless-model: wallets.spark_transfer_rpc_input_params
    SparkNetwork:
      type: string
      enum:
        - MAINNET
        - REGTEST
      description: The Spark network.
      title: SparkNetwork
      x-stainless-model: wallets.spark_network
    SparkTransferTokensRpcInputParams:
      type: object
      properties:
        token_identifier:
          type: string
        token_amount:
          type: number
        receiver_spark_address:
          type: string
        output_selection_strategy:
          $ref: '#/components/schemas/SparkOutputSelectionStrategy'
        selected_outputs:
          type: array
          items:
            $ref: '#/components/schemas/OutputWithPreviousTransactionData'
      required:
        - token_identifier
        - token_amount
        - receiver_spark_address
      additionalProperties: false
      description: Parameters for the Spark `transferTokens` RPC.
      title: SparkTransferTokensRpcInputParams
      x-stainless-model: wallets.spark_transfer_tokens_rpc_input_params
    SparkGetClaimStaticDepositQuoteRpcInputParams:
      type: object
      properties:
        transaction_id:
          type: string
        output_index:
          type: number
      required:
        - transaction_id
      additionalProperties: false
      description: Parameters for the Spark `getClaimStaticDepositQuote` RPC.
      title: SparkGetClaimStaticDepositQuoteRpcInputParams
      x-stainless-model: wallets.spark_get_claim_static_deposit_quote_rpc_input_params
    SparkClaimStaticDepositRpcInputParams:
      type: object
      properties:
        transaction_id:
          type: string
        output_index:
          type: number
        credit_amount_sats:
          type: number
        signature:
          type: string
      required:
        - transaction_id
        - credit_amount_sats
        - signature
      additionalProperties: false
      description: Parameters for the Spark `claimStaticDeposit` RPC.
      title: SparkClaimStaticDepositRpcInputParams
      x-stainless-model: wallets.spark_claim_static_deposit_rpc_input_params
    SparkCreateLightningInvoiceRpcInputParams:
      type: object
      properties:
        amount_sats:
          type: number
        memo:
          type: string
        expiry_seconds:
          type: number
        include_spark_address:
          type: boolean
        receiver_identity_pubkey:
          type: string
        description_hash:
          type: string
      required:
        - amount_sats
      additionalProperties: false
      description: Parameters for the Spark `createLightningInvoice` RPC.
      title: SparkCreateLightningInvoiceRpcInputParams
      x-stainless-model: wallets.spark_create_lightning_invoice_rpc_input_params
    SparkPayLightningInvoiceRpcInputParams:
      type: object
      properties:
        invoice:
          type: string
        max_fee_sats:
          type: number
        prefer_spark:
          type: boolean
        amount_sats_to_send:
          type: number
      required:
        - invoice
        - max_fee_sats
      additionalProperties: false
      description: Parameters for the Spark `payLightningInvoice` RPC.
      title: SparkPayLightningInvoiceRpcInputParams
      x-stainless-model: wallets.spark_pay_lightning_invoice_rpc_input_params
    SparkSignMessageWithIdentityKeyRpcInputParams:
      type: object
      properties:
        message:
          type: string
        compact:
          type: boolean
      required:
        - message
      additionalProperties: false
      description: Parameters for the Spark `signMessageWithIdentityKey` RPC.
      title: SparkSignMessageWithIdentityKeyRpcInputParams
      x-stainless-model: wallets.spark_sign_message_with_identity_key_rpc_input_params
    SparkWithdrawRpcInputParams:
      type: object
      properties:
        onchain_address:
          type: string
        exit_speed:
          $ref: '#/components/schemas/SparkExitSpeed'
        amount_sats:
          type: number
        fee_amount_sats:
          type: number
        fee_quote_id:
          type: string
        deduct_fee_from_withdrawal_amount:
          type: boolean
      required:
        - onchain_address
        - exit_speed
      additionalProperties: false
      description: Parameters for the Spark `withdraw` RPC.
      title: SparkWithdrawRpcInputParams
      x-stainless-model: wallets.spark_withdraw_rpc_input_params
    SparkGetWithdrawalFeeQuoteRpcInputParams:
      type: object
      properties:
        amount_sats:
          type: number
        onchain_address:
          type: string
      required:
        - amount_sats
        - onchain_address
      additionalProperties: false
      description: Parameters for the Spark `getWithdrawalFeeQuote` RPC.
      title: SparkGetWithdrawalFeeQuoteRpcInputParams
      x-stainless-model: wallets.spark_get_withdrawal_fee_quote_rpc_input_params
    TronSignTransactionRpcInputParams:
      type: object
      properties:
        raw_data:
          $ref: '#/components/schemas/TronRawDataForSign'
      required:
        - raw_data
      additionalProperties: false
      description: Parameters for the Tron `tron_signTransaction` RPC.
      title: TronSignTransactionRpcInputParams
      x-stainless-model: wallets.tron_sign_transaction_rpc_input_params
    TronSendTransactionRpcInputParams:
      type: object
      properties:
        raw_data:
          $ref: '#/components/schemas/TronRawDataForSend'
        reference_id:
          type: string
          maxLength: 64
      required:
        - raw_data
      additionalProperties: false
      description: Parameters for the Tron `tron_sendTransaction` RPC.
      title: TronSendTransactionRpcInputParams
      x-stainless-model: wallets.tron_send_transaction_rpc_input_params
    PrivateKeyExportInput:
      type: object
      properties:
        encryption_type:
          $ref: '#/components/schemas/HPKEEncryption'
        recipient_public_key:
          $ref: '#/components/schemas/RecipientPublicKey'
        export_type:
          $ref: '#/components/schemas/ExportType'
        export_seed_phrase:
          type: boolean
      required:
        - encryption_type
        - recipient_public_key
      additionalProperties: false
      description: >-
        Input for exporting a wallet (private key or seed phrase) with HPKE
        encryption.
      title: PrivateKeyExportInput
      x-stainless-model: wallets.private_key_export_input
    SeedPhraseExportInput:
      type: object
      properties:
        encryption_type:
          $ref: '#/components/schemas/HPKEEncryption'
        recipient_public_key:
          $ref: '#/components/schemas/RecipientPublicKey'
        export_type:
          $ref: '#/components/schemas/ExportType'
        export_seed_phrase:
          type: boolean
      required:
        - encryption_type
        - recipient_public_key
      additionalProperties: false
      description: >-
        Input for exporting a wallet (private key or seed phrase) with HPKE
        encryption.
      title: SeedPhraseExportInput
      x-stainless-model: wallets.seed_phrase_export_input
    IntentAuthorization:
      type: object
      properties:
        members:
          type: array
          items:
            $ref: '#/components/schemas/IntentAuthorizationMember'
          description: Members in this authorization quorum
        threshold:
          type: number
          description: Number of signatures required to satisfy this quorum
        display_name:
          type: string
          description: Display name of the key quorum
      required:
        - members
        - threshold
      description: Authorization quorum for an intent
      title: IntentAuthorization
      x-stainless-model: intents.intent_authorization
    IntentStatus:
      type: string
      enum:
        - pending
        - processing
        - executed
        - failed
        - expired
        - rejected
        - dismissed
      description: Current status of an intent.
      title: IntentStatus
      x-stainless-model: intents.intent_status
    WalletChainType:
      type: string
      enum:
        - ethereum
        - solana
        - cosmos
        - stellar
        - sui
        - aptos
        - movement
        - tron
        - bitcoin-segwit
        - bitcoin-taproot
        - pearl
        - near
        - ton
        - starknet
        - spark
      description: The wallet chain types.
      title: WalletChainType
      x-stainless-model: wallets.wallet_chain_type
    WalletAdditionalSigner:
      type: array
      items:
        $ref: '#/components/schemas/WalletAdditionalSignerItem'
      description: Additional signers for the wallet.
      title: WalletAdditionalSigner
      x-stainless-model: wallets.wallet_additional_signer
    WalletCustodian:
      type: object
      properties:
        provider:
          type: string
          description: The custodian responsible for the wallet.
        provider_user_id:
          type: string
          description: The resource ID of the beneficiary of the custodial wallet.
      required:
        - provider
        - provider_user_id
      description: Information about the custodian managing this wallet.
      title: WalletCustodian
      x-stainless-model: wallets.wallet_custodian
    EthereumPersonalSignRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - personal_sign
        data:
          $ref: '#/components/schemas/EthereumPersonalSignRpcResponseData'
      required:
        - method
        - data
      description: Response to the EVM `personal_sign` RPC.
      title: EthereumPersonalSignRpcResponse
      x-stainless-model: wallets.ethereum_personal_sign_rpc_response
    EthereumSignTypedDataRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_signTypedData_v4
        data:
          $ref: '#/components/schemas/EthereumSignTypedDataRpcResponseData'
      required:
        - method
        - data
      description: Response to the EVM `eth_signTypedData_v4` RPC.
      title: EthereumSignTypedDataRpcResponse
      x-stainless-model: wallets.ethereum_sign_typed_data_rpc_response
    EthereumSignTransactionRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_signTransaction
        data:
          $ref: '#/components/schemas/EthereumSignTransactionRpcResponseData'
      required:
        - method
        - data
      description: Response to the EVM `eth_signTransaction` RPC.
      title: EthereumSignTransactionRpcResponse
      x-stainless-model: wallets.ethereum_sign_transaction_rpc_response
    EthereumSendTransactionRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_sendTransaction
        data:
          $ref: '#/components/schemas/EthereumSendTransactionRpcResponseData'
      required:
        - method
        - data
      description: Response to the EVM `eth_sendTransaction` RPC.
      title: EthereumSendTransactionRpcResponse
      x-stainless-model: wallets.ethereum_send_transaction_rpc_response
    EthereumSignUserOperationRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_signUserOperation
        data:
          $ref: '#/components/schemas/EthereumSignUserOperationRpcResponseData'
      required:
        - method
        - data
      description: Response to the EVM `eth_signUserOperation` RPC.
      title: EthereumSignUserOperationRpcResponse
      x-stainless-model: wallets.ethereum_sign_user_operation_rpc_response
    EthereumSign7702AuthorizationRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - eth_sign7702Authorization
        data:
          $ref: '#/components/schemas/EthereumSign7702AuthorizationRpcResponseData'
      required:
        - method
        - data
      description: Response to the EVM `eth_sign7702Authorization` RPC.
      title: EthereumSign7702AuthorizationRpcResponse
      x-stainless-model: wallets.ethereum_sign_7702_authorization_rpc_response
    EthereumSecp256k1SignRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - secp256k1_sign
        data:
          $ref: '#/components/schemas/EthereumSecp256k1SignRpcResponseData'
      required:
        - method
        - data
      description: Response to the EVM `secp256k1_sign` RPC.
      title: EthereumSecp256k1SignRpcResponse
      x-stainless-model: wallets.ethereum_secp_256k_1_sign_rpc_response
    EthereumSendCallsRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - wallet_sendCalls
        data:
          $ref: '#/components/schemas/EthereumSendCallsRpcResponseData'
      required:
        - method
        - data
      description: Response to the `wallet_sendCalls` RPC.
      title: EthereumSendCallsRpcResponse
      x-stainless-model: wallets.ethereum_send_calls_rpc_response
    SolanaSignMessageRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - signMessage
        data:
          $ref: '#/components/schemas/SolanaSignMessageRpcResponseData'
      required:
        - method
        - data
      description: Response to the SVM `signMessage` RPC.
      title: SolanaSignMessageRpcResponse
      x-stainless-model: wallets.solana_sign_message_rpc_response
    SolanaSignTransactionRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - signTransaction
        data:
          $ref: '#/components/schemas/SolanaSignTransactionRpcResponseData'
      required:
        - method
        - data
      description: Response to the SVM `signTransaction` RPC.
      title: SolanaSignTransactionRpcResponse
      x-stainless-model: wallets.solana_sign_transaction_rpc_response
    SolanaSignAndSendTransactionRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - signAndSendTransaction
        data:
          $ref: '#/components/schemas/SolanaSignAndSendTransactionRpcResponseData'
      required:
        - method
        - data
      description: Response to the SVM `signAndSendTransaction` RPC.
      title: SolanaSignAndSendTransactionRpcResponse
      x-stainless-model: wallets.solana_sign_and_send_transaction_rpc_response
    SparkTransferRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - transfer
        data:
          $ref: '#/components/schemas/SparkTransfer'
      required:
        - method
      description: Response to the Spark `transfer` RPC.
      title: SparkTransferRpcResponse
      x-stainless-model: wallets.spark_transfer_rpc_response
    SparkGetBalanceRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - getBalance
        data:
          $ref: '#/components/schemas/SparkBalance'
      required:
        - method
      description: Response to the Spark `getBalance` RPC.
      title: SparkGetBalanceRpcResponse
      x-stainless-model: wallets.spark_get_balance_rpc_response
    SparkTransferTokensRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - transferTokens
        data:
          $ref: '#/components/schemas/SparkTransferTokensRpcResponseData'
      required:
        - method
      description: Response to the Spark `transferTokens` RPC.
      title: SparkTransferTokensRpcResponse
      x-stainless-model: wallets.spark_transfer_tokens_rpc_response
    SparkGetStaticDepositAddressRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - getStaticDepositAddress
        data:
          $ref: '#/components/schemas/SparkGetStaticDepositAddressRpcResponseData'
      required:
        - method
      description: Response to the Spark `getStaticDepositAddress` RPC.
      title: SparkGetStaticDepositAddressRpcResponse
      x-stainless-model: wallets.spark_get_static_deposit_address_rpc_response
    SparkGetClaimStaticDepositQuoteRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - getClaimStaticDepositQuote
        data:
          $ref: '#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponseData'
      required:
        - method
      description: Response to the Spark `getClaimStaticDepositQuote` RPC.
      title: SparkGetClaimStaticDepositQuoteRpcResponse
      x-stainless-model: wallets.spark_get_claim_static_deposit_quote_rpc_response
    SparkClaimStaticDepositRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - claimStaticDeposit
        data:
          $ref: '#/components/schemas/SparkClaimStaticDepositRpcResponseData'
      required:
        - method
      description: Response to the Spark `claimStaticDeposit` RPC.
      title: SparkClaimStaticDepositRpcResponse
      x-stainless-model: wallets.spark_claim_static_deposit_rpc_response
    SparkCreateLightningInvoiceRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - createLightningInvoice
        data:
          $ref: '#/components/schemas/SparkLightningReceiveRequest'
      required:
        - method
      description: Response to the Spark `createLightningInvoice` RPC.
      title: SparkCreateLightningInvoiceRpcResponse
      x-stainless-model: wallets.spark_create_lightning_invoice_rpc_response
    SparkPayLightningInvoiceRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - payLightningInvoice
        data:
          anyOf:
            - $ref: '#/components/schemas/SparkTransfer'
            - $ref: '#/components/schemas/SparkLightningSendRequest'
      required:
        - method
      description: Response to the Spark `payLightningInvoice` RPC.
      title: SparkPayLightningInvoiceRpcResponse
      x-stainless-model: wallets.spark_pay_lightning_invoice_rpc_response
    SparkSignMessageWithIdentityKeyRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - signMessageWithIdentityKey
        data:
          $ref: '#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponseData'
      required:
        - method
      description: Response to the Spark `signMessageWithIdentityKey` RPC.
      title: SparkSignMessageWithIdentityKeyRpcResponse
      x-stainless-model: wallets.spark_sign_message_with_identity_key_rpc_response
    SparkWithdrawRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - withdraw
        data:
          $ref: '#/components/schemas/SparkCoopExitRequest'
      required:
        - method
      description: Response to the Spark `withdraw` RPC.
      title: SparkWithdrawRpcResponse
      x-stainless-model: wallets.spark_withdraw_rpc_response
    SparkGetWithdrawalFeeQuoteRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - getWithdrawalFeeQuote
        data:
          $ref: '#/components/schemas/SparkCoopExitFeeQuote'
      required:
        - method
      description: Response to the Spark `getWithdrawalFeeQuote` RPC.
      title: SparkGetWithdrawalFeeQuoteRpcResponse
      x-stainless-model: wallets.spark_get_withdrawal_fee_quote_rpc_response
    TronSignTransactionRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - tron_signTransaction
        data:
          $ref: '#/components/schemas/TronSignTransactionRpcResponseData'
      required:
        - method
        - data
      additionalProperties: false
      description: Response to the Tron `tron_signTransaction` RPC.
      title: TronSignTransactionRpcResponse
      x-stainless-model: wallets.tron_sign_transaction_rpc_response
    TronSendTransactionRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - tron_sendTransaction
        data:
          $ref: '#/components/schemas/TronSendTransactionRpcResponseData'
      required:
        - method
        - data
      additionalProperties: false
      description: Response to the Tron `tron_sendTransaction` RPC.
      title: TronSendTransactionRpcResponse
      x-stainless-model: wallets.tron_send_transaction_rpc_response
    ExportPrivateKeyRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - exportPrivateKey
        data:
          $ref: '#/components/schemas/PrivateKeyExportInput'
      required:
        - method
        - data
      description: Response to the `exportPrivateKey` RPC.
      title: ExportPrivateKeyRpcResponse
      x-stainless-model: wallets.export_private_key_rpc_response
    ExportSeedPhraseRpcResponse:
      type: object
      properties:
        method:
          type: string
          enum:
            - exportSeedPhrase
        data:
          $ref: '#/components/schemas/SeedPhraseExportResponse'
      required:
        - method
        - data
      description: Response to the `exportSeedPhrase` RPC.
      title: ExportSeedPhraseRpcResponse
      x-stainless-model: wallets.export_seed_phrase_rpc_response
    UnsignedEthereumTransaction:
      anyOf:
        - $ref: '#/components/schemas/UnsignedStandardEthereumTransaction'
        - $ref: '#/components/schemas/UnsignedTempoTransaction'
      description: >-
        An unsigned Ethereum transaction object. Supports standard EVM
        transaction types (0, 1, 2, 4) and Tempo transactions (type 118).
      title: UnsignedEthereumTransaction
      x-stainless-model: wallets.unsigned_ethereum_transaction
    SignatureType:
      type: string
      enum:
        - ecdsa
        - erc1271
      description: >-
        The type of cryptographic signature to produce. Use "ecdsa" for standard
        ECDSA signatures, or "erc1271" for ERC-1271 compliant signatures for
        smart account wallets.
      title: SignatureType
      x-stainless-model: wallets.signature_type
    EthereumTypedDataInput:
      type: object
      properties:
        domain:
          $ref: '#/components/schemas/TypedDataDomainInputParams'
        types:
          $ref: '#/components/schemas/TypedDataTypesInputParams'
        message:
          type: object
          additionalProperties:
            x-stainless-any: true
        primary_type:
          type: string
      required:
        - domain
        - types
        - message
        - primary_type
      additionalProperties: false
      description: EIP-712 typed data object.
      title: EthereumTypedDataInput
      x-stainless-model: wallets.ethereum_typed_data_input
    Quantity:
      anyOf:
        - $ref: '#/components/schemas/Hex'
        - type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      description: >-
        A quantity value that can be either a hex string starting with '0x' or a
        non-negative integer.
      title: Quantity
      x-stainless-model: wallets.quantity
    UserOperationInput:
      type: object
      properties:
        sender:
          type: string
        nonce:
          $ref: '#/components/schemas/Hex'
        call_data:
          $ref: '#/components/schemas/Hex'
        paymaster:
          type: string
        paymaster_data:
          $ref: '#/components/schemas/Hex'
        paymaster_post_op_gas_limit:
          $ref: '#/components/schemas/Hex'
        paymaster_verification_gas_limit:
          $ref: '#/components/schemas/Hex'
        max_priority_fee_per_gas:
          $ref: '#/components/schemas/Hex'
        max_fee_per_gas:
          $ref: '#/components/schemas/Hex'
        call_gas_limit:
          $ref: '#/components/schemas/Hex'
        verification_gas_limit:
          $ref: '#/components/schemas/Hex'
        pre_verification_gas:
          $ref: '#/components/schemas/Hex'
      required:
        - sender
        - nonce
        - call_data
        - max_priority_fee_per_gas
        - max_fee_per_gas
        - call_gas_limit
        - verification_gas_limit
        - pre_verification_gas
      additionalProperties: false
      description: An ERC-4337 user operation.
      title: UserOperationInput
      x-stainless-model: wallets.user_operation_input
    EthereumSendCallsCall:
      type: object
      properties:
        to:
          type: string
        value:
          $ref: '#/components/schemas/Quantity'
        data:
          $ref: '#/components/schemas/Hex'
      required:
        - to
      additionalProperties: false
      description: A single call within a batched wallet_sendCalls request.
      title: EthereumSendCallsCall
      x-stainless-model: wallets.ethereum_send_calls_call
    SparkOutputSelectionStrategy:
      type: string
      enum:
        - SMALL_FIRST
        - LARGE_FIRST
      description: Strategy for selecting outputs in a Spark token transfer.
      title: SparkOutputSelectionStrategy
      x-stainless-model: wallets.spark_output_selection_strategy
    OutputWithPreviousTransactionData:
      type: object
      properties:
        output:
          $ref: '#/components/schemas/TokenOutput'
        previous_transaction_hash:
          type: string
        previous_transaction_vout:
          type: number
      required:
        - previous_transaction_hash
        - previous_transaction_vout
      description: A Spark token output with its previous transaction data.
      title: OutputWithPreviousTransactionData
      x-stainless-model: wallets.output_with_previous_transaction_data
    SparkExitSpeed:
      type: string
      enum:
        - FAST
        - MEDIUM
        - SLOW
      description: The exit speed for a cooperative withdrawal from Spark to L1.
      title: SparkExitSpeed
      x-stainless-model: wallets.spark_exit_speed
    TronRawDataForSign:
      type: object
      properties:
        contract:
          type: array
          items:
            $ref: '#/components/schemas/TronContract'
        data:
          type: string
          pattern: ^(?:[0-9a-fA-F]{2})*$
        timestamp:
          type: integer
          minimum: 0
        fee_limit:
          type: integer
          minimum: 0
        ref_block_bytes:
          type: string
          pattern: ^[0-9a-fA-F]{4}$
        ref_block_hash:
          type: string
          pattern: ^[0-9a-fA-F]{16}$
        expiration:
          type: integer
          minimum: 0
      required:
        - contract
        - ref_block_bytes
        - ref_block_hash
        - expiration
      additionalProperties: false
      description: >-
        Tron raw_data for tron_signTransaction. Block reference fields are
        required; caller is responsible for fetching them.
      title: TronRawDataForSign
      x-stainless-model: wallets.tron_raw_data_for_sign
    TronRawDataForSend:
      type: object
      properties:
        contract:
          type: array
          items:
            $ref: '#/components/schemas/TronContract'
        data:
          type: string
          pattern: ^(?:[0-9a-fA-F]{2})*$
        timestamp:
          type: integer
          minimum: 0
        fee_limit:
          type: integer
          minimum: 0
        ref_block_bytes:
          type: string
          pattern: ^[0-9a-fA-F]{4}$
        ref_block_hash:
          type: string
          pattern: ^[0-9a-fA-F]{16}$
        expiration:
          type: integer
          minimum: 0
      required:
        - contract
      additionalProperties: false
      description: >-
        Tron raw_data for tron_sendTransaction. Block reference fields are
        optional; Privy fetches fresh values if omitted.
      title: TronRawDataForSend
      x-stainless-model: wallets.tron_raw_data_for_send
    HPKEEncryption:
      type: string
      enum:
        - HPKE
      description: >-
        The encryption type of the wallet to import. Currently only supports
        `HPKE`.
      title: HPKEEncryption
      x-stainless-model: wallets.hpke_encryption
    RecipientPublicKey:
      anyOf:
        - type: string
          pattern: >-
            ^-----BEGIN PUBLIC KEY-----\n[A-Za-z0-9+/=\n]+-----END PUBLIC
            KEY-----\n$
        - type: string
          pattern: ^[A-Za-z0-9+/=]+$
      description: >-
        The recipient public key for HPKE encryption, in PEM or DER
        (base64-encoded) format.
      title: RecipientPublicKey
      x-stainless-model: wallets.recipient_public_key
    ExportType:
      type: string
      enum:
        - display
        - client
      description: >-
        The export type. 'display' is for showing the key to the user in the UI,
        'client' is for exporting to the client application.
      title: ExportType
      x-stainless-model: wallets.export_type
    IntentAuthorizationMember:
      oneOf:
        - $ref: '#/components/schemas/IntentAuthorizationUserMember'
        - $ref: '#/components/schemas/IntentAuthorizationKeyMember'
        - $ref: '#/components/schemas/IntentAuthorizationKeyQuorum'
      discriminator:
        propertyName: type
        mapping:
          user:
            $ref: '#/components/schemas/IntentAuthorizationUserMember'
          key:
            $ref: '#/components/schemas/IntentAuthorizationKeyMember'
          key_quorum:
            $ref: '#/components/schemas/IntentAuthorizationKeyQuorum'
      description: >-
        A member of an intent authorization quorum. Can be a user, key, or
        nested key quorum.
      title: IntentAuthorizationMember
      x-stainless-model: intents.intent_authorization_member
    WalletAdditionalSignerItem:
      type: object
      properties:
        signer_id:
          $ref: '#/components/schemas/KeyQuorumId'
        override_policy_ids:
          $ref: '#/components/schemas/PolicyInput'
      required:
        - signer_id
      additionalProperties: false
      description: >-
        A single additional signer on a wallet, with an optional policy
        override.
      title: WalletAdditionalSignerItem
      x-stainless-model: wallets.wallet_additional_signer_item
    EthereumPersonalSignRpcResponseData:
      type: object
      properties:
        signature:
          type: string
        encoding:
          type: string
          enum:
            - hex
      required:
        - signature
        - encoding
      description: Data returned by the EVM `personal_sign` RPC.
      title: EthereumPersonalSignRpcResponseData
      x-stainless-model: wallets.ethereum_personal_sign_rpc_response_data
    EthereumSignTypedDataRpcResponseData:
      type: object
      properties:
        signature:
          type: string
        encoding:
          type: string
          enum:
            - hex
      required:
        - signature
        - encoding
      description: Data returned by the EVM `eth_signTypedData_v4` RPC.
      title: EthereumSignTypedDataRpcResponseData
      x-stainless-model: wallets.ethereum_sign_typed_data_rpc_response_data
    EthereumSignTransactionRpcResponseData:
      type: object
      properties:
        signed_transaction:
          type: string
        encoding:
          type: string
          enum:
            - rlp
      required:
        - signed_transaction
        - encoding
      description: Data returned by the EVM `eth_signTransaction` RPC.
      title: EthereumSignTransactionRpcResponseData
      x-stainless-model: wallets.ethereum_sign_transaction_rpc_response_data
    EthereumSendTransactionRpcResponseData:
      type: object
      properties:
        transaction_id:
          type: string
        hash:
          type: string
        caip2:
          $ref: '#/components/schemas/CAIP2'
        transaction_request:
          $ref: '#/components/schemas/UnsignedEthereumTransaction'
        user_operation_hash:
          type: string
        reference_id:
          type:
            - string
            - 'null'
      required:
        - hash
        - caip2
      description: Data returned by the EVM `eth_sendTransaction` RPC.
      title: EthereumSendTransactionRpcResponseData
      x-stainless-model: wallets.ethereum_send_transaction_rpc_response_data
    EthereumSignUserOperationRpcResponseData:
      type: object
      properties:
        signature:
          type: string
        encoding:
          type: string
          enum:
            - hex
      required:
        - signature
        - encoding
      description: Data returned by the EVM `eth_signUserOperation` RPC.
      title: EthereumSignUserOperationRpcResponseData
      x-stainless-model: wallets.ethereum_sign_user_operation_rpc_response_data
    EthereumSign7702AuthorizationRpcResponseData:
      type: object
      properties:
        authorization:
          $ref: '#/components/schemas/EthereumSign7702Authorization'
      required:
        - authorization
      description: Data returned by the EVM `eth_sign7702Authorization` RPC.
      title: EthereumSign7702AuthorizationRpcResponseData
      x-stainless-model: wallets.ethereum_sign_7702_authorization_rpc_response_data
    EthereumSecp256k1SignRpcResponseData:
      type: object
      properties:
        signature:
          $ref: '#/components/schemas/Hex'
        encoding:
          type: string
          enum:
            - hex
      required:
        - signature
        - encoding
      description: Data returned by the EVM `secp256k1_sign` RPC.
      title: EthereumSecp256k1SignRpcResponseData
      x-stainless-model: wallets.ethereum_secp_256k_1_sign_rpc_response_data
    EthereumSendCallsRpcResponseData:
      type: object
      properties:
        transaction_id:
          type: string
        caip2:
          $ref: '#/components/schemas/CAIP2'
      required:
        - transaction_id
        - caip2
      description: Data returned by the `wallet_sendCalls` RPC.
      title: EthereumSendCallsRpcResponseData
      x-stainless-model: wallets.ethereum_send_calls_rpc_response_data
    SolanaSignMessageRpcResponseData:
      type: object
      properties:
        signature:
          type: string
        encoding:
          type: string
          enum:
            - base64
      required:
        - signature
        - encoding
      description: Data returned by the SVM `signMessage` RPC.
      title: SolanaSignMessageRpcResponseData
      x-stainless-model: wallets.solana_sign_message_rpc_response_data
    SolanaSignTransactionRpcResponseData:
      type: object
      properties:
        signed_transaction:
          type: string
        encoding:
          type: string
          enum:
            - base64
      required:
        - signed_transaction
        - encoding
      description: Data returned by the SVM `signTransaction` RPC.
      title: SolanaSignTransactionRpcResponseData
      x-stainless-model: wallets.solana_sign_transaction_rpc_response_data
    SolanaSignAndSendTransactionRpcResponseData:
      type: object
      properties:
        transaction_id:
          type: string
        hash:
          type: string
        caip2:
          $ref: '#/components/schemas/CAIP2'
        reference_id:
          type:
            - string
            - 'null'
        signed_transaction:
          type: string
      required:
        - hash
        - caip2
      description: Data returned by the SVM `signAndSendTransaction` RPC.
      title: SolanaSignAndSendTransactionRpcResponseData
      x-stainless-model: wallets.solana_sign_and_send_transaction_rpc_response_data
    SparkTransfer:
      type: object
      properties:
        id:
          type: string
        sender_identity_public_key:
          type: string
        receiver_identity_public_key:
          type: string
        status:
          type: string
        total_value:
          type: number
        expiry_time:
          type: string
        leaves:
          type: array
          items:
            $ref: '#/components/schemas/SparkTransferLeaf'
        created_time:
          type: string
        updated_time:
          type: string
        type:
          type: string
        transfer_direction:
          type: string
      required:
        - id
        - sender_identity_public_key
        - receiver_identity_public_key
        - status
        - total_value
        - leaves
        - type
        - transfer_direction
      description: A Spark transfer.
      title: SparkTransfer
      x-stainless-model: wallets.spark_transfer
    SparkBalance:
      type: object
      properties:
        balance:
          type: string
        token_balances:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SparkTokenBalance'
      required:
        - balance
        - token_balances
      description: The balance of a Spark wallet.
      title: SparkBalance
      x-stainless-model: wallets.spark_balance
    SparkTransferTokensRpcResponseData:
      type: object
      properties:
        id:
          type: string
      required:
        - id
      description: Data returned by the Spark `transferTokens` RPC.
      title: SparkTransferTokensRpcResponseData
      x-stainless-model: wallets.spark_transfer_tokens_rpc_response_data
    SparkGetStaticDepositAddressRpcResponseData:
      type: object
      properties:
        address:
          type: string
      required:
        - address
      description: Data returned by the Spark `getStaticDepositAddress` RPC.
      title: SparkGetStaticDepositAddressRpcResponseData
      x-stainless-model: wallets.spark_get_static_deposit_address_rpc_response_data
    SparkGetClaimStaticDepositQuoteRpcResponseData:
      type: object
      properties:
        transaction_id:
          type: string
        output_index:
          type: number
        network:
          type: string
        credit_amount_sats:
          type: number
        signature:
          type: string
      required:
        - transaction_id
        - output_index
        - network
        - credit_amount_sats
        - signature
      description: Data returned by the Spark `getClaimStaticDepositQuote` RPC.
      title: SparkGetClaimStaticDepositQuoteRpcResponseData
      x-stainless-model: wallets.spark_get_claim_static_deposit_quote_rpc_response_data
    SparkClaimStaticDepositRpcResponseData:
      type: object
      properties:
        transfer_id:
          type: string
      required:
        - transfer_id
      description: Data returned by the Spark `claimStaticDeposit` RPC.
      title: SparkClaimStaticDepositRpcResponseData
      x-stainless-model: wallets.spark_claim_static_deposit_rpc_response_data
    SparkLightningReceiveRequest:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        network:
          type: string
        invoice:
          x-stainless-any: true
        status:
          type: string
        typename:
          type: string
        transfer:
          x-stainless-any: true
        payment_preimage:
          type: string
        receiver_identity_public_key:
          type: string
      required:
        - id
        - created_at
        - updated_at
        - network
        - status
        - typename
      description: A Spark Lightning receive request.
      title: SparkLightningReceiveRequest
      x-stainless-model: wallets.spark_lightning_receive_request
    SparkLightningSendRequest:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        network:
          type: string
        encoded_invoice:
          type: string
        fee:
          $ref: '#/components/schemas/SparkLightningFee'
        idempotency_key:
          type: string
        status:
          type: string
        typename:
          type: string
        transfer:
          x-stainless-any: true
        payment_preimage:
          type: string
      required:
        - id
        - created_at
        - updated_at
        - network
        - encoded_invoice
        - fee
        - idempotency_key
        - status
        - typename
      description: A Spark Lightning send request.
      title: SparkLightningSendRequest
      x-stainless-model: wallets.spark_lightning_send_request
    SparkSignMessageWithIdentityKeyRpcResponseData:
      type: object
      properties:
        signature:
          type: string
      required:
        - signature
      description: Data returned by the Spark `signMessageWithIdentityKey` RPC.
      title: SparkSignMessageWithIdentityKeyRpcResponseData
      x-stainless-model: wallets.spark_sign_message_with_identity_key_rpc_response_data
    SparkCoopExitRequest:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        network:
          type: string
        fee:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        l1_broadcast_fee:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        status:
          type: string
        expires_at:
          type: string
        coop_exit_txid:
          type: string
        fee_quote_id:
          type: string
        exit_speed:
          $ref: '#/components/schemas/SparkExitSpeed'
      required:
        - id
        - created_at
        - updated_at
        - network
        - fee
        - l1_broadcast_fee
        - status
        - expires_at
        - coop_exit_txid
      description: A cooperative exit request from Spark to Bitcoin L1.
      title: SparkCoopExitRequest
      x-stainless-model: wallets.spark_coop_exit_request
    SparkCoopExitFeeQuote:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        network:
          type: string
        total_amount:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        user_fee_fast:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        user_fee_medium:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        user_fee_slow:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        l1_broadcast_fee_fast:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        l1_broadcast_fee_medium:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        l1_broadcast_fee_slow:
          $ref: '#/components/schemas/SparkCurrencyAmount'
        expires_at:
          type: string
      required:
        - id
        - created_at
        - updated_at
        - network
        - total_amount
        - user_fee_fast
        - user_fee_medium
        - user_fee_slow
        - l1_broadcast_fee_fast
        - l1_broadcast_fee_medium
        - l1_broadcast_fee_slow
        - expires_at
      description: A fee quote for a cooperative exit from Spark to Bitcoin L1.
      title: SparkCoopExitFeeQuote
      x-stainless-model: wallets.spark_coop_exit_fee_quote
    TronSignTransactionRpcResponseData:
      type: object
      properties:
        signed_transaction:
          type: string
        encoding:
          type: string
          enum:
            - hex
      required:
        - signed_transaction
        - encoding
      additionalProperties: false
      description: Data returned by the Tron `tron_signTransaction` RPC.
      title: TronSignTransactionRpcResponseData
      x-stainless-model: wallets.tron_sign_transaction_rpc_response_data
    TronSendTransactionRpcResponseData:
      type: object
      properties:
        hash:
          type: string
        caip2:
          $ref: '#/components/schemas/CAIP2'
        transaction_id:
          type: string
        reference_id:
          type: string
      required:
        - hash
        - caip2
        - transaction_id
      additionalProperties: false
      description: Data returned by the Tron `tron_sendTransaction` RPC.
      title: TronSendTransactionRpcResponseData
      x-stainless-model: wallets.tron_send_transaction_rpc_response_data
    SeedPhraseExportResponse:
      type: object
      properties:
        encryption_type:
          $ref: '#/components/schemas/HPKEEncryption'
        ciphertext:
          type: string
        encapsulated_key:
          type: string
      required:
        - encryption_type
        - ciphertext
        - encapsulated_key
      description: >-
        Response containing HPKE-encrypted wallet data (private key or seed
        phrase).
      title: SeedPhraseExportResponse
      x-stainless-model: wallets.seed_phrase_export_response
    UnsignedStandardEthereumTransaction:
      type: object
      properties:
        from:
          type: string
        to:
          type: string
        chain_id:
          $ref: '#/components/schemas/Quantity'
        nonce:
          $ref: '#/components/schemas/Quantity'
        data:
          $ref: '#/components/schemas/Hex'
        value:
          $ref: '#/components/schemas/Quantity'
        type:
          anyOf:
            - type: number
              enum:
                - 0
            - type: number
              enum:
                - 1
            - type: number
              enum:
                - 2
            - type: number
              enum:
                - 4
        gas_limit:
          $ref: '#/components/schemas/Quantity'
        gas_price:
          $ref: '#/components/schemas/Quantity'
        max_fee_per_gas:
          $ref: '#/components/schemas/Quantity'
        max_priority_fee_per_gas:
          $ref: '#/components/schemas/Quantity'
        authorization_list:
          type: array
          items:
            $ref: '#/components/schemas/EthereumSign7702Authorization'
          maxItems: 10
      additionalProperties: false
      description: >-
        An unsigned standard Ethereum transaction object. Supports EVM
        transaction types 0, 1, 2, and 4.
      title: UnsignedStandardEthereumTransaction
      x-stainless-model: wallets.unsigned_standard_ethereum_transaction
    UnsignedTempoTransaction:
      type: object
      properties:
        type:
          type: number
          enum:
            - 118
        from:
          type: string
        chain_id:
          $ref: '#/components/schemas/Quantity'
        nonce:
          $ref: '#/components/schemas/Quantity'
        gas_limit:
          $ref: '#/components/schemas/Quantity'
        max_fee_per_gas:
          $ref: '#/components/schemas/Quantity'
        max_priority_fee_per_gas:
          $ref: '#/components/schemas/Quantity'
        calls:
          type: array
          items:
            $ref: '#/components/schemas/TempoCall'
          minItems: 1
        fee_token:
          type: string
        nonce_key:
          $ref: '#/components/schemas/Quantity'
        valid_before:
          $ref: '#/components/schemas/Quantity'
        valid_after:
          $ref: '#/components/schemas/Quantity'
        fee_payer_signature:
          $ref: '#/components/schemas/TempoFeePayerSignature'
        access_list:
          type: array
          items:
            $ref: '#/components/schemas/AccessListEntry'
        aa_authorization_list:
          type: array
          items:
            $ref: '#/components/schemas/TempoAAAuthorization'
          maxItems: 10
      required:
        - type
        - calls
      additionalProperties: false
      description: An unsigned Tempo transaction (type 118) with batched calls.
      title: UnsignedTempoTransaction
      x-stainless-model: wallets.unsigned_tempo_transaction
    TypedDataDomainInputParams:
      type: object
      additionalProperties:
        x-stainless-any: true
      description: The domain parameters for EIP-712 typed data signing.
      title: TypedDataDomainInputParams
      x-stainless-model: wallets.typed_data_domain_input_params
    TypedDataTypesInputParams:
      type: object
      additionalProperties:
        type: array
        items:
          $ref: '#/components/schemas/TypedDataTypeFieldInput'
      description: The type definitions for EIP-712 typed data signing.
      title: TypedDataTypesInputParams
      x-stainless-model: wallets.typed_data_types_input_params
    TokenOutput:
      type: object
      properties:
        id:
          type: string
        owner_public_key:
          type: string
        revocation_commitment:
          type: string
        withdraw_bond_sats:
          type: number
        withdraw_relative_block_locktime:
          type: number
        token_public_key:
          type: string
        token_identifier:
          type: string
        token_amount:
          type: string
      required:
        - owner_public_key
        - token_amount
      description: A Spark token output.
      title: TokenOutput
      x-stainless-model: wallets.token_output
    TronContract:
      oneOf:
        - $ref: '#/components/schemas/TronTransferContract'
        - $ref: '#/components/schemas/TronTriggerSmartContract'
      discriminator:
        propertyName: type
        mapping:
          TransferContract:
            $ref: '#/components/schemas/TronTransferContract'
          TriggerSmartContract:
            $ref: '#/components/schemas/TronTriggerSmartContract'
      description: >-
        A Tron contract, discriminated by type. Supported types:
        TransferContract, TriggerSmartContract.
      title: TronContract
      x-stainless-model: wallets.tron_contract
    IntentAuthorizationUserMember:
      type: object
      properties:
        type:
          type: string
          enum:
            - user
        user_id:
          type: string
          description: User ID of the key quorum member
        signed_at:
          type:
            - number
            - 'null'
          description: Unix timestamp when this member signed, or null if not yet signed.
      required:
        - type
        - user_id
        - signed_at
      description: A user member of an intent authorization quorum.
      title: IntentAuthorizationUserMember
      x-stainless-model: intents.intent_authorization_user_member
    IntentAuthorizationKeyMember:
      type: object
      properties:
        type:
          type: string
          enum:
            - key
        public_key:
          type: string
          description: Public key of the key quorum member
        signed_at:
          type:
            - number
            - 'null'
          description: Unix timestamp when this member signed, or null if not yet signed.
      required:
        - type
        - public_key
        - signed_at
      description: A key member of an intent authorization quorum.
      title: IntentAuthorizationKeyMember
      x-stainless-model: intents.intent_authorization_key_member
    IntentAuthorizationKeyQuorum:
      type: object
      properties:
        type:
          type: string
          enum:
            - key_quorum
        key_quorum_id:
          type: string
          description: ID of the child key quorum member
        display_name:
          type: string
          description: Display name for the child key quorum (if any)
        threshold_met:
          type: boolean
          description: Whether this child key quorum has met its signature threshold
        threshold:
          type: number
          description: Number of signatures required from this child quorum
        members:
          type: array
          items:
            $ref: '#/components/schemas/IntentAuthorizationKeyQuorumMember'
          description: Members of this child quorum
      required:
        - type
        - key_quorum_id
        - threshold_met
        - threshold
        - members
      description: A nested key quorum member of an intent authorization quorum.
      title: IntentAuthorizationKeyQuorum
      x-stainless-model: intents.intent_authorization_key_quorum
    KeyQuorumId:
      type: string
      format: cuid2
      description: A unique identifier for a key quorum.
      title: KeyQuorumId
      x-stainless-model: shared.key_quorum_id
    PolicyInput:
      type: array
      items:
        type: string
        minLength: 24
        maxLength: 24
        format: cuid2
      maxItems: 1
      description: An optional list of up to one policy ID to enforce on the wallet.
      title: PolicyInput
      x-stainless-model: wallets.policy_input
    EthereumSign7702Authorization:
      type: object
      properties:
        contract:
          type: string
        chain_id:
          $ref: '#/components/schemas/Quantity'
        nonce:
          $ref: '#/components/schemas/Quantity'
        r:
          $ref: '#/components/schemas/Hex'
        s:
          $ref: '#/components/schemas/Hex'
        y_parity:
          type: number
      required:
        - contract
        - chain_id
        - nonce
        - r
        - s
        - y_parity
      description: >-
        A signed EIP-7702 authorization that delegates code execution to a
        contract address.
      title: EthereumSign7702Authorization
      x-stainless-model: wallets.ethereum_sign_7702_authorization
    SparkTransferLeaf:
      type: object
      properties:
        leaf:
          $ref: '#/components/schemas/SparkWalletLeaf'
        secret_cipher:
          type: string
        signature:
          type: string
        intermediate_refund_tx:
          type: string
      required:
        - secret_cipher
        - signature
        - intermediate_refund_tx
      description: A Spark transfer leaf.
      title: SparkTransferLeaf
      x-stainless-model: wallets.spark_transfer_leaf
    SparkTokenBalance:
      type: object
      properties:
        balance:
          type: string
        token_metadata:
          $ref: '#/components/schemas/SparkUserTokenMetadata'
      required:
        - balance
        - token_metadata
      description: Balance of a Spark token.
      title: SparkTokenBalance
      x-stainless-model: wallets.spark_token_balance
    SparkLightningFee:
      type: object
      properties:
        original_value:
          type: number
        original_unit:
          type: string
      required:
        - original_value
        - original_unit
      description: The fee for a Spark Lightning payment.
      title: SparkLightningFee
      x-stainless-model: wallets.spark_lightning_fee
    SparkCurrencyAmount:
      type: object
      properties:
        original_value:
          type: number
        original_unit:
          type: string
      required:
        - original_value
        - original_unit
      description: A currency amount with its original value and unit.
      title: SparkCurrencyAmount
      x-stainless-model: wallets.spark_currency_amount
    TempoCall:
      type: object
      properties:
        to:
          type: string
        data:
          $ref: '#/components/schemas/Hex'
        value:
          $ref: '#/components/schemas/Quantity'
      required:
        - to
      additionalProperties: false
      description: A single call within a Tempo batched transaction.
      title: TempoCall
      x-stainless-model: wallets.tempo_call
    TempoFeePayerSignature:
      type: object
      properties:
        r:
          $ref: '#/components/schemas/Hex'
        s:
          $ref: '#/components/schemas/Hex'
        y_parity:
          anyOf:
            - type: number
              enum:
                - 0
            - type: number
              enum:
                - 1
      required:
        - r
        - s
        - y_parity
      additionalProperties: false
      description: A fee payer signature for sponsored Tempo transactions (secp256k1 only).
      title: TempoFeePayerSignature
      x-stainless-model: wallets.tempo_fee_payer_signature
    AccessListEntry:
      type: object
      properties:
        address:
          type: string
        storage_keys:
          type: array
          items:
            $ref: '#/components/schemas/Hex'
      required:
        - address
        - storage_keys
      additionalProperties: false
      description: >-
        An entry in an EIP-2930 access list, specifying an address and its
        storage keys.
      title: AccessListEntry
      x-stainless-model: wallets.access_list_entry
    TempoAAAuthorization:
      type: object
      properties:
        contract:
          type: string
        chain_id:
          $ref: '#/components/schemas/Quantity'
        nonce:
          $ref: '#/components/schemas/Quantity'
        signature:
          $ref: '#/components/schemas/Hex'
      required:
        - contract
        - chain_id
        - nonce
        - signature
      additionalProperties: false
      description: >-
        An AA authorization for Tempo transactions with P256/WebAuthn
        signatures.
      title: TempoAAAuthorization
      x-stainless-model: wallets.tempo_aa_authorization
    TypedDataTypeFieldInput:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      description: A single field definition in an EIP-712 typed data type.
      title: TypedDataTypeFieldInput
      x-stainless-model: wallets.typed_data_type_field_input
    TronTransferContract:
      type: object
      properties:
        type:
          type: string
          enum:
            - TransferContract
        owner_address:
          $ref: '#/components/schemas/TronHexAddress'
        to_address:
          $ref: '#/components/schemas/TronHexAddress'
        amount:
          type: integer
          exclusiveMinimum: 0
      required:
        - type
        - owner_address
        - to_address
        - amount
      additionalProperties: false
      description: Tron native TRX transfer contract.
      title: TronTransferContract
      x-stainless-model: wallets.tron_transfer_contract
    TronTriggerSmartContract:
      type: object
      properties:
        type:
          type: string
          enum:
            - TriggerSmartContract
        owner_address:
          $ref: '#/components/schemas/TronHexAddress'
        contract_address:
          $ref: '#/components/schemas/TronHexAddress'
        data:
          type: string
          pattern: ^(?:[0-9a-fA-F]{2})*$
        call_value:
          type: integer
          minimum: 0
        call_token_value:
          type: integer
          minimum: 0
        token_id:
          type: integer
          minimum: 0
      required:
        - type
        - owner_address
        - contract_address
      additionalProperties: false
      description: >-
        Tron smart contract call (TRC-20 transfers and general contract
        interactions).
      title: TronTriggerSmartContract
      x-stainless-model: wallets.tron_trigger_smart_contract
    IntentAuthorizationKeyQuorumMember:
      oneOf:
        - $ref: '#/components/schemas/IntentAuthorizationUserMember'
        - $ref: '#/components/schemas/IntentAuthorizationKeyMember'
      discriminator:
        propertyName: type
        mapping:
          user:
            $ref: '#/components/schemas/IntentAuthorizationUserMember'
          key:
            $ref: '#/components/schemas/IntentAuthorizationKeyMember'
      description: >-
        A leaf member (user or key) of a nested key quorum in an intent
        authorization.
      title: IntentAuthorizationKeyQuorumMember
      x-stainless-model: intents.intent_authorization_key_quorum_member
    SparkWalletLeaf:
      type: object
      properties:
        id:
          type: string
        tree_id:
          type: string
        value:
          type: number
        parent_node_id:
          type: string
        node_tx:
          type: string
        refund_tx:
          type: string
        vout:
          type: number
        verifying_public_key:
          type: string
        owner_identity_public_key:
          type: string
        signing_keyshare:
          $ref: '#/components/schemas/SparkSigningKeyshare'
        status:
          type: string
        network:
          $ref: '#/components/schemas/SparkNetwork'
      required:
        - id
        - tree_id
        - value
        - node_tx
        - refund_tx
        - vout
        - verifying_public_key
        - owner_identity_public_key
        - status
        - network
      description: A Spark wallet leaf node.
      title: SparkWalletLeaf
      x-stainless-model: wallets.spark_wallet_leaf
    SparkUserTokenMetadata:
      type: object
      properties:
        raw_token_identifier:
          type: string
        token_public_key:
          type: string
        token_name:
          type: string
        token_ticker:
          type: string
        decimals:
          type: number
        max_supply:
          type: string
      required:
        - raw_token_identifier
        - token_public_key
        - token_name
        - token_ticker
        - decimals
        - max_supply
      description: Metadata for a Spark user token.
      title: SparkUserTokenMetadata
      x-stainless-model: wallets.spark_user_token_metadata
    TronHexAddress:
      type: string
      pattern: ^41[0-9a-fA-F]{40}$
      description: >-
        Tron address in hex format: 41-prefixed, 42 hex characters (21 bytes),
        no 0x prefix.
      title: TronHexAddress
      x-stainless-model: shared.tron_hex_address
    SparkSigningKeyshare:
      type: object
      properties:
        owner_identifiers:
          type: array
          items:
            type: string
        threshold:
          type: number
        public_key:
          type: string
        public_shares:
          type: object
          additionalProperties:
            type: string
        updated_time:
          type: string
      required:
        - owner_identifiers
        - threshold
        - public_key
        - public_shares
        - updated_time
      description: A Spark signing keyshare.
      title: SparkSigningKeyshare
      x-stainless-model: wallets.spark_signing_keyshare
  securitySchemes:
    appSecretAuth:
      type: http
      scheme: basic
      description: >-
        Basic Auth header with your app ID as the username and your app secret
        as the password.

````