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

# Get wallet transactions

> Retrieves transaction history for the client's wallet on the specified chain.
Supports EVM (EIP-155), Solana, Bitcoin, Tron, and Stellar chains.

**Response format varies by chain:**
- **Solana** returns the legacy format with `signature`, `blockTime`, `tokenMint`,
  and nested `transactionDetails` (containing `transaction`, `signatureDetails`, `metadata`).
  This format will be migrated to the unified format in a future release.
- **All other chains** (EVM, Bitcoin, Tron, Stellar) return the unified
  `TransactionHistoryItem` format with `hash`, `from`, `to`, `value`,
  `blockNumber`, `blockTimestamp`, `status`, `chainId`, and optional token/UserOp fields.

For EVM chains with Account Abstraction enabled, UserOperations can be
included, excluded, or fetched exclusively using the `userOperations` parameter.

UserOperation items in the response include the bundler transaction hash, sender,
entry point, gas costs, and `userOpHash` — but not the decoded `to`, `value`, or
`callData`. To retrieve full UserOperation details, use the single transaction
lookup endpoint (`GET /clients/me/chains/{chain}/transactions/{userOpHash}`).

**Note:** For EVM chains, this endpoint returns asset transfer history (native tokens,
ERC-20, ERC-721, ERC-1155). Contract interactions that do not transfer assets — such
as approvals, delegations, or governance votes — will not appear in the results.
UserOperations from AA wallets are an exception and will appear regardless of
whether they involve a token transfer.




## OpenAPI

````yaml /openapi/client-api.yaml get /clients/me/chains/{chain}/transactions
openapi: 3.1.0
info:
  title: Portal Client API
  version: '3.0'
  description: >
    The Portal Client API provides endpoints for managing wallets, building
    transactions,

    and interacting with blockchain networks. All endpoints require
    authentication via a

    Client API Key or Client Session Token (CST) passed as a Bearer token.


    ## Base URL

    `https://api.portalhq.io/api/v3`


    ## Authentication

    Include your Client API Key or Client Session Token as a Bearer token in the

    `Authorization` header of every request.


    ## Chain ID Format

    Chain parameters use either friendly names (e.g. `ethereum`, `solana`) or
    CAIP-2 format

    (e.g. `eip155:1`, `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`). When using
    CAIP-2 format

    in URLs, ensure the colon is URI-encoded (`%3A`).
servers:
  - url: https://api.portalhq.io/api/v3
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Clients
    description: Core client management endpoints
  - name: Wallet
    description: >-
      Read wallet state — balances, NFTs, transaction history, capabilities, and
      transaction details
  - name: Transactions
    description: Build, broadcast, and evaluate blockchain transactions
  - name: Funding
    description: Fund wallets with testnet tokens
  - name: Wallet Shares
    description: Manage signing and backup share pairs
  - name: Delegations
    description: Manage token approvals, revocations, and delegated transfers
  - name: Session Keys
    description: Manage EIP-7702 session keys for smart accounts
  - name: 0x
    description: Token swap endpoints powered by the 0x protocol
  - name: Yield.xyz
    description: Yield opportunities and staking actions powered by Yield.xyz
  - name: Li.Fi
    description: Cross-chain swaps and bridging powered by Li.Fi
  - name: Blockaid
    description: Transaction and address security scanning powered by Blockaid
  - name: Hypernative
    description: >-
      Transaction, address, token, and NFT security scanning powered by
      Hypernative
  - name: Noah
    description: KYC onboarding, payins, and payouts powered by Noah
  - name: EIP-7702
    description: EIP-7702 account type detection and authorization management
  - name: Deprecated
    description: >-
      Legacy endpoints scheduled for removal. Use the newer equivalents listed
      in each endpoint's description.
