curl 'https://api.serialized.xyz/v1/token/trades?chain=evm:8453&address=0x4ed4e862860bed51a9570b96d89af5e1b0efefed&limit=3' \
-H 'Authorization: YOUR_API_KEY'
curl -X POST 'https://api.serialized.xyz/v1/token/trades' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"chain":"evm:8453","address":"0x4ed4e862860bed51a9570b96d89af5e1b0efefed","makers":["0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09"],"limit":3}'
{
"data": [
{
"id": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf:289",
"at": 1786718835000,
"maker": "0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09",
"isBuy": true,
"amountToken": 77.05662024406023,
"amountQuote": 0.000042612402192036,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4747124708872e-7,
"priceUsd": 0.00103052429,
"volumeNative": 0.000042612402192036,
"volumeUsd": 0.08021081608014609,
"feesNative": 0.0000021,
"isProTrader": false,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf",
"block": 49964744,
"logIndex": 289,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
},
{
"id": "0xfe19670bf678d0a83f9ef9227e34f3a76462a924603a31ec2481fac34c7be319:407",
"at": 1786695809000,
"maker": "0x6011b76b4b7badc0c4aa28a703a7eedc28334181",
"isBuy": true,
"amountToken": 27832.30183604025,
"amountQuote": 0.015391014265196838,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4748839531073e-7,
"priceUsd": 0.001030556569,
"volumeNative": 0.015391014265196838,
"volumeUsd": 28.97104483687929,
"feesNative": 0.0000034,
"isProTrader": true,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0xfe19670bf678d0a83f9ef9227e34f3a76462a924603a31ec2481fac34c7be319",
"block": 49953231,
"logIndex": 407,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
}
],
"meta": {
"asOf": 1786725098947,
"usdBasis": "spot",
"hasMore": true,
"nextCursor": "e1:eyJ0IjoxNzg2Njk1ODA5MDAwLCJiIjo0OTk1MzIzMSwibCI6NDA3fQ"
}
}
Trades Tape
Real-time trade tape, token-wide by default or restricted to specific pools. maker is the trader behind the swap, resolved through relays, solvers and smart accounts, with isProTrader/isSniper badges on every row and isWash on Solana. On Base, preconfirmed (flashblocks) trades appear ~2.5s before block commit, flagged per row. Rich filters (side, USD/native/token size, date range, makers) and opaque cursor pagination.
curl 'https://api.serialized.xyz/v1/token/trades?chain=evm:8453&address=0x4ed4e862860bed51a9570b96d89af5e1b0efefed&limit=3' \
-H 'Authorization: YOUR_API_KEY'
curl -X POST 'https://api.serialized.xyz/v1/token/trades' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"chain":"evm:8453","address":"0x4ed4e862860bed51a9570b96d89af5e1b0efefed","makers":["0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09"],"limit":3}'
{
"data": [
{
"id": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf:289",
"at": 1786718835000,
"maker": "0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09",
"isBuy": true,
"amountToken": 77.05662024406023,
"amountQuote": 0.000042612402192036,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4747124708872e-7,
"priceUsd": 0.00103052429,
"volumeNative": 0.000042612402192036,
"volumeUsd": 0.08021081608014609,
"feesNative": 0.0000021,
"isProTrader": false,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf",
"block": 49964744,
"logIndex": 289,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
},
{
"id": "0xfe19670bf678d0a83f9ef9227e34f3a76462a924603a31ec2481fac34c7be319:407",
"at": 1786695809000,
"maker": "0x6011b76b4b7badc0c4aa28a703a7eedc28334181",
"isBuy": true,
"amountToken": 27832.30183604025,
"amountQuote": 0.015391014265196838,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4748839531073e-7,
"priceUsd": 0.001030556569,
"volumeNative": 0.015391014265196838,
"volumeUsd": 28.97104483687929,
"feesNative": 0.0000034,
"isProTrader": true,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0xfe19670bf678d0a83f9ef9227e34f3a76462a924603a31ec2481fac34c7be319",
"block": 49953231,
"logIndex": 407,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
}
],
"meta": {
"asOf": 1786725098947,
"usdBasis": "spot",
"hasMore": true,
"nextCursor": "e1:eyJ0IjoxNzg2Njk1ODA5MDAwLCJiIjo0OTk1MzIzMSwibCI6NDA3fQ"
}
}
GET /v1/token/trades · 1 credit
POST /v1/token/trades · 1 credit
Real-time trade tape. maker is the trader behind the swap: when a wallet trades through a relay, a solver or a smart account, the row is attributed to that wallet, otherwise to the transaction sender. Every row carries isProTrader/isSniper badges, and isWash on Solana. On Base, preconfirmed (flashblocks) trades appear ~2.5s before block commit, flagged per row. Token-wide by default - pass pools= to restrict. Use the POST twin for the makers[] filter (up to 2000 addresses, beyond the URL length cap).
txHash (id is txHash:logIndex): group by txHash for a per-transaction view. On Solana the legs of a transaction are aggregated into one row per transaction and side (id is signature:b or signature:s). Every row names its market in poolAddress: the pool of the swap event on EVM, the pool carrying the largest leg of the side on Solana.limit and by a scan window over the tape: a page can hold fewer than limit rows while meta.hasMore is true. Keep passing meta.nextCursor until hasMore is false; cursors never skip or repeat a trade, whatever the page size, and hasMore: false means the requested history is fully served. fromAt and toAt are unix milliseconds; a value in seconds is rejected with 400.404. The EVM native coin (0x0000…0000) has no market of its own, so no tape: it returns 400 INVALID_PARAM (its markets are listed by /v1/token/pools). meta.usdBasis states how each volumeUsd and priceUsd was priced: spot on EVM, trade (the rate at the moment of the trade) on Solana.quoteToken is the token the trade was priced against: the quote of the pool in poolAddress (native, wrapped native, a stablecoin or another token), with its address, symbol, name and decimals. amountQuote is in units of that token. priceUsd is the token’s USD price at the trade’s priceNative.feesNative is the total fee paid by the trader for the transaction (gas and priority fee, plus the validator tip on Solana) in the chain’s native unit, null when it is not available for that row (a Base preconfirmed trade, for example, has no final fee before block commit). isWash is a boolean on Solana. On Base, the forming candle can include preconfirmed (flashblocks) swaps ahead of block commit; dedup by id or txHash.curl 'https://api.serialized.xyz/v1/token/trades?chain=evm:8453&address=0x4ed4e862860bed51a9570b96d89af5e1b0efefed&limit=3' \
-H 'Authorization: YOUR_API_KEY'
curl -X POST 'https://api.serialized.xyz/v1/token/trades' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"chain":"evm:8453","address":"0x4ed4e862860bed51a9570b96d89af5e1b0efefed","makers":["0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09"],"limit":3}'
{
"data": [
{
"id": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf:289",
"at": 1786718835000,
"maker": "0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09",
"isBuy": true,
"amountToken": 77.05662024406023,
"amountQuote": 0.000042612402192036,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4747124708872e-7,
"priceUsd": 0.00103052429,
"volumeNative": 0.000042612402192036,
"volumeUsd": 0.08021081608014609,
"feesNative": 0.0000021,
"isProTrader": false,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf",
"block": 49964744,
"logIndex": 289,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
},
{
"id": "0xfe19670bf678d0a83f9ef9227e34f3a76462a924603a31ec2481fac34c7be319:407",
"at": 1786695809000,
"maker": "0x6011b76b4b7badc0c4aa28a703a7eedc28334181",
"isBuy": true,
"amountToken": 27832.30183604025,
"amountQuote": 0.015391014265196838,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4748839531073e-7,
"priceUsd": 0.001030556569,
"volumeNative": 0.015391014265196838,
"volumeUsd": 28.97104483687929,
"feesNative": 0.0000034,
"isProTrader": true,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0xfe19670bf678d0a83f9ef9227e34f3a76462a924603a31ec2481fac34c7be319",
"block": 49953231,
"logIndex": 407,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
}
],
"meta": {
"asOf": 1786725098947,
"usdBasis": "spot",
"hasMore": true,
"nextCursor": "e1:eyJ0IjoxNzg2Njk1ODA5MDAwLCJiIjo0OTk1MzIzMSwibCI6NDA3fQ"
}
}
Authorizations
Your raw API key (not needed on the demo server).
Query Parameters
Public chain id.
Token address.
Optional CSV of pool addresses (≤50) to restrict the tape; default token-wide (every pool of the token).
buy x >= 0x >= 0x >= 0x >= 0x >= 0x >= 0Unix MILLISECONDS, inclusive lower bound. A value in seconds is rejected (400).
x >= 0Unix MILLISECONDS, inclusive upper bound (at most 7 days ahead). A value in seconds is rejected (400).
x >= 0Opaque - from meta.nextCursor.
asc washOnly or organicOnly - filter by the per-transaction wash badge (solana; every row carries isWash).
washOnly 1-500, default 100.
1 <= x <= 500Opt-ins: traderTxCounts.
Response
Standard { data, meta } envelope.