---
title: "Get a single trade by transaction hash"
method: GET
path: "/api/2/token/trade"
tags: ["V2 - Trades"]
---

# Get a single trade by transaction hash

`GET /api/2/token/trade`

Looks up a single DEX trade by its transaction hash. Returns full trade details: tokens swapped, amounts, USD value, pool address, block, timestamp, and the trading wallet address. Use this to verify a specific swap or to enrich transaction data with trade context.

## Query parameters

- `chainId` string — Blockchain chain ID (e.g., "evm:56", "solana:solana")
- `transactionHash` string, required — Transaction hash

## Response `200`

Token trade response

- object
  - `data` object, required
    - `id` string, required
    - `operation` 'regular' | 'mev' | 'mev_sandwiched' | 'deposit' | 'withdrawal' | 'bond', required — Trade operation type (regular, mev, mev_sandwiched, deposit, withdrawal, bond)
    - `type` 'buy' | 'sell' | 'deposit' | 'withdrawal', required — Trade type (buy, sell, deposit, withdrawal)
    - `baseTokenAmount` number, required
    - `baseTokenAmountRaw` string, required
    - `baseTokenAmountUSD` number, required
    - `quoteTokenAmount` number, required
    - `quoteTokenAmountRaw` string, required
    - `quoteTokenAmountUSD` number, required
    - `date` number, required
    - `swapSenderAddress` string, required
    - `transactionSenderAddress` string, required
    - `swapRecipient` string, nullable — The actual beneficiary wallet of the swap. Most important address for AA wallets and accurate PnL tracking.
    - `blockchain` string, required
    - `transactionHash` string, required
    - `marketAddress` string, required
    - `marketAddresses` string[]
    - `baseTokenPriceUSD` number, required
    - `quoteTokenPriceUSD` number, required
    - `baseTokenMarketCapUSD` number, nullable
    - `quoteTokenMarketCapUSD` number, nullable
    - `labels` string[], nullable
    - `walletMetadata` object, nullable
      - `entityName` string, nullable, required
      - `entityLogo` string, nullable, required
      - `entityLabels` string[], required
      - `entityType` string, nullable, required
      - `entityDescription` string, nullable, required
      - `entityTwitter` string, nullable, required
      - `entityWebsite` string, nullable, required
      - `entityGithub` string, nullable, required
      - `entityDiscord` string, nullable, required
      - `entityTelegram` string, nullable, required
      - `extra` object
    - `baseToken` object, nullable
      - `address` string, required
      - `name` string, nullable, required
      - `symbol` string, nullable, required
      - `logo` string, nullable, required
      - `decimals` number, required
    - `quoteToken` object, nullable
      - `address` string, required
      - `name` string, nullable, required
      - `symbol` string, nullable, required
      - `logo` string, nullable, required
      - `decimals` number, required
    - `platform` object, nullable
      - `id` string, required
      - `name` string, required
      - `logo` string, nullable, required
    - `totalFeesUSD` number, nullable
    - `gasFeesUSD` number, nullable
    - `platformFeesUSD` number, nullable
    - `mevFeesUSD` number, nullable

## Other responses

- `402` — Payment Required

---

[API](https://skmtc.net/mobula/apis/mobula-api.md) · [All operations](https://skmtc.net/mobula/apis/mobula-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mobula/mobula-api/versions/32f95d9e8ff2/schema)
