curl 'https://api.serialized.xyz/v1/wallet/transfers?chain=evm:8453&wallet=0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09&limit=2' \
-H 'Authorization: YOUR_API_KEY'
curl 'https://api.serialized.xyz/v1/wallet/transfers?chain=evm:8453&wallet=0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09&limit=2&cursor=MTc4Njk5MTI0NHwweDNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGJ8MTJ8MA' \
-H 'Authorization: YOUR_API_KEY'
{
"data": [
{
"at": 1786998412000,
"chain": "evm:8453",
"txHash": "0x7c1f2a9b0e3d4c5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f",
"direction": "in",
"tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"tokenSymbol": "USDC",
"amount": "250.5",
"amountUsd": null,
"counterparty": "0xae695f8e2cf6bac920fc983ec0e43c77c471b366"
},
{
"at": 1786991244000,
"chain": "evm:8453",
"txHash": "0x3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b",
"direction": "out",
"tokenAddress": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed",
"tokenSymbol": "DEGEN",
"amount": "10000",
"amountUsd": null,
"counterparty": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045"
}
],
"meta": {
"asOf": 1787163134668,
"hasMore": true,
"nextCursor": "MTc4Njk5MTI0NHwweDNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGJ8MTJ8MA",
"oldestAt": 1786991244000
}
}
Wallet Transfers
Token in/out history of a wallet, newest first: deposits, withdrawals, plain transfers - timestamp (ms), token, amount, direction, counterparty, tx hash. Paginate with the opaque cursor from meta.nextCursor: exact pagination that never skips or repeats a transfer. The reconciliation primitive next to /v1/wallet/trades.
curl 'https://api.serialized.xyz/v1/wallet/transfers?chain=evm:8453&wallet=0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09&limit=2' \
-H 'Authorization: YOUR_API_KEY'
curl 'https://api.serialized.xyz/v1/wallet/transfers?chain=evm:8453&wallet=0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09&limit=2&cursor=MTc4Njk5MTI0NHwweDNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGJ8MTJ8MA' \
-H 'Authorization: YOUR_API_KEY'
{
"data": [
{
"at": 1786998412000,
"chain": "evm:8453",
"txHash": "0x7c1f2a9b0e3d4c5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f",
"direction": "in",
"tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"tokenSymbol": "USDC",
"amount": "250.5",
"amountUsd": null,
"counterparty": "0xae695f8e2cf6bac920fc983ec0e43c77c471b366"
},
{
"at": 1786991244000,
"chain": "evm:8453",
"txHash": "0x3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b",
"direction": "out",
"tokenAddress": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed",
"tokenSymbol": "DEGEN",
"amount": "10000",
"amountUsd": null,
"counterparty": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045"
}
],
"meta": {
"asOf": 1787163134668,
"hasMore": true,
"nextCursor": "MTc4Njk5MTI0NHwweDNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGJ8MTJ8MA",
"oldestAt": 1786991244000
}
}
GET /v1/wallet/transfers · 1 credit
Token in/out history of a wallet, newest first: deposits, withdrawals, plain transfers - timestamp (ms), token, amount, direction, counterparty, tx hash. Paginate with the opaque cursor from meta.nextCursor: exact pagination that never skips or repeats a transfer. The reconciliation primitive next to /v1/wallet/trades.
limit transactions of the wallet, newest first, and serves their token movements: a transaction that moved several tokens adds several rows, a transaction that only swapped adds none, so a page can hold fewer or more than limit rows while meta.hasMore is true. Keep passing meta.nextCursor until hasMore is false; cursors never skip or repeat a transfer, and hasMore: false means the wallet’s history is fully served. meta.nextCursor is present while meta.hasMore is true.from and to bound the history in unix milliseconds, both inclusive; order is desc (newest first, default) or asc. They combine with cursor: keep the same from, to and order on every page of a walk. meta.oldestAt is the oldest timestamp of the page.direction is in or out; counterparty is the other side of the transfer (the zero address for a mint or a burn). Amounts are strings for precision, in token units; amountUsd is valued at transfer time and null when no price is known for that token at that moment. EVM chains serve the last 90 days of token movements.curl 'https://api.serialized.xyz/v1/wallet/transfers?chain=evm:8453&wallet=0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09&limit=2' \
-H 'Authorization: YOUR_API_KEY'
curl 'https://api.serialized.xyz/v1/wallet/transfers?chain=evm:8453&wallet=0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09&limit=2&cursor=MTc4Njk5MTI0NHwweDNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGJ8MTJ8MA' \
-H 'Authorization: YOUR_API_KEY'
{
"data": [
{
"at": 1786998412000,
"chain": "evm:8453",
"txHash": "0x7c1f2a9b0e3d4c5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f",
"direction": "in",
"tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"tokenSymbol": "USDC",
"amount": "250.5",
"amountUsd": null,
"counterparty": "0xae695f8e2cf6bac920fc983ec0e43c77c471b366"
},
{
"at": 1786991244000,
"chain": "evm:8453",
"txHash": "0x3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b",
"direction": "out",
"tokenAddress": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed",
"tokenSymbol": "DEGEN",
"amount": "10000",
"amountUsd": null,
"counterparty": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045"
}
],
"meta": {
"asOf": 1787163134668,
"hasMore": true,
"nextCursor": "MTc4Njk5MTI0NHwweDNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGJ8MTJ8MA",
"oldestAt": 1786991244000
}
}
Authorizations
Your raw API key (not needed on the demo server).
Query Parameters
Public chain id - evm:<id> or solana.
Wallet address.
Transactions scanned per page (default 50, max 100). A page holds the token movements of those transactions: fewer or more rows than limit.
1 <= x <= 100Opaque resume token from meta.nextCursor - exact pagination, no skip or duplicate.
Inclusive lower time bound, unix MILLISECONDS. A value in seconds is rejected (400).
x >= 0Inclusive upper time bound, unix MILLISECONDS. A value in seconds is rejected (400).
x >= 0Sort order by time: desc (newest first, default) or asc. Keep the same order on every page of a walk.
asc, desc Response
Standard { data, meta } envelope.