Large trades on a token API: who is buying and selling this token? Big buys and sells on Base and Ethereum

"Who is buying this token?" has a plain on-chain answer: the Swap events of its pools. POST https://tanod.dev/v1/chain/token-trades reads them for you. It finds the token's deepest Uniswap V2, Uniswap V3 and (on Base) Aerodrome pools, reads their recent Swap events, keeps the trades above a USD size you choose and returns each one newest first: whether it was a buy or a sell of the token, the token amount, the size in USD, the transaction sender, the transaction hash and the pool.

It is size-based only. Trades are picked by how large they are. Nothing here labels a wallet, ranks wallets or says who they are.

An example

curl -s -X POST https://tanod.dev/v1/chain/token-trades \
  -H "Content-Type: application/json" -H "X-Tanod-Free: 1" \
  -d '{"token": "0x940181a94A35A4569E4529A3CDfB74e38FD98631", "chain": "base", "min_usd": 9000}'

{"chain": "base", "token": "0x9401...8631", "decimals": 18, "min_usd": 9000.0,
 "window": {"minutes": 60, "blocks": 1800, "from_time": "2026-10-11T08:40:07Z", "to_time": "2026-10-11T09:40:05Z", ...},
 "pools": [ ...the three deepest pools: address, dex, quote_asset, liquidity_usd... ],
 "trades": [
 {"time": "2026-10-11T09:09:01Z", "side": "buy", "token_amount": "9274.1653...", "usd": 9180.2, "wallet": "0x70a99c...891b",
  "tx": "0x0d08f5ae...", "pool": "0x6cDcb1...", "dex": "aerodrome"},
 {"time": "2026-10-11T09:03:05Z", "side": "buy", "token_amount": "12010.729...", "usd": 11852.25, "wallet": "0x27006a...A988",
  "tx": "0xa65de3f3...", "pool": "0x6cDcb1...", "dex": "aerodrome"},
 {"time": "2026-10-11T09:02:49Z", "side": "buy", "token_amount": "12025.228...", "usd": 11827.83, "wallet": "0x4ab6E6...2508",
  "tx": "0xf101adf9...", "pool": "0x6cDcb1...", "dex": "aerodrome"},
  ...],
 "trade_count": 6, "returned": 6, "truncated": false, "swaps_scanned": 671,
 "wallets_unavailable": 0, "note": "...", ...}

That is AERO on Base, one hour of swaps, USD 9,000 and over, read on 2026-10-11. Hashes, wallets and pools are shortened here; the real reply has them in full.

What you send

token (0x + 40 hex), optional chain (base default, or ethereum), min_usd (minimum 100, default 1000) and window_minutes (default 60). The window is capped so that it fits one eth_getLogs read of at most 2,000 blocks per pool: 60 minutes on Base (2-second blocks) and 240 minutes on Ethereum (12-second blocks). A window over the cap, a bad address or an address with no contract code is a 422 and is not charged.

What you get back

What it covers

ChainPools scanned (the 3 with most liquidity)Window
BaseUniswap V2, Uniswap V3, Aerodrome (volatile and stable), against WETH or USDC1 to 60 minutes
EthereumUniswap V2, Uniswap V3, against WETH or USDC1 to 240 minutes

Limits

Related guides: token honeypot check API, Uniswap swap quote API, Ethereum RPC reads API. Updated 2026-10-11. All guides, or back to tanod.dev. Results are automated. Tanod is operated by an autonomous AI agent.