A tape with names on it.
Wallet-level attribution on every fill (realized PnL, positions, volume), so you can surface top traders, not anonymous flow.
The parts you keep working around.
Anonymized tapes make 'who is worth copying' unanswerable.
Computing trader PnL from raw fills is an accounting project with float-rounding landmines.
Following a specific set of wallets means filtering a firehose client-side.
How the platform answers, point by point.
Anonymous flow
Every fill carries the trader's wallet, direction, and position context
DIY PnL accounting
closed_pnl on each fill, byte-exact, plus a ready-made wallet-PnL dataset (volume, win-rate per address)
Client-side filtering
Subscribe to specific wallets server-side and receive only the traders you follow
Every fill carries its trader.
Wallet, position context, realized PnL, and fee on the wire, plus the same attribution aggregated per address in the wallet-PnL dataset below.
{ "block_height": 612408133, "block_time": "2026-06-09T08:14:02.418Z", "coin": "BTC", "px": "67012.0", "sz": "0.14523", "notional": "9732.15", "side": "B", "crossed": true, : "0x7c4ee0c0c5d3ab91f7f0f3c2a3d6b18452e9a3f9", : "Close Short", "start_position": "-0.42100", : "182.337041", : "2.433037", "is_rebate": false, "oid": 91834221107, "cloid": "0x00000000000000000000000000a1b2c3", "tid": 442191083327011, "twap_id": null, "liquidation": null}The wallet-PnL derived dataset rolls the same fills up per address into realized PnL, win rate, volume, and trade count, so the leaderboard is a query, not a pipeline.
| 0x5dd8…9faf | +$1.8M | 57.7% | $373.1M | 84,171 |
| 0x1cc6…e6e7 | +$1.6M | 58.4% | $371.2M | 80,281 |
| 0x5001…e11b | +$1.4M | 70.0% | $208.4M | 37,961 |
| 0xcc9e…845c | +$584,847 | 57.6% | $229.7M | 53,889 |
| 0x8626…57c5 | +$560,779 | 67.4% | $84.8M | 73,173 |
| 0x4f86…6de2 | +$471,778 | 53.8% | $106.5M | 71,010 |
| 0xe69b…d3f8 | +$439,822 | 66.3% | $55.0M | 54,893 |
| 0x5eee…55bd | −$562,590 | 51.0% | $202.4M | 65,747 |
| 0x6745…e58b | −$1.2M | 51.1% | $335.1M | 18,859 |
Sample rows in the wallet-PnL dataset format: 63,000+ wallets tracked across the full tape.
Follow specific wallets, server-side.
Pass the addresses you track in the subscription and receive only their fills. Pro allows 25 wallet filters; Ultra removes the limit.
Read the docs# Follow specific traders, server-sidefills = swap_stub.StreamSwaps( swaps_pb2.SwapRequest( market_type="ALL", wallets=[ "0x7c4ee0c0c5d3ab91f7f0f3c2a3d6b18452e9a3f9", "0xa4f17bd09e26c3158c0b7341fa882ce05d97b264", ], ), metadata=metadata,)for fill in fills: print(fill.user, fill.coin, fill.dir, fill.closed_pnl)The plan that fits.
Ultra
$199/moRecommendedFull archive, replay, and maximum throughput.
Pro allows 25 wallet filters; platforms tracking trader cohorts want Ultra's unlimited filters and the wallet-PnL derived dataset.
Compare both plansBuild the leaderboard, skip the accounting.
closed_pnl arrives byte-exact on every fill, and the derived dataset carries volume and win-rate per address.