paths:
  /clients/me/chains/{chain}/transactions:
    get:
      tags:
        - Wallet
      summary: Get wallet transactions
      description: >
        Retrieves transaction history for the client's wallet on the specified
        chain.

        Supports EVM (EIP-155), Solana, Bitcoin, Tron, and Stellar chains.


        **Response format varies by chain:**

        - **Solana** returns the legacy format with `signature`, `blockTime`,
        `tokenMint`,
          and nested `transactionDetails` (containing `transaction`, `signatureDetails`, `metadata`).
          This format will be migrated to the unified format in a future release.
        - **All other chains** (EVM, Bitcoin, Tron, Stellar) return the unified
          `TransactionHistoryItem` format with `hash`, `from`, `to`, `value`,
          `blockNumber`, `blockTimestamp`, `status`, `chainId`, and optional token/UserOp fields.

        For EVM chains with Account Abstraction enabled, UserOperations can be

        included, excluded, or fetched exclusively using the `userOperations`
        parameter.


        UserOperation items in the response include the bundler transaction
        hash, sender,

        entry point, gas costs, and `userOpHash` — but not the decoded `to`,
        `value`, or

        `callData`. To retrieve full UserOperation details, use the single
        transaction

        lookup endpoint (`GET
        /clients/me/chains/{chain}/transactions/{userOpHash}`).


        **Note:** For EVM chains, this endpoint returns asset transfer history
        (native tokens,

        ERC-20, ERC-721, ERC-1155). Contract interactions that do not transfer
        assets — such

        as approvals, delegations, or governance votes — will not appear in the
        results.

        UserOperations from AA wallets are an exception and will appear
        regardless of

        whether they involve a token transfer.
      operationId: getTransactions
      parameters:
        - $ref: '#/components/parameters/chain'
        - name: limit
          in: query
          required: false
          description: |
            Maximum number of transactions to return. Defaults to 50.
            Capped at 1000 for EVM chains and 15 for Solana.
          schema:
            type: integer
            default: 50
        - name: offset
          in: query
          required: false
          description: Number of transactions to skip (default 0).
          schema:
            type: integer
            default: 0
        - name: order
          in: query
          required: false
          description: Sort order for transactions.
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: address
          in: query
          required: false
          description: |
            Override the wallet address used for the query (EVM only).
            Must match the client's known EOA or smart contract address.
          schema:
            type: string
        - name: userOperations
          in: query
          required: false
          description: >
            Filter for ERC-4337 UserOperations (EVM only). Defaults to
            `include`.

            - `include` — return both regular transactions and UserOperations

            - `only` — return only UserOperations

            - `exclude` — return only regular transactions
          schema:
            type: string
            enum:
              - include
              - only
              - exclude
            default: include
      responses:
        '200':
          description: Transactions retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponse'
              examples:
                evm:
                  summary: EVM transaction history (unified format)
                  value:
                    data:
                      transactions:
                        - type: transaction
                          hash: 0x8f594b1dc3675827...
                          from: 0xdfd8302f44...
                          to: 0x92321be819...
                          value: '0.01'
                          blockNumber: '10605799'
                          blockTimestamp: 1775533644
                          status: success
                          chainId: eip155:11155111
                          asset: USDC
                          tokenAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238'
                          tokenDecimals: 6
                    metadata:
                      address: '0x92321be819198e13ce7e6be6c76588e5c7aa9ab2'
                      chainId: eip155:11155111
                      clientId: clientId
                      limit: 50
                      offset: 0
                      count: 1
                evmUserOperation:
                  summary: EVM UserOperation (unified format)
                  value:
                    data:
                      transactions:
                        - type: userOperation
                          hash: 0xde2c244221c3a51d...
                          from: 0xbf888d2b7748...
                          to: null
                          value: '0'
                          blockNumber: '10606747'
                          blockTimestamp: 1775533704
                          status: success
                          chainId: eip155:11155111
                          userOpHash: 0xed4f56745a4935e0...
                          entryPoint: '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789'
                          actualGasCost: '259587616990900'
                          actualGasUsed: '149285'
                    metadata:
                      address: '0xBf888D2B7748De136d851C3cf1D4136B1294016F'
                      chainId: eip155:11155111
                      clientId: clientId
                      limit: 50
                      offset: 0
                      count: 1
                solana:
                  summary: Solana transaction history (legacy format)
                  value:
                    data:
                      transactions:
                        - blockTime: 1741126345
                          error: null
                          signature: 3J7cMNTCks3d...
                          status: finalized
                          tokenMint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                          transactionDetails:
                            transaction:
                              message:
                                accountKeys:
                                  - Gpixjk4j...
                                  - 8LqMx7E5...
                                  - TokenkegQfeZyi...
                                header:
                                  numReadonlySignedAccounts: 0
                                  numReadonlyUnsignedAccounts: 1
                                  numRequiredSignatures: 1
                                instructions:
                                  - accounts:
                                      - 0
                                      - 1
                                    data: 3Bxs4Bc3VYuGVB19
                                    programIdIndex: 2
                                    stackHeight: 1
                                recentBlockhash: 94x5LakBUZ...
                              signatures:
                                - 3J7cMNTCks3d...
                            signatureDetails:
                              blockTime: 1741126345
                              confirmationStatus: finalized
                              error: null
                              memo: null
                              signature: 3J7cMNTCks3d...
                              slot: 365141926
                            metadata:
                              blockTime: 1741126345
                              slot: 365141926
                              error: null
                              fee: 5000
                              logMessages:
                                - Program 11111111... invoke [1]
                                - Program 11111111... success
                              postBalances:
                                - 7990000
                                - 9610486252
                                - 1
                              preBalances:
                                - 8995000
                                - 9609486252
                                - 1
                              status:
                                Ok: null
                              version: legacy
                    metadata:
                      address: 948bvg9PoEr2AB92s4e8YUkXDAfcQb8f17nAtN7RxfRX
                      chainId: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
                      clientId: clientId
                      limit: 15
                      offset: 0
                      count: 1
                bitcoin:
                  summary: Bitcoin transaction history (unified format)
                  value:
                    data:
                      transactions:
                        - type: transaction
                          hash: e6e0a5359ec6b795...
                          from: ''
                          to: bc1qfcn2cuqvhgkxn0...
                          value: '113943'
                          blockNumber: '4909433'
                          blockTimestamp: 1775531598
                          status: confirmed
                          chainId: bip122:000000000019d6689c085ae165831e93-p2wpkh
                    metadata:
                      address: bc1qfcn2cuqvhgkxn0gnkyeaflrps5a68punwpkw6q
                      chainId: bip122:000000000019d6689c085ae165831e93-p2wpkh
                      clientId: clientId
                      limit: 50
                      offset: 0
                      count: 1
        '400':
          description: |
            Bad request. Common causes:
            - Unsupported chain
            - Invalid query parameters
            - Address override does not match client's known addresses
            - Invalid `userOperations` value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - invalid or missing authentication token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    chain:
      name: chain
      in: path
      required: true
      description: >
        The blockchain chain identifier. Use either a friendly name or CAIP-2
        format.

        When using CAIP-2 format in URLs, ensure the colon (`:`) is URI-encoded
        as `%3A`.


        **Supported chains:**

        - `ethereum` (`eip155:1`)

        - `sepolia` (`eip155:11155111`)

        - `base` (`eip155:8453`)

        - `base-sepolia` (`eip155:84532`)

        - `polygon` (`eip155:137`)

        - `polygon-mumbai` (`eip155:80001`)

        - `celo` (`eip155:42220`)

        - `celo-alfajores` (`eip155:44787`)

        - `monad` (`eip155:143`)

        - `monad-testnet` (`eip155:10143`)

        - `solana` (`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`)

        - `solana-devnet` (`solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1`)

        - `tron` (`tron:mainnet`)

        - `tron-nile` (`tron:nile`)

        - `tron-shasta` (`tron:shasta`)

        - `stellar` (`stellar:pubnet`)

        - `stellar-testnet` (`stellar:testnet`)

        - `bitcoin-segwit` (`bip122:000000000019d6689c085ae165831e93-p2wpkh`)

        - `bitcoin-segwit-testnet`
        (`bip122:000000000933ea01ad0ee984209779ba-p2wpkh`)

        - `bitcoin-p2wpkh` (`bip122:000000000019d6689c085ae165831e93-p2wpkh`)

        - `bitcoin-p2wpkh-testnet`
        (`bip122:000000000933ea01ad0ee984209779ba-p2wpkh`)
      schema:
        type: string
      examples:
        ethereum:
          value: ethereum
          summary: Ethereum mainnet (friendly name)
        eip155:
          value: eip155:1
          summary: Ethereum mainnet (CAIP-2)
        solana:
          value: solana
          summary: Solana mainnet (friendly name)
        bitcoin:
          value: bitcoin-segwit
          summary: Bitcoin segwit (friendly name)
  schemas:
    TransactionsResponse:
      type: object
      description: >
        Response format varies by chain:

        - **Solana**: transactions are `SolanaTransactionDetails` objects
        (legacy format with
          `signature`, `blockTime`, `tokenMint`, and nested `transactionDetails`).
        - **All other chains**: transactions are `TransactionHistoryItem`
        objects (unified format
          with `hash`, `from`, `to`, `value`, `blockNumber`, `blockTimestamp`, `status`, `chainId`).
        Solana will be migrated to the unified format in a future release.
      properties:
        data:
          type: object
          properties:
            transactions:
              type: array
              description: >
                Array of transaction items. Format depends on chain — see
                `TransactionHistoryItem`

                for EVM/Bitcoin/Tron/Stellar or `SolanaTransactionDetails` for
                Solana.
              items:
                oneOf:
                  - $ref: '#/components/schemas/TransactionHistoryItem'
                  - $ref: '#/components/schemas/SolanaTransactionDetails'
        metadata:
          type: object
          properties:
            address:
              type: string
              description: Wallet address used for the query.
            chainId:
              type: string
              description: CAIP-2 chain ID.
            clientId:
              type: string
              description: Client ID.
            limit:
              type: integer
              description: Max transactions requested.
            offset:
              type: integer
              description: Offset used for pagination.
            count:
              type: integer
              description: Total number of transactions returned.
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
    TransactionHistoryItem:
      type: object
      description: Unified transaction item returned across all chains.
      properties:
        type:
          type: string
          enum:
            - transaction
            - userOperation
          description: Whether this is a regular transaction or an ERC-4337 UserOperation.
        hash:
          type: string
          description: Transaction hash (or UserOp bundler tx hash).
        from:
          type: string
          description: Sender address.
        to:
          type: string
          nullable: true
          description: Recipient address.
        value:
          type: string
          description: Transfer value as a decimal string.
        blockNumber:
          type: string
          nullable: true
          description: Block number as a decimal string.
        blockTimestamp:
          type: number
          nullable: true
          description: Unix timestamp in seconds.
        status:
          type: string
          nullable: true
          description: >-
            Transaction status (e.g. "confirmed", "pending", "success",
            "failed").
        chainId:
          type: string
          description: CAIP-2 chain ID.
        asset:
          type: string
          nullable: true
          description: Token symbol (e.g. "ETH", "USDC") or contract address if unknown.
        tokenAddress:
          type: string
          nullable: true
          description: Token contract address (EVM only).
        tokenDecimals:
          type: integer
          nullable: true
          description: Token decimals (EVM only).
        userOpHash:
          type: string
          nullable: true
          description: UserOperation hash (EVM UserOperations only).
        entryPoint:
          type: string
          nullable: true
          description: EntryPoint contract address (EVM UserOperations only).
        actualGasCost:
          type: string
          nullable: true
          description: Actual gas cost in wei (EVM UserOperations only).
        actualGasUsed:
          type: string
          nullable: true
          description: Actual gas units used (EVM UserOperations only).
    SolanaTransactionDetails:
      type: object
      properties:
        blockTime:
          type: integer
          description: Unix timestamp of the block.
        error:
          type: string
          nullable: true
          description: Transaction error as JSON string, or null if successful.
        signature:
          type: string
          description: Transaction signature.
        status:
          type: string
          description: Transaction status (e.g. "finalized", "confirmed", "processed").
        tokenMint:
          type: string
          nullable: true
          description: SPL token mint address, or null for native SOL transactions.
        transactionDetails:
          type: object
          nullable: true
          properties:
            transaction:
              type: object
              nullable: true
              description: Parsed transaction data.
              properties:
                message:
                  type: object
                  properties:
                    accountKeys:
                      type: array
                      items:
                        type: string
                    header:
                      type: object
                    instructions:
                      type: array
                      items:
                        type: object
                    recentBlockhash:
                      type: string
                signatures:
                  type: array
                  items:
                    type: string
            signatureDetails:
              type: object
              nullable: true
              description: Signature verification details.
              properties:
                blockTime:
                  type: integer
                confirmationStatus:
                  type: string
                error:
                  type: object
                  nullable: true
                memo:
                  type: string
                  nullable: true
                signature:
                  type: string
                slot:
                  type: integer
            metadata:
              type: object
              nullable: true
              description: Additional transaction metadata.
              properties:
                blockTime:
                  type: integer
                  nullable: true
                slot:
                  type: integer
                  nullable: true
                error:
                  type: object
                  nullable: true
                fee:
                  type: integer
                  nullable: true
                innerInstructions:
                  type: array
                  nullable: true
                  items:
                    type: object
                loadedAddresses:
                  type: object
                  nullable: true
                  properties:
                    readonly:
                      type: array
                      items:
                        type: string
                    writable:
                      type: array
                      items:
                        type: string
                logMessages:
                  type: array
                  nullable: true
                  items:
                    type: string
                postBalances:
                  type: array
                  nullable: true
                  items:
                    type: number
                postTokenBalances:
                  type: array
                  nullable: true
                  items:
                    type: object
                preBalances:
                  type: array
                  nullable: true
                  items:
                    type: number
                preTokenBalances:
                  type: array
                  nullable: true
                  items:
                    type: object
                rewards:
                  type: array
                  nullable: true
                  items:
                    type: object
                status:
                  type: object
                  nullable: true
                version:
                  type: string
                  nullable: true
                  description: Transaction version (e.g. "legacy" or a version number)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Client API Key or Client Session Token (CST). Pass as a Bearer token in
        the

        Authorization header.

````