curl -X POST 'https://api.serialized.xyz/v1/wallet/watchlist' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"id":"app-holders","wallets":[{"address":"Hasda78TSaT9bjiPxDBvP4GpohFpP3TDTaJEcCYK5kyN","chain":"solana"},{"address":"0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09","chains":"evm"},{"address":"not-a-wallet","chain":"solana"}]}'
{
"data": {
"id": "app-holders",
"created": true,
"version": 4180,
"wallets": 2,
"added": 2,
"alreadyIn": 0,
"rejected": [
{
"index": 2,
"error": {
"code": "INVALID_PARAM",
"message": "Invalid parameter \"wallets[2].address\": invalid Solana wallet address",
"details": {
"param": "wallets[2].address"
}
}
}
]
}
}
Create a Watchlist
Create a watchlist of wallets, with your own id or one we generate, optionally with its first wallets. Free.
curl -X POST 'https://api.serialized.xyz/v1/wallet/watchlist' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"id":"app-holders","wallets":[{"address":"Hasda78TSaT9bjiPxDBvP4GpohFpP3TDTaJEcCYK5kyN","chain":"solana"},{"address":"0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09","chains":"evm"},{"address":"not-a-wallet","chain":"solana"}]}'
{
"data": {
"id": "app-holders",
"created": true,
"version": 4180,
"wallets": 2,
"added": 2,
"alreadyIn": 0,
"rejected": [
{
"index": 2,
"error": {
"code": "INVALID_PARAM",
"message": "Invalid parameter \"wallets[2].address\": invalid Solana wallet address",
"details": {
"param": "wallets[2].address"
}
}
}
]
}
}
POST /v1/wallet/watchlist · Free
Creates a watchlist of wallets, optionally with its first wallets. Give it your own id, or omit it and we generate one (wl_ + 16 hex characters). Creating an id you already have adds the wallets to it (created: false, status 200); a new list answers 201. Free: watchlist management costs 0 credits and stays open when your credits run out.
429 RATE_LIMITED, details.limit watchlistWallets or watchlists, with max and current): nothing is written.curl -X POST 'https://api.serialized.xyz/v1/wallet/watchlist' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"id":"app-holders","wallets":[{"address":"Hasda78TSaT9bjiPxDBvP4GpohFpP3TDTaJEcCYK5kyN","chain":"solana"},{"address":"0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09","chains":"evm"},{"address":"not-a-wallet","chain":"solana"}]}'
{
"data": {
"id": "app-holders",
"created": true,
"version": 4180,
"wallets": 2,
"added": 2,
"alreadyIn": 0,
"rejected": [
{
"index": 2,
"error": {
"code": "INVALID_PARAM",
"message": "Invalid parameter \"wallets[2].address\": invalid Solana wallet address",
"details": {
"param": "wallets[2].address"
}
}
}
]
}
}
Authorizations
Your raw API key (not needed on the demo server).
Body
1 to 64 characters among A-Z a-z 0-9 _ . : -, not starting with a dot. Omitted: we generate one.
"app-holders"
1 to 10,000 wallets per call: { "address": "…", "chain": "…" } (one chain: solana or evm:<id>) or { "address": "…", "chains": "evm" } (every EVM chain, counted as one wallet). Same rules as the wallet and chains parameters of the wallet streams. An address is on every EVM chain or on named EVM chains, never both: an entry that would put it on both is returned in rejected (INVALID_PARAM). An invalid entry is returned in rejected with its index; the others are applied.
Response
Standard { data, meta } envelope.