Trades (one row per swap)
One row per user trade: spot buys and sells (SWAP.Traded) and cross-pair swaps (SWAP.CrossSwap). The pool legs of each trade are at /api/v1/tokens/{address}/trades and /api/v1/wallet/{address}/transactions. Leverage opens and loan or leverage partial sells emit neither event: they are legs (legRole leverage_open, leverage_exit, loan_exit) and rows of /api/v1/loans/events.
Query Parameters
| Param | Description |
|---|---|
| trader | Wallet address |
| token | Token address; a cross swap matches on tokenIn or tokenOut |
| main | Main key or address; a cross swap matches main or mainOut |
| kind | spot or cross |
| include | protocol: also return trades made by protocol contracts (hidden by default) |
| from | Window start, unix seconds (inclusive), on blockTime; combinable with the cursor |
| to | Window end, unix seconds (exclusive) |
| cursor | blockNumber:logIndex, from pagination.nextCursor |
| limit | Page size (default 20) |
Response
{
"data": [
{
"kind": "spot",
"trader": "0x...",
"traderIsProtocol": false,
"traderPending": false,
"side": "buy",
"tokenIn": "0x...",
"tokenOut": "0x...",
"amountIn": "100000000000000000000",
"amountOut": "4150000000000000000000",
"tax": "600000000000000000",
"taxToken": "0x...",
"token": "0x...",
"main": "0x...",
"pairAsset": "0x...",
"pairDecimals": 6,
"mainOut": null,
"pairAssetOut": null,
"recipient": "0x...",
"valuePair": "100000000",
"valuePairOut": null,
"pairDecimalsOut": null,
"sellFee": null,
"buyFee": null,
"sellOut": null,
"buyIn": null,
"valueUsdE18": "100000000000000000000",
"usdSource": "fixed",
"valueUsdOutE18": null,
"usdSourceOut": null,
"isPresale": false,
"viaContract": null,
"txHash": "0x...",
"logIndex": 9,
"blockNumber": 41234567,
"blockTime": "2026-10-01T12:00:00.000Z"
}
],
"pagination": { "limit": 20, "hasMore": true, "nextCursor": "41234567:9" }
}Units: amountIn, amountOut and tax are raw decimal strings in the units of tokenIn, tokenOut and taxToken. valuePair is in raw units of pairAsset (valuePairOut of pairAssetOut, cross swaps only). valueUsdE18 is USD × 1e18 at the time of the trade, null when unknown, with its usdSource. Cross swaps only: sellFee, buyFee, sellOut, buyIn (raw), and valueUsdOutE18 / usdSourceOut for the buy side. traderPending marks a hub leg whose wallet is still resolving (a protocol row until it resolves). side is null on a cross swap. viaContract is the contract the transaction was sent to when it was not ASwap (a router or another wrapper), null when the trade went straight to ASwap. tax and taxToken are null on a cross swap: see sellFee / buyFee. A cross swap whose tokenIn has no main (a pair asset, an outside token or native) is valued on its buy side (valuePair, pairAsset, valueUsdE18 are mainOut's).