Why two price denominations?EverysolAmount/avgPriceare the retrocompat legacy contract — old clients keep working unchanged.quoteAmount/usdAmount/priceUsdexpose the native pool quote currency for clients that want to render trades in their actual settlement asset (USDC trades show “paid 11.65 USDC” instead of “paid 0.138 SOL-equivalent”). See USDC-quoted PumpSwap pools below.
TradeConnection uses opaque cursor pagination. When hasMore is true, pass nextCursor back as cursor on the next call.
All three trades* queries below share the same fromTime / toTime time-window arguments. Both accept either milliseconds since epoch as a decimal string ("1776180666000") or ISO-8601 / RFC-3339 ("2026-04-14T00:00:00Z"). fromTime is inclusive, toTime is exclusive. The bounds are optional and independent — pass only fromTime to get “everything since T”, only toTime for “everything before T”, or both for a strict window. The filters compose with cursor for paginating inside the window.
tradesByMint
Trades for a single token mint, ordered by timestamp.
Arguments
Example
tradesBySigner
Trades for one or many signers, merged and sorted across the whole list. The batch form is the recommended way to fetch trades across large cohorts (up to 1000 wallets) in a single round trip.
Arguments
Provide exactly one of
signer or signers.
Single-signer example
Batch example
signers and the returned nextCursor back together until hasMore is false.
Time-window example (3-day rolling history)
fromTime lets ClickHouse prune partitions outside the window — strictly faster than paginating until you see old rows on the client.
Limits & behavior
- Max signers per call: 1000.
- Empty/unknown signers: contribute zero rows, do not fail the query.
- Latency: ~100-400 ms p50, ~1-2 s p99 for 500 signers at
limit ≤ 200.
tradesBySignerAndMint
Trades for a specific (signer, mint) pair — one wallet’s history on one specific token.
Arguments
Example
tradingVolume
Aggregate trading activity for a single mint over a rolling window. Returns a free-form JSON payload (not a typed object).
Arguments
Example
trades, buys, sells, volume_sol, unique_traders.
USDC-quoted pools
A handful of Token-2022 mints (TRALALERO2MBq3mrK…, Bank 2jCt3hj9… and others) launch direct on PumpSwap with USDC as the pool’s quote mint, not wSOL. The parser detects these aggregate-level (no SOL leg in the swap) and:
- Normalises the USDC notional into SOL-equivalent via the live SOL/USD price hook, so
solAmountandavgPricestay SOL-denominated — old clients keep rendering price × supply correctly. - Drops the trade entirely when the price hook hasn’t been set yet (early startup window). The row reappears on the next price tick rather than being emitted with USDC units in a SOL-denominated field.
- Exposes the real USDC amount in
quoteAmount, the per-token USD price inpriceUsd, and the notional inusdAmount— so new clients can render the actual settlement asset.
Pre-fix rows (before 2026-05-26 09:00 UTC) for USDC-quoted Token-2022 pools may havesolAmountset to the priority-fee delta (~0.0001 SOL) andavgPricein USDC/token units. Historical backfill of those rows is in flight; until it completes, filter withquoteSymbol != ''to restrict to corrected rows.
Querying ClickHouse directly
The columns above mirrorraze.trades 1:1. If you have a ClickHouse user with SELECT on the raze database (region DB hosts only), you can query directly:
source lets you distinguish ingestion paths: yellowstone for live Yellowstone gRPC (canonical), shred for jito-shred local-sim gap-fills (deferred 3 s after Yellowstone), car for historical Old-Faithful backfill rows.