---
title: "GET /v3/portfolio/swaps/{chain_id}/{address}"
method: GET
path: "/v3/portfolio/swaps/{chain_id}/{address}"
tags: ["Portfolio"]
---

# GET /v3/portfolio/swaps/{chain_id}/{address}

`GET /v3/portfolio/swaps/{chain_id}/{address}`

## Request

- Base URL: `https://api.arbital.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.arbital.xyz/v3/portfolio/swaps/{chain_id}/{address}`
- Auth: HTTP bearer

Request-time swap history of one token on one chain from Codex for the principal's server-resolved Privy wallets. Only wallets on the token's chain are read and the provider filters to swaps whose input or output is that token; a chain without a wallet returns an empty complete page. Native coins trade through their wrapped token: address native is rejected with 400. Same page shape, ordering, cursor rules and failure semantics as GET /v3/portfolio/swaps; the cursor is bound to the wallet set and the token. Display only; never balance, quote, execution or settlement authority.

## Path parameters

- `chain_id` 'eip155:1' | 'eip155:56' | 'eip155:143' | 'eip155:4663' | 'eip155:5042' | 'eip155:8453' | 'eip155:42161' | 'solana:mainnet-beta', required
- `address` string, required

## Query parameters

- `cursor` string

## Response `200`

Observed same-chain DEX swaps

