---
title: "Get wallet action"
method: GET
path: "/v1/wallets/{wallet_id}/actions/{action_id}"
tags: ["Wallet Actions"]
---

# Get wallet action

`GET /v1/wallets/{wallet_id}/actions/{action_id}`

Get the current status of a wallet action by its ID. Use `?include=steps` to include step-level details.

## Path parameters

- `wallet_id` string, required — ID of the wallet.
- `action_id` string, uuid, required — ID of the wallet action.

## Query parameters

- `include` 'steps' — Include step-level details in the response.

## Headers

- `privy-app-id` string, required — ID of your Privy app.
- `privy-authorization-signature` string — Request authorization signature. If multiple signatures are required, they should be comma separated.

## Response `200`

The wallet action with its current status.

- union — Response for a wallet action, discriminated on type.
  - object — Response for a swap action.
    - `caip2` string, required — CAIP-2 chain identifier for the swap.
    - `created_at` string, date-time, required — ISO 8601 timestamp of when the wallet action was created.
    - `destination_address` string — Recipient address on the destination chain. Present for cross-chain swaps. May differ from the source wallet address when swapping between chain types (e.g. EVM to Solana).
    - `destination_caip2` string — Destination chain CAIP-2 identifier. Present for cross-chain swaps.
    - `estimated_fees` FeeLineItem[], nullable — Estimated fee breakdown from the provider quote. Only present for cross-chain swaps. Populated after on-chain confirmation.
      - union — An individual fee assessed on a transfer.
        - object — Estimated fee paid to the relayer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'relayer', required
        - object — Estimated fee paid to Privy.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'privy', required
        - object — Estimated fee paid to the developer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'developer', required
    - `estimated_gas` Gas — Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.
      - `amount` string, required — Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
      - `base_amount` string, required — Gas cost in the gas token's base units (e.g. wei).
      - `gas_asset` string, required — Gas token symbol (e.g. "ETH", "USDC").
    - `failure_reason` object — Top-level failure context for the wallet action. Present on rejected or failed actions when available.
      - `details` unknown
      - `message` string, required — Human-readable failure message.
    - `fees` FeeLineItem[], nullable — Actual fees paid for the swap. Populated after on-chain confirmation. Only present for cross-chain swaps.
      - union — An individual fee assessed on a transfer.
        - object — Estimated fee paid to the relayer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'relayer', required
        - object — Estimated fee paid to Privy.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'privy', required
        - object — Estimated fee paid to the developer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'developer', required
    - `gas` Gas — Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.
      - `amount` string, required — Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
      - `base_amount` string, required — Gas cost in the gas token's base units (e.g. wei).
      - `gas_asset` string, required — Gas token symbol (e.g. "ETH", "USDC").
    - `id` string, required — The ID of the wallet action.
    - `input_amount` string, nullable, required — Exact base-unit amount of input token. Populated after on-chain confirmation.
    - `input_token` string, required — Token address or "native" for the token being sold.
    - `output_amount` string, nullable, required — Exact base-unit amount of output token. Populated after on-chain confirmation.
    - `output_token` string, required — Token address or "native" for the token being bought.
    - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required — The current status of the wallet action.
    - `steps` WalletActionStep[] — The steps of the wallet action. Only returned if `?include=steps` is provided.
      - union — A step within a wallet action, representing a single onchain action.
        - object — A wallet action step consisting of an EVM transaction.
          - `caip2` string, required — CAIP-2 chain identifier of the transaction, containing the chain ID.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — EVM transaction status.
          - `transaction_hash` string, nullable, required — The transaction hash for this step. May change while the step status is non-terminal.
          - `type` 'evm_transaction', required
        - object — A wallet action step consisting of an EVM user operation.
          - `bundle_transaction_hash` string, nullable, required — Transaction hash of the bundle in which this user operation was included. Null until included by a bundler.
          - `caip2` string, required — CAIP-2 network identifier, containing the chain ID of the user operation.
          - `entrypoint_version` '0.6' | '0.7' | '0.8' | '0.9', required — The entrypoint version of the user operation.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — User operation status.
          - `type` 'evm_user_operation', required
          - `user_operation_hash` string, nullable, required — The user operation hash for this step. May change while the step status is non-terminal.
        - object — A wallet action step consisting of an SVM (Solana) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Solana network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — SVM transaction status.
          - `transaction_signature` string, nullable, required — The Solana transaction signature (base58-encoded). Null until broadcast.
          - `type` 'svm_transaction', required
        - object — A wallet action step consisting of a TVM (Tron) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Tron network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — TVM transaction status.
          - `transaction_id` string, nullable, required — The Tron transaction ID. Null until broadcast.
          - `type` 'tvm_transaction', required
        - object — A wallet action step representing a cross-chain/cross-asset fill by an external provider.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — External transaction step status.
          - `type` 'external_transaction', required
        - object — A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
          - `custodian` string, required — Identifier of the custodian executing this transaction (e.g. "bridge").
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'custodian_reviewing' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — Custodian transaction step status.
          - `type` 'custodian_transaction', required
    - `type` 'swap', required
    - `wallet_id` string, required — The ID of the wallet involved in the action.
  - object — Response for a transfer action.
    - `amount_type` 'exact_input' | 'exact_output' — Whether the amount refers to the input token or output token.
    - `created_at` string, date-time, required — ISO 8601 timestamp of when the wallet action was created.
    - `destination_address` string, required — Recipient address.
    - `destination_amount` string, nullable, required — Amount received on the destination chain. For exact_output cross-chain transfers, set at creation (the guaranteed exact amount). For exact_input cross-chain transfers, null until fill confirmation.
    - `destination_asset` string — Destination asset for cross-asset transfers. Omitted for same-asset transfers.
    - `destination_chain` string — Destination chain for cross-chain transfers. Omitted for same-chain transfers.
    - `estimated_fees` FeeLineItem[], nullable — Estimated fee breakdown from the provider quote. Only present for cross-chain or cross-asset transfers. Populated after on-chain confirmation.
      - union — An individual fee assessed on a transfer.
        - object — Estimated fee paid to the relayer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'relayer', required
        - object — Estimated fee paid to Privy.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'privy', required
        - object — Estimated fee paid to the developer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'developer', required
    - `estimated_gas` Gas — Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.
      - `amount` string, required — Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
      - `base_amount` string, required — Gas cost in the gas token's base units (e.g. wei).
      - `gas_asset` string, required — Gas token symbol (e.g. "ETH", "USDC").
    - `failure_reason` object — Top-level failure context for the wallet action. Present on rejected or failed actions when available.
      - `details` unknown
      - `message` string, required — Human-readable failure message.
    - `fees` FeeLineItem[], nullable — Actual fees paid for the transfer. Populated after on-chain confirmation. Only present for cross-chain transfers.
      - union — An individual fee assessed on a transfer.
        - object — Estimated fee paid to the relayer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'relayer', required
        - object — Estimated fee paid to Privy.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'privy', required
        - object — Estimated fee paid to the developer.
          - `amount` string, required — Amount in USD (in decimals).
          - `recipient` union
            - string
            - string
            - string — Tron address: base58check-encoded, starting with T, 34 characters.
          - `type` 'developer', required
    - `gas` Gas — Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.
      - `amount` string, required — Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
      - `base_amount` string, required — Gas cost in the gas token's base units (e.g. wei).
      - `gas_asset` string, required — Gas token symbol (e.g. "ETH", "USDC").
    - `id` string, required — The ID of the wallet action.
    - `source_amount` string — Decimal amount sent on the source chain (e.g. "1.5"). For exact_output cross-chain transfers, null until fill confirmation.
    - `source_asset` string — Asset identifier (e.g. "usdc", "eth"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers.
    - `source_asset_address` string — Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with `asset_address`.
    - `source_asset_decimals` integer — Number of decimals for the transferred token. Present when the transfer was initiated with `asset_address` and the decimals were resolved on-chain.
    - `source_chain` string, required — Chain name (e.g. "base", "ethereum").
    - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required — The current status of the wallet action.
    - `steps` WalletActionStep[] — The steps of the wallet action. Only returned if `?include=steps` is provided.
      - union — A step within a wallet action, representing a single onchain action.
        - object — A wallet action step consisting of an EVM transaction.
          - `caip2` string, required — CAIP-2 chain identifier of the transaction, containing the chain ID.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — EVM transaction status.
          - `transaction_hash` string, nullable, required — The transaction hash for this step. May change while the step status is non-terminal.
          - `type` 'evm_transaction', required
        - object — A wallet action step consisting of an EVM user operation.
          - `bundle_transaction_hash` string, nullable, required — Transaction hash of the bundle in which this user operation was included. Null until included by a bundler.
          - `caip2` string, required — CAIP-2 network identifier, containing the chain ID of the user operation.
          - `entrypoint_version` '0.6' | '0.7' | '0.8' | '0.9', required — The entrypoint version of the user operation.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — User operation status.
          - `type` 'evm_user_operation', required
          - `user_operation_hash` string, nullable, required — The user operation hash for this step. May change while the step status is non-terminal.
        - object — A wallet action step consisting of an SVM (Solana) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Solana network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — SVM transaction status.
          - `transaction_signature` string, nullable, required — The Solana transaction signature (base58-encoded). Null until broadcast.
          - `type` 'svm_transaction', required
        - object — A wallet action step consisting of a TVM (Tron) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Tron network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — TVM transaction status.
          - `transaction_id` string, nullable, required — The Tron transaction ID. Null until broadcast.
          - `type` 'tvm_transaction', required
        - object — A wallet action step representing a cross-chain/cross-asset fill by an external provider.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — External transaction step status.
          - `type` 'external_transaction', required
        - object — A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
          - `custodian` string, required — Identifier of the custodian executing this transaction (e.g. "bridge").
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'custodian_reviewing' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — Custodian transaction step status.
          - `type` 'custodian_transaction', required
    - `type` 'transfer', required
    - `wallet_id` string, required — The ID of the wallet involved in the action.
  - object — Response for an earn deposit action.
    - `amount` string — Human-readable decimal amount of asset deposited (e.g. "1.5"). Only present when the token is known in the asset registry.
    - `asset` string — Asset identifier (e.g. "usdc", "eth"). Only present when the token is known in the asset registry.
    - `asset_address` string, required — Underlying asset token address.
    - `caip2` string, required — CAIP-2 chain identifier.
    - `created_at` string, date-time, required — ISO 8601 timestamp of when the wallet action was created.
    - `decimals` integer — Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry.
    - `failure_reason` object — Top-level failure context for the wallet action. Present on rejected or failed actions when available.
      - `details` unknown
      - `message` string, required — Human-readable failure message.
    - `id` string, required — The ID of the wallet action.
    - `raw_amount` string, required — Base-unit amount of asset deposited (e.g. "1500000").
    - `share_amount` string, nullable, required — Vault shares received in base units. Populated after on-chain confirmation.
    - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required — The current status of the wallet action.
    - `steps` WalletActionStep[] — The steps of the wallet action. Only returned if `?include=steps` is provided.
      - union — A step within a wallet action, representing a single onchain action.
        - object — A wallet action step consisting of an EVM transaction.
          - `caip2` string, required — CAIP-2 chain identifier of the transaction, containing the chain ID.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — EVM transaction status.
          - `transaction_hash` string, nullable, required — The transaction hash for this step. May change while the step status is non-terminal.
          - `type` 'evm_transaction', required
        - object — A wallet action step consisting of an EVM user operation.
          - `bundle_transaction_hash` string, nullable, required — Transaction hash of the bundle in which this user operation was included. Null until included by a bundler.
          - `caip2` string, required — CAIP-2 network identifier, containing the chain ID of the user operation.
          - `entrypoint_version` '0.6' | '0.7' | '0.8' | '0.9', required — The entrypoint version of the user operation.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — User operation status.
          - `type` 'evm_user_operation', required
          - `user_operation_hash` string, nullable, required — The user operation hash for this step. May change while the step status is non-terminal.
        - object — A wallet action step consisting of an SVM (Solana) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Solana network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — SVM transaction status.
          - `transaction_signature` string, nullable, required — The Solana transaction signature (base58-encoded). Null until broadcast.
          - `type` 'svm_transaction', required
        - object — A wallet action step consisting of a TVM (Tron) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Tron network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — TVM transaction status.
          - `transaction_id` string, nullable, required — The Tron transaction ID. Null until broadcast.
          - `type` 'tvm_transaction', required
        - object — A wallet action step representing a cross-chain/cross-asset fill by an external provider.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — External transaction step status.
          - `type` 'external_transaction', required
        - object — A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
          - `custodian` string, required — Identifier of the custodian executing this transaction (e.g. "bridge").
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'custodian_reviewing' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — Custodian transaction step status.
          - `type` 'custodian_transaction', required
    - `type` 'earn_deposit', required
    - `vault_address` string, required — ERC-4626 vault contract address.
    - `vault_id` string, required — The vault ID.
    - `wallet_id` string, required — The ID of the wallet involved in the action.
  - object — Response for an earn withdraw action.
    - `amount` string — Human-readable decimal amount of asset withdrawn (e.g. "1.5"). Only present when the token is known in the asset registry.
    - `asset` string — Asset identifier (e.g. "usdc", "eth"). Only present when the token is known in the asset registry.
    - `asset_address` string, required — Underlying asset token address.
    - `caip2` string, required — CAIP-2 chain identifier.
    - `created_at` string, date-time, required — ISO 8601 timestamp of when the wallet action was created.
    - `decimals` integer — Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry.
    - `failure_reason` object — Top-level failure context for the wallet action. Present on rejected or failed actions when available.
      - `details` unknown
      - `message` string, required — Human-readable failure message.
    - `id` string, required — The ID of the wallet action.
    - `raw_amount` string, required — Base-unit amount of asset withdrawn (e.g. "1500000").
    - `share_amount` string, nullable, required — Vault shares burned in base units. Populated after on-chain confirmation.
    - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required — The current status of the wallet action.
    - `steps` WalletActionStep[] — The steps of the wallet action. Only returned if `?include=steps` is provided.
      - union — A step within a wallet action, representing a single onchain action.
        - object — A wallet action step consisting of an EVM transaction.
          - `caip2` string, required — CAIP-2 chain identifier of the transaction, containing the chain ID.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — EVM transaction status.
          - `transaction_hash` string, nullable, required — The transaction hash for this step. May change while the step status is non-terminal.
          - `type` 'evm_transaction', required
        - object — A wallet action step consisting of an EVM user operation.
          - `bundle_transaction_hash` string, nullable, required — Transaction hash of the bundle in which this user operation was included. Null until included by a bundler.
          - `caip2` string, required — CAIP-2 network identifier, containing the chain ID of the user operation.
          - `entrypoint_version` '0.6' | '0.7' | '0.8' | '0.9', required — The entrypoint version of the user operation.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — User operation status.
          - `type` 'evm_user_operation', required
          - `user_operation_hash` string, nullable, required — The user operation hash for this step. May change while the step status is non-terminal.
        - object — A wallet action step consisting of an SVM (Solana) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Solana network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — SVM transaction status.
          - `transaction_signature` string, nullable, required — The Solana transaction signature (base58-encoded). Null until broadcast.
          - `type` 'svm_transaction', required
        - object — A wallet action step consisting of a TVM (Tron) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Tron network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — TVM transaction status.
          - `transaction_id` string, nullable, required — The Tron transaction ID. Null until broadcast.
          - `type` 'tvm_transaction', required
        - object — A wallet action step representing a cross-chain/cross-asset fill by an external provider.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — External transaction step status.
          - `type` 'external_transaction', required
        - object — A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
          - `custodian` string, required — Identifier of the custodian executing this transaction (e.g. "bridge").
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'custodian_reviewing' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — Custodian transaction step status.
          - `type` 'custodian_transaction', required
    - `type` 'earn_withdraw', required
    - `vault_address` string, required — ERC-4626 vault contract address.
    - `vault_id` string, required — The vault ID.
    - `wallet_id` string, required — The ID of the wallet involved in the action.
  - object — Response for an earn incentive claim action.
    - `chain` string, required — EVM chain name (e.g. "base", "ethereum").
    - `created_at` string, date-time, required — ISO 8601 timestamp of when the wallet action was created.
    - `failure_reason` object — Top-level failure context for the wallet action. Present on rejected or failed actions when available.
      - `details` unknown
      - `message` string, required — Human-readable failure message.
    - `id` string, required — The ID of the wallet action.
    - `rewards` EarnIncetiveClaimRewardEntry[], nullable, required — Claimed reward tokens. Populated after the preparation step fetches from Merkl.
      - `amount` string, required — Claimable amount in base units.
      - `token_address` string, required — Address of the reward token.
      - `token_decimals` integer — Number of decimal places for the reward token.
      - `token_symbol` string, required — Symbol of the reward token (e.g. "MORPHO").
    - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required — The current status of the wallet action.
    - `steps` WalletActionStep[] — The steps of the wallet action. Only returned if `?include=steps` is provided.
      - union — A step within a wallet action, representing a single onchain action.
        - object — A wallet action step consisting of an EVM transaction.
          - `caip2` string, required — CAIP-2 chain identifier of the transaction, containing the chain ID.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — EVM transaction status.
          - `transaction_hash` string, nullable, required — The transaction hash for this step. May change while the step status is non-terminal.
          - `type` 'evm_transaction', required
        - object — A wallet action step consisting of an EVM user operation.
          - `bundle_transaction_hash` string, nullable, required — Transaction hash of the bundle in which this user operation was included. Null until included by a bundler.
          - `caip2` string, required — CAIP-2 network identifier, containing the chain ID of the user operation.
          - `entrypoint_version` '0.6' | '0.7' | '0.8' | '0.9', required — The entrypoint version of the user operation.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — User operation status.
          - `type` 'evm_user_operation', required
          - `user_operation_hash` string, nullable, required — The user operation hash for this step. May change while the step status is non-terminal.
        - object — A wallet action step consisting of an SVM (Solana) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Solana network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — SVM transaction status.
          - `transaction_signature` string, nullable, required — The Solana transaction signature (base58-encoded). Null until broadcast.
          - `type` 'svm_transaction', required
        - object — A wallet action step consisting of a TVM (Tron) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Tron network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — TVM transaction status.
          - `transaction_id` string, nullable, required — The Tron transaction ID. Null until broadcast.
          - `type` 'tvm_transaction', required
        - object — A wallet action step representing a cross-chain/cross-asset fill by an external provider.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — External transaction step status.
          - `type` 'external_transaction', required
        - object — A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
          - `custodian` string, required — Identifier of the custodian executing this transaction (e.g. "bridge").
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'custodian_reviewing' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — Custodian transaction step status.
          - `type` 'custodian_transaction', required
    - `type` 'earn_incentive_claim', required
    - `wallet_id` string, required — The ID of the wallet involved in the action.
  - object — Response for an earn fee collect action.
    - `amount` string, nullable — Human-readable decimal amount of fees collected (e.g. "1.5"). Omitted when the token is not in the asset registry. Null while the action is pending; populated after on-chain confirmation.
    - `asset` string — Asset identifier (e.g. "usdc", "eth"). Only present when the token is known in the asset registry.
    - `asset_address` string, required — Underlying asset token address.
    - `caip2` string, required — CAIP-2 chain identifier.
    - `created_at` string, date-time, required — ISO 8601 timestamp of when the wallet action was created.
    - `decimals` integer — Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry.
    - `failure_reason` object — Top-level failure context for the wallet action. Present on rejected or failed actions when available.
      - `details` unknown
      - `message` string, required — Human-readable failure message.
    - `id` string, required — The ID of the wallet action.
    - `raw_amount` string, nullable, required — Base-unit amount of fees collected (e.g. "1500000"). Populated after on-chain confirmation.
    - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required — The current status of the wallet action.
    - `steps` WalletActionStep[] — The steps of the wallet action. Only returned if `?include=steps` is provided.
      - union — A step within a wallet action, representing a single onchain action.
        - object — A wallet action step consisting of an EVM transaction.
          - `caip2` string, required — CAIP-2 chain identifier of the transaction, containing the chain ID.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — EVM transaction status.
          - `transaction_hash` string, nullable, required — The transaction hash for this step. May change while the step status is non-terminal.
          - `type` 'evm_transaction', required
        - object — A wallet action step consisting of an EVM user operation.
          - `bundle_transaction_hash` string, nullable, required — Transaction hash of the bundle in which this user operation was included. Null until included by a bundler.
          - `caip2` string, required — CAIP-2 network identifier, containing the chain ID of the user operation.
          - `entrypoint_version` '0.6' | '0.7' | '0.8' | '0.9', required — The entrypoint version of the user operation.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required — User operation status.
          - `type` 'evm_user_operation', required
          - `user_operation_hash` string, nullable, required — The user operation hash for this step. May change while the step status is non-terminal.
        - object — A wallet action step consisting of an SVM (Solana) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Solana network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `finalized` boolean — Whether this step has reached on-chain finality. Absent until finality is confirmed.
          - `gas_credits_charged_usd` string — Amount charged in USD for gas sponsorship on this step.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — SVM transaction status.
          - `transaction_signature` string, nullable, required — The Solana transaction signature (base58-encoded). Null until broadcast.
          - `type` 'svm_transaction', required
        - object — A wallet action step consisting of a TVM (Tron) transaction.
          - `caip2` string, required — CAIP-2 chain identifier for the Tron network.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required — TVM transaction status.
          - `transaction_id` string, nullable, required — The Tron transaction ID. Null until broadcast.
          - `type` 'tvm_transaction', required
        - object — A wallet action step representing a cross-chain/cross-asset fill by an external provider.
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — External transaction step status.
          - `type` 'external_transaction', required
        - object — A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
          - `custodian` string, required — Identifier of the custodian executing this transaction (e.g. "bridge").
          - `failure_reason` FailureReason — A description of why a wallet action (or a step within a wallet action) failed.
            - `details` unknown
            - `message` string, required — Human-readable failure message.
          - `status` 'preparing' | 'queued' | 'custodian_reviewing' | 'pending' | 'confirmed' | 'rejected' | 'failed', required — Custodian transaction step status.
          - `type` 'custodian_transaction', required
    - `type` 'earn_fee_collect', required
    - `vault_address` string, required — ERC-4626 vault contract address.
    - `vault_id` string, required — The vault ID.
    - `wallet_id` string, required — The ID of the wallet involved in the action.

---

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