Behaviour labels for many wallets
Batch by construction: a transaction table calls this once per page to mark robot, sniper and sandwich makers, where a per-row call would be one request per visible trade.
It is the one wallet read that is a POST, because a list of up to 200 addresses does not belong in a query string. Addresses absent from the response carry no labels.
Header Parameters
payment methods the client can use, comma-separated, case-insensitive. With x402 in the list, a spent keyless budget answers 402 with the x402 challenge instead of 429.
base64 x402 v2 payment payload for this request. A paid request skips the keyless budget and is settled only when it answers 2xx. The v1 header X-PAYMENT is accepted too.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/problem+json
application/problem+json
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/wallets/labels/batch" \ -H "Content-Type: application/json" \ -d '{ "chain": "string", "addresses": [ "string" ] }'{ "items": [ { "address": "string", "tier": "string", "labels": [ { "kind": 0, "name": "string", "confidence": 0.1, "token_address": "string" } ], "copy_eligible": true, "user_score": 0 } ]}Trader population per chain GET
Population-level counts of the traders on each chain — the wallet counterpart of the chain header in `/config`. It is a separate call on purpose: these aggregates live in the wallet-analytics store, and folding them into the bootstrap config would put every page load behind them. Omit `chains` for every chain whose wallet data is served.
One wallet across every chain it traded GET
The per-chain profiles merged into one header: lifetime totals, the PNL split per chain with each chain's share, and the most profitable chain. Chains in scope whose wallet data could not be read are listed in `unavailable_chains` rather than silently counted as zero — a missing chain and a chain that earned nothing are different claims. Omit `chains` for every served chain.