Get a wallet's trade history
List every trade a Robinhood Chain wallet made across all tokens, with USD value at trade time, market cap, DEX and gas. Filter by token, side, size, time.
Call GET /v1/robinhood/wallet/{address}/trades (Starter plan, 5 credits). It returns the wallet's trades across all tokens, newest first, in the trade tape's shape plus the token: type, value_usd, amount_base, price_usd, market_cap_usd_at_trade, dex, fees, tx. Filter with token, side, min_usd, from_ts / to_ts, and page with cursor.
A wallet’s trade history is every buy and sell it made, across every token on Robinhood Chain, newest first. Each trade carries what was swapped, its value in USD and ETH at that moment, the market cap at the time, the DEX or launchpad curve, the gas paid and any token tax. Trades made through routers, bots and smart accounts are attributed to the wallet that owns the funds, so the history is the user’s real activity, not their router’s.
Get a wallet’s trades
A token creator with no trades
Did the wallet that launched Charge AI (0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca) ever buy or sell a token?
curl "https://api.crius.sh/v1/robinhood/wallet/0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca/trades?limit=3" \ -H "x-api-key: $CRIUS_API_KEY"const res = await fetch("https://api.crius.sh/v1/robinhood/wallet/0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca/trades?limit=3", { headers: { "x-api-key": process.env.CRIUS_API_KEY },});const { data, meta } = await res.json();import os, requests
r = requests.get( "https://api.crius.sh/v1/robinhood/wallet/0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca/trades?limit=3", headers={"x-api-key": os.environ["CRIUS_API_KEY"]},)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 13 lines (arrays trimmed)
{ "data": [], "meta": { "block": 100406866, "block_age_ms": 557, "block_ts": 1793225085000, "chain": "robinhood", "finalized_block": 100397649, "lag_ms": 110, "next_cursor": null, "safe_block": 100401329 }}What this tells you
data: []andmeta.next_cursor: null: this wallet has never made a trade, on any token.- Launching a token isn’t a trade. The wallet created CHARGE on Pons but never bought any of it, which matches its developer profile (
dev_sold_pct: null: it never held the token) and its wallet profile (pnl.trades: 0). - An empty history for a dev wallet is a good sign in one way: it didn’t buy its own launch to dump later.
The same trade objects are on the token’s trade tape, which has a trader filter and is on the anonymous plan. Here is one active wallet’s full history in one token:
One buy on the Pons curve, seven sells on Uniswap v4
How did 0x9e38fedc40987c19396cc20ea59eb2b1b7928881, CHARGE's most profitable trader, trade it?
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/trades?trader=0x9e38fedc40987c19396cc20ea59eb2b1b7928881&limit=10"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/trades?trader=0x9e38fedc40987c19396cc20ea59eb2b1b7928881&limit=10");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/trades?trader=0x9e38fedc40987c19396cc20ea59eb2b1b7928881&limit=10",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 350 lines (arrays trimmed)
{ "data": [ { "amount_base": 3450501.202444715882983567, "amount_quote": 0.059489677910557273, "block": 89567489, "dex": "uniswap_v4", "eth_usd_at_trade": 2461.46, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.02114, "gas_used": 211923, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000448005, "total_eth": 0.00000448005, "usd": 0.0110275 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "89567489-3-3", "market_cap_usd_at_trade": 41171.4, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "price_eth": 0.0000000172409, "price_usd": 0.0000424378, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1792101884000, "tx": "0xa2cde4fc974766f588279983c6453169163b5332c8b964d33b09a9c53ced8818", "tx_index": 3, "type": "sell", "value_eth": 0.0594897, "value_usd": 146.432, "via": [] }, { "amount_base": 3450501.202444715882983566, "amount_quote": 0.076326432685469697, "block": 88527989, "dex": "uniswap_v4", "eth_usd_at_trade": 2444.46, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.021216, "gas_used": 216578, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000459492, "total_eth": 0.00000459492, "usd": 0.0112321 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "88527989-3-21", "market_cap_usd_at_trade": 52459, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "price_eth": 0.0000000221204, "price_usd": 0.0000540725, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1791997126000, "tx": "0x734c18c4b65ea2795c480651c6b7c2b64209d437a5cc92ba9d06cc0c9c12f282", "tx_index": 3, "type": "sell", "value_eth": 0.0763264, "value_usd": 186.577, "via": [] }, { "amount_base": 2300334.134963143921989044, "amount_quote": 0.071658341178558314, "block": 88475945, "dex": "uniswap_v4", "eth_usd_at_trade": 2438.29, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.020702, "gas_used": 216676, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000448563, "total_eth": 0.00000448563, "usd": 0.0109373 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "88475945-1-0", "market_cap_usd_at_trade": 73689.3, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "price_eth": 0.0000000311513, "price_usd": 0.0000759559, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1791991894000, "tx": "0x99d7a94b290cea9a6e8cb9c2f63f5199a1d3250364700b6aebe2eeb1db298040", "tx_index": 1, "type": "sell", "value_eth": 0.0716583, "value_usd": 174.724, "via": [] }, { "amount_base": 3067112.179950858562652058, "amount_quote": 0.086696054744512961, "block": 88475346, "dex": "uniswap_v4", "eth_usd_at_trade": 2437.39, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.020702, "gas_used": 216654, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000448517, "total_eth": 0.00000448517, "usd": 0.0109321 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "88475346-6-9", "market_cap_usd_at_trade": 66840.2, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "price_eth": 0.0000000282663, "price_usd": 0.0000688961, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1791991834000, "tx": "0x95c675f803e40c2ea0c3a84340eb5dbd19452983bfcc4817bdd81191922045b6", "tx_index": 6, "type": "sell", "value_eth": 0.0866961, "value_usd": 211.312, "via": [] }, { "amount_base": 4089482.906601144750202745, "amount_quote": 0.096224110593702316, "block": 88466730, "dex": "uniswap_v4", "eth_usd_at_trade": 2432.02, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.020974, "gas_used": 216560, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000454213, "total_eth": 0.00000454213, "usd": 0.0110465 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "88466730-5-3", "market_cap_usd_at_trade": 55516.9, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "price_eth": 0.0000000235297, "price_usd": 0.0000572245, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1791990966000, "tx": "0x0a036198703d4f8f88ef8e7e2a789a9788ef1affce207e519dd7d9f50dc483a7", "tx_index": 5, "type": "sell", "value_eth": 0.0962241, "value_usd": 234.019, "via": [] }, { "amount_base": 5452643.875468193000270326, "amount_quote": 0.103891242720784518, "block": 88461897, "dex": "uniswap_v4", "eth_usd_at_trade": 2422.69, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.020708, "gas_used": 216676, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000448693, "total_eth": 0.00000448693, "usd": 0.0108705 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "88461897-9-21", "market_cap_usd_at_trade": 44783.1, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "price_eth": 0.0000000190534, "price_usd": 0.0000461605, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1791990481000, "tx": "0x9fa0531f936d1350e415a003c9127f6b4d9300caff0b353e761bee6ee312555b", "tx_index": 9, "type": "sell", "value_eth": 0.103891, "value_usd": 251.697, "via": [] }, { "amount_base": 7270191.833957590667027102, "amount_quote": 0.141409557571563841, "block": 88461530, "dex": "uniswap_v4", "eth_usd_at_trade": 2427.14, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.02065, "gas_used": 216714, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000447514, "total_eth": 0.00000447514, "usd": 0.0108618 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "88461530-5-12", "market_cap_usd_at_trade": 45800.6, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "price_eth": 0.0000000194506, "price_usd": 0.0000472093, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1791990444000, "tx": "0x5b7b4db274b6818846f101c1c371a5eb0bc53801f0830c691063a3fd9a3b9723", "tx_index": 5, "type": "sell", "value_eth": 0.14141, "value_usd": 343.221, "via": [] }, { "amount_base": 29080767.335830362668108408, "amount_quote": 0.099, "block": 88389602, "dex": "pons_curve", "eth_usd_at_trade": 2475.75, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.02029, "gas_used": 277378, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.000005628, "total_eth": 0.000005628, "usd": 0.0139335 }, "token_tax": { "pct": 0 } }, "finality": "finalized", "id": "88389602-19-29", "market_cap_usd_at_trade": 8176.73, "pool": "0x2b0943bf947b54df526047b6fec8183a4fdeb3c3", "price_eth": 0.00000000340431, "price_usd": 0.00000842823, "quote": "0x0000000000000000000000000000000000000000", "quote_symbol": "ETH", "signer": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "signer_label": null, "trader": "0x9e38fedc40987c19396cc20ea59eb2b1b7928881", "trader_app": null, "trader_label": null, "ts": 1791983208000, "tx": "0x1f6f1367f5ae6f2fec73bdc63ba88762bd73e32b20c19f029bffdd5b5ce8deb5", "tx_index": 19, "type": "buy", "value_eth": 0.099, "value_usd": 245.099, "via": [] } ], "meta": { "block": 100408989, "block_age_ms": 371, "block_ts": 1793225306000, "chain": "robinhood", "finalized_block": 100397649, "lag_ms": 48, "next_cursor": null, "safe_block": 100401329 }}What this tells you
- Eight trades, newest first. The last item is the only buy:
type: "buy",dex: "pons_curve", 0.099 ETH (value_usd: 245.099) for 29,080,767 CHARGE atmarket_cap_usd_at_trade: 8176.73, on 2026-10-14 at 13:06 UTC, six minutes after launch. - The seven sells are on
dex: "uniswap_v4", in pool0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913, after the token graduated. They sold at market caps between 41171.4 and 73689.3; the largest wasvalue_usd: 343.221. - The seven
value_usdadd up to 1,547.98, exactly thesold_usdof this wallet in CHARGE’s top traders. The trade list is the evidence behind the PnL. traderandsignerare the same address withexecutor: null: the wallet sent its own transactions, without a bot or relayer.fees.token_tax.pct: 0on every trade, and gas of about a cent each (fees.gas.usd: 0.0139335on the buy).finality: "finalized": Ethereum has finalized the batches these trades were posted in (see Finality).
What the fields mean
| Field | Meaning |
|---|---|
id | Unique trade id: block, transaction index, log index. |
type | buy or sell, from the wallet's side. |
token | (wallet trades) the token traded: address, symbol, logo. |
amount_base, amount_quote, quote, quote_symbol | Tokens traded, and what they were paid with (ETH, WETH, USDG…). |
value_usd, value_eth, eth_usd_at_trade | Value of the trade at the time it happened. |
price_usd, price_eth, market_cap_usd_at_trade | The token's price and market cap at that trade. |
dex, pool, via | Where it traded (pons_curve, uniswap_v4, uniswap_v3…), the pool, and routers it went through. |
trader, signer, executor, trader_label, trader_app | Who traded, who sent the transaction, and the relayer or bundler when there was one. |
fees.gas | Gas in ETH (L2 and L1 parts) and USD. |
fees.token_tax.pct | Token tax actually taken on this trade. |
block, ts, tx, finality | When and where it happened, and whether it's latest, safe or finalized. |
Filters on /wallet/{address}/trades: token (one token’s trades), side (buy or sell), min_usd, from_ts and to_ts (unix ms), limit (up to 500, default 50) and cursor (meta.next_cursor).
Use it in your app
-
Get a Starter key for
/wallet/{address}/trades(5 credits per call). For one token only, the token trade tape withtrader=works without a key. -
Page through history. Ask for
limit=500and passmeta.next_cursorascursoruntil it’snull. For updates, fetch withfrom_tsset to the newesttsyou have and skipids you’ve already stored. -
Group by token for a portfolio view. Sum
value_usdpertoken.addressandtype: buys are cost, sells are proceeds. The wallet profile already does this as PnL. -
Show the context.
market_cap_usd_at_trade(“bought at $8k market cap”) anddex(“on the Pons curve”) make a trade history readable.
// Every trade of a wallet, all pages.async function walletTrades(wallet) { const out = []; let cursor = null; do { const q = new URLSearchParams({ limit: "500", ...(cursor && { cursor }) }); const res = await fetch(`https://api.crius.sh/v1/robinhood/wallet/${wallet}/trades?${q}`, { headers: { "x-api-key": process.env.CRIUS_API_KEY }, }); const { data, meta } = await res.json(); out.push(...data); cursor = meta.next_cursor; } while (cursor); return out;}
const trades = await walletTrades("0x9e38fedc40987c19396cc20ea59eb2b1b7928881");for (const t of trades) console.log(new Date(t.ts).toISOString(), t.type, t.token.symbol, `$${t.value_usd}`, t.dex);Frequently asked questions
How do I get all the trades of a wallet on Robinhood Chain?
Call /v1/robinhood/wallet/{address}/trades?limit=500 and follow meta.next_cursor until it's null. Trades come newest first, across every token and DEX the wallet used, each with the USD value at the time of the trade.
How do I get a wallet's trades in one token without a paid plan?
Use the token's trade tape with the trader filter: /v1/robinhood/token/{token}/trades?trader={wallet}. It's on the anonymous plan (2 credits with a key) and returns the same trade objects. Use /wallet/{address}/trades when you need every token at once.
Does a trade through a router or a trading bot show up under my wallet?
Yes. Crius attributes each swap to the wallet whose balance changed, not to the router, aggregator, Relay solver or ERC-4337 bundler that sent it. The sender is reported separately as signer and executor. See Trader attribution.
Why does a wallet return no trades?
It hasn't bought or sold any token on a DEX or launchpad curve. Launching a token, receiving an airdrop or sending a transfer isn't a trade. An address the index has never seen also returns an empty list rather than an error.
Which plan does wallet trades need?
The Starter plan or higher, 5 credits per call. See Plans & limits.
Related
Get your free Crius API key
Every example on this page works with a free key: higher rate limits than the anonymous plan, holders, wallets and the WebSocket stream. No card needed.
- Robinhood Chain (4663) only, from our own archive nodes
- REST + WebSocket
- Pay on-chain or by card