/labels/{address}/provenance
The full label cascade for one address, with per-source attribution and a consensus entity and type.
GET https://data.vike.io/v1/onchain/labels/{address}/provenanceThe full label cascade for one address, with per-source attribution: what Arkham, OLI, Blockscout, Dune, the MEW darklist, Etherscan and our own heuristic classifier each claimed, plus a consensus entity and type. Use it when you need to know who said an address is a given exchange, not merely that something did.
Four sources agree on the Binance 14 hot wallet in the capture below, and each names it in its own
words. Until 2026-10-19 this route never matched the four raw label dumps (OLI, Blockscout, Dune,
the MEW darklist) or Etherscan's tags, so earlier responses carried at most the Arkham-derived
source and the heuristic — source_count: 1 for this wallet, and 0 for vitalik.eth.
Sources and consensus differ in shape, and the sources are anonymised on the wire: Wallet labels.
# who said this address is an exchange: every source's own claim, plus the consensus
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/labels/0x28C6c06298d514Db089934071355E5743bf21d60/provenance"
# only the normalised consensus and how many sources stand behind it
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/labels/0x28C6c06298d514Db089934071355E5743bf21d60/provenance" \
| jq '{consensus, source_count}'
# each source's claim in the provider's own vocabulary, one object per source, to see where sources disagree
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/labels/0x28C6c06298d514Db089934071355E5743bf21d60/provenance" \
| jq '.sources[]'
# a protocol contract rather than an exchange wallet: the same lookup, a different kind of address
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/labels/0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb/provenance"
# WALLET is an address /labels/batch returned with found: false: here it answers found: false with an empty sources list and no consensus
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/labels/$WALLET/provenance" \
| jq '{found, sources}'addresspathrequiredThe complete response for the Binance 14 hot wallet, captured 2026-10-19.
{
"address": "0x28C6c06298d514Db089934071355E5743bf21d60",
"found": true,
"consensus": {
"entity": "binance",
"wallet_type": "cex",
"cex_product": "retail",
"user_subtype": "active",
"risk_flag": null,
"confidence": "medium"
},
"sources": [
{
"source": "provider_a",
"label": "Binance: Hot Wallet (0x28C)",
"entity": "Binance",
"category": "Hot Wallet"
},
{
"source": "provider_b",
"label": "Binance 14",
"entity": "binance",
"category": null
},
{
"source": "provider_c",
"label": "Binance: Hot Wallet",
"entity": "binance",
"category": "exchange"
},
{
"source": "provider_d",
"label": "binance",
"entity": "binance",
"category": null
}
],
"source_count": 4
}This route returns fewer rows rather than failing when a label source is mid-rebuild, so a thin list is ambiguous: Wallet labels.
/labels/batch
Enrich a list of addresses in one call: entity, wallet type, risk flag, 30-day net flow, 30-day volume and 30-day transaction count, one row per input address in input order.
Polymarket
Every endpoint over Polymarket — the recorded CLOB (market directory, probability candles, book snapshots, the raw event tape, on-chain settlement, bulk-archive discovery) and two trader routes (a wallet's profile, smart-money signals).