- CodexWatchSwapHistory: Experimental request-time swap history. Same-chain DEX pool events only. Platform fees, lot ids, Relay bridges, and aggregator hops are not reconstructed.
  - `message` string, required
  - `responseObject` CodexWatchSwapHistoryObject, required
    - `hasNextPage` boolean, required
    - `next_cursor` string, nullable, required: Opaque wallet-set-bound boundary continuation. Null proves exhaustion for this provider read. Pass unchanged; 400 means restart, 503 means retry the same cursor.
    - `swaps` CodexWatchSwap[], required
      - union
        - object
          - `address` string, required
          - `createdAt` string, date-time, required
          - `humanUsdAmountIn` number, required
          - `humanUsdAmountOut` number, required
          - `id` string, required
          - `inAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use inAmountAtomic.
          - `inAmountAtomic` string: Exact input amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `inHumanAmount` number, required
          - `inNetworkId` integer, required
          - `inTokenAddress` string, required
          - `inTokenImageUrl` string, nullable, required
          - `inTokenName` string, nullable, required
          - `inTokenSymbol` string, nullable, required
          - `inTradeId` unknown, required
          - `isCrossmint` false, required
          - `isOffPlatform` true, required
          - `networkId` integer, required
          - `outAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use outAmountAtomic.
          - `outAmountAtomic` string: Exact output amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `outHumanAmount` number, required
          - `outNetworkId` integer, required
          - `outTokenAddress` string, required
          - `outTokenImageUrl` string, nullable, required
          - `outTokenName` string, nullable, required
          - `outTokenSymbol` string, nullable, required
          - `outTradeId` unknown, required
          - `platformFeeAmount` unknown, required
          - `platformFeeHumanAmount` unknown, required
          - `platformFeeToken` unknown, required
          - `provider` string, required
          - `recipient` unknown, required
          - `referralFeeAddress` unknown, required
          - `referralFeeHumanAmount` unknown, required
          - `referralFeeToken` unknown, required
          - `referralFeeTokenAmount` unknown, required
          - `signature` string, required
          - `inExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `inExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `outExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `outExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `receipt` union: Immutable historical display receipt. Pending values are finalized once; never current price, balance, settlement or lifecycle authority. Optional during rollout. Entry is null for buys; USDC sells finalize immediately with available Entry or missing_purchase_history.
            - object
              - …
            - object
              - …
            - object
              - …
        - object
          - `address` string, required
          - `createdAt` string, date-time, required
          - `humanUsdAmountIn` number, required
          - `humanUsdAmountOut` number, required
          - `id` string, required
          - `inAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use inAmountAtomic.
          - `inAmountAtomic` string: Exact input amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `inHumanAmount` number, required
          - `inNetworkId` integer, required
          - `inTokenAddress` string, required
          - `inTokenImageUrl` string, nullable, required
          - `inTokenName` string, nullable, required
          - `inTokenSymbol` string, nullable, required
          - `inTradeId` unknown, required
          - `isCrossmint` false, required
          - `isOffPlatform` true, required
          - `networkId` integer, required
          - `outAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use outAmountAtomic.
          - `outAmountAtomic` string: Exact output amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `outHumanAmount` number, required
          - `outNetworkId` integer, required
          - `outTokenAddress` string, required
          - `outTokenImageUrl` string, nullable, required
          - `outTokenName` string, nullable, required
          - `outTokenSymbol` string, nullable, required
          - `outTradeId` unknown, required
          - `platformFeeAmount` unknown, required
          - `platformFeeHumanAmount` unknown, required
          - `platformFeeToken` unknown, required
          - `provider` string, required
          - `recipient` unknown, required
          - `referralFeeAddress` unknown, required
          - `referralFeeHumanAmount` unknown, required
          - `referralFeeToken` unknown, required
          - `referralFeeTokenAmount` unknown, required
          - `signature` string, required
          - `inExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `inExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `outExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `outExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `receipt` union: Immutable historical display receipt. Pending values are finalized once; never current price, balance, settlement or lifecycle authority. Optional during rollout. Entry is null for buys; USDC sells finalize immediately with available Entry or missing_purchase_history.
            - object
              - …
            - object
              - …
            - object
              - …
        - object
          - `address` string, required
          - `createdAt` string, date-time, required
          - `humanUsdAmountIn` number, required
          - `humanUsdAmountOut` number, required
          - `id` string, required
          - `inAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use inAmountAtomic.
          - `inAmountAtomic` string: Exact input amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `inHumanAmount` number, required
          - `inNetworkId` integer, required
          - `inTokenAddress` string, required
          - `inTokenImageUrl` string, nullable, required
          - `inTokenName` string, nullable, required
          - `inTokenSymbol` string, nullable, required
          - `inTradeId` unknown, required
          - `isCrossmint` false, required
          - `isOffPlatform` true, required
          - `networkId` integer, required
          - `outAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use outAmountAtomic.
          - `outAmountAtomic` string: Exact output amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `outHumanAmount` number, required
          - `outNetworkId` integer, required
          - `outTokenAddress` string, required
          - `outTokenImageUrl` string, nullable, required
          - `outTokenName` string, nullable, required
          - `outTokenSymbol` string, nullable, required
          - `outTradeId` unknown, required
          - `platformFeeAmount` unknown, required
          - `platformFeeHumanAmount` unknown, required
          - `platformFeeToken` unknown, required
          - `provider` string, required
          - `recipient` unknown, required
          - `referralFeeAddress` unknown, required
          - `referralFeeHumanAmount` unknown, required
          - `referralFeeToken` unknown, required
          - `referralFeeTokenAmount` unknown, required
          - `signature` string, required
          - `inExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `inExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `outExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `outExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `receipt` union: Immutable historical display receipt. Pending values are finalized once; never current price, balance, settlement or lifecycle authority. Optional during rollout. Entry is null for buys; USDC sells finalize immediately with available Entry or missing_purchase_history.
            - object
              - …
            - object
              - …
            - object
              - …
        - object
          - `address` string, required
          - `createdAt` string, date-time, required
          - `humanUsdAmountIn` number, required
          - `humanUsdAmountOut` number, required
          - `id` string, required
          - `inAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use inAmountAtomic.
          - `inAmountAtomic` string: Exact input amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `inHumanAmount` number, required
          - `inNetworkId` integer, required
          - `inTokenAddress` string, required
          - `inTokenImageUrl` string, nullable, required
          - `inTokenName` string, nullable, required
          - `inTokenSymbol` string, nullable, required
          - `inTradeId` unknown, required
          - `isCrossmint` false, required
          - `isOffPlatform` true, required
          - `networkId` integer, required
          - `outAmount` number, required: Legacy numeric atomic amount. May be rounded above JavaScript's safe integer limit; use outAmountAtomic.
          - `outAmountAtomic` string: Exact output amount in atomic units when the provider value and token decimals permit an unambiguous conversion.
          - `outHumanAmount` number, required
          - `outNetworkId` integer, required
          - `outTokenAddress` string, required
          - `outTokenImageUrl` string, nullable, required
          - `outTokenName` string, nullable, required
          - `outTokenSymbol` string, nullable, required
          - `outTradeId` unknown, required
          - `platformFeeAmount` unknown, required
          - `platformFeeHumanAmount` unknown, required
          - `platformFeeToken` unknown, required
          - `provider` string, required
          - `recipient` unknown, required
          - `referralFeeAddress` unknown, required
          - `referralFeeHumanAmount` unknown, required
          - `referralFeeToken` unknown, required
          - `referralFeeTokenAmount` unknown, required
          - `signature` string, required
          - `inExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `inExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `outExecutionPriceUsd` string, nullable, required: Historical USD consideration divided by the exact quantity of this token in this fill. Decimal string rounded half up to at most 18 fractional digits. Null when unavailable; never substituted with a current quote, portfolio average entry, or zero. Does not add network fees.
          - `outExecutionPriceUnavailableReason` 'missing_usd_value' | 'invalid_usd_value' | 'invalid_token_amount' | 'price_out_of_range' | 'historical_swap_unavailable' | 'historical_swap_not_found' | 'historical_swap_ambiguous' | 'historical_lookup_incomplete' | 'historical_lookup_limited' | 'unsupported_trade' | 'null', nullable, required: Null when the execution price is available; otherwise the reason it could not be determined. Treat unavailable values as unknown, without a current-price fallback.
          - `receipt` union: Immutable historical display receipt. Pending values are finalized once; never current price, balance, settlement or lifecycle authority. Optional during rollout. Entry is null for buys; USDC sells finalize immediately with available Entry or missing_purchase_history.
            - object
              - …
            - object
              - …
            - object
              - …
  - `statusCode` 200, required
  - `success` true, required

## Other responses

- `400`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `401`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `404`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `503`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.

---

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