Schemas Get a free key
LIVE --:--:-- UTC Hyperliquid positions snapshot on a 5-min UTC grid — last boundary --:-- next in -:--
Sources · On-chain

Free on-chain data API: wallets, labels, token holders

EVM wallets and tokens: what a wallet did, who it trades with, where its money went, who is accumulating a token, and who is behind an address — 17 routes under /v1/onchain, free with one key (20,000 requests an hour, 200 a minute).

Ethereumchain=ethereum · every route, and the label set behind ENS and provenance.
BNB Chainchain=bsc · every route; /labels/batch carries no 30-day flows.
Basechain=base · every route; wallet discovery defaults to window=all, and the shorter windows answer only while that data is under 2 days old.
HyperEVMchain=hyperevm · as Base; labels are sparse. HyperCore is not included.
Which route serves which chain
RouteethereumbscbasehyperevmNote
/v1/onchain/wallets/{address}✓✓✓✓ optional chain: without it ethereum/bsc first, base/hyperevm only when those hold no priced volume; the response says which
/v1/onchain/wallets/{address}/transactions✓✓✓✓
/v1/onchain/wallets/{address}/counterparties✓✓✓✓
/v1/onchain/wallets/{address}/pnl✓✓✓✓ a daily net-flow series
/v1/onchain/wallets/{address}/balances✓✓✓✓ on base and hyperevm only the tokens we map and price carry a symbol and USD value
/v1/onchain/wallets/{address}/trace✓✓✓✓
/v1/onchain/wallets/{address}/ensETH setETH setETH setETH set ENS
/v1/onchain/wallets/compare✓✓✓✓
/v1/onchain/wallets/discover✓✓✓✓ base and hyperevm: window=all; other windows while their tables are under 2 days old
/v1/onchain/wallets/{address}/first-funder✓✓✓✓ history starts on a different date per chain
/v1/onchain/wallets/{address}/exchange-usage✓✓✓✓ hyperevm has few labels, so a miss there says little
POST /v1/onchain/labels/batch✓✓✓✓ labels and 30-day flows from the chain's own tables; bsc has no flows, hyperevm has few labels
/v1/onchain/labels/{address}/provenanceETH setETH setETH setETH set
/v1/onchain/tokens/search✓registryregistryregistry searches the token registry for the chain you pass (default ethereum)
/v1/onchain/tokens/screener✓✓✓✓ smart_money_only is ethereum only
/v1/onchain/tokens/{token_address}/transfers✓✓✓✓ also chain=all
/v1/onchain/tokens/{token_address}/holders✓✓✓✓ scans the whole chain: the busiest tokens on base take tens of seconds

✓ served · — not served · ETH set: the answer comes from the Ethereum label / ENS data whatever chain you pass · registry: whatever the token registry lists for that chain. Labels attached to counterparties and holders come from the label set of the chain you pass.

Live · captured /v1 responses

Look up any wallet: summary, counterparties, labels

Three captured wallets — pick one and the summary, its top counterparties and its label provenance follow.

Wallet summary · /wallets/{address}

GET
Open this side to see the captured response.

    

Top counterparties · /wallets/{address}/counterparties

GET
Open this side to see the captured response.

    

Which source claimed what · /labels/{address}/provenance

GET
Open this side to see the captured response.

    
Wallets

Wallet API: summaries, flows, balances, tracing and discovery

Summary windows, the raw transfer list, counterparties, a daily net-flow series, balances, multi-hop tracing, ENS, comparing two wallets, discovering active ones, a wallet's first inbound transfers and its exchange usage.

GET /v1/onchain/wallets/{address} Summary in five windows — all, 90d, 30d, 7d, 24h: volume, inflow, outflow, net flow, tx count, tokens traded.
GET /v1/onchain/wallets/{address}/transactions The raw transfer list; direction = in | out, days (≤ 365), min_usd, token_address; limit ≤ 500.
GET /v1/onchain/wallets/{address}/counterparties Top counterparties by volume, with entity and wallet type where labelled; window.
GET /v1/onchain/wallets/{address}/pnl Daily net-flow series with a running total — a flow proxy, not realized PnL; days.
GET /v1/onchain/wallets/{address}/balances Current token balances read live, with USD value; chains, min_usd (0 for the complete list).
GET /v1/onchain/wallets/{address}/trace Follow the money hop by hop: nodes and edges; depth, width, window, min_usd.
GET /v1/onchain/wallets/{address}/ens Reverse ENS lookup.
GET /v1/onchain/wallets/compare Are two wallets related? Shared counterparties and shared tokens; address_a, address_b, window.
GET /v1/onchain/wallets/discover Most active wallets over a window, sortable by volume, flows, tx count or PnL.
GET /v1/onchain/wallets/{address}/first-funder The earliest inbound native and token transfers, each with sender and label; min_native, min_usd. Not proof of who funded the wallet.
GET /v1/onchain/wallets/{address}/exchange-usage Which centralised exchanges a wallet sent to and received from: USD, counts and first and last contact; window.

Wallet lookup · /wallets/{address}

address
GET/v1/onchain/wallets/{address}

    
Press Send ▶ — the captured response appears here

    

Wallet counterparties · /wallets/{address}/counterparties

address
chain
window
limit
GET/v1/onchain/wallets/{address}/counterparties?chain={chain}&window={window}&limit={limit}

    
Press Send ▶ — the captured response appears here

    

Wallet PnL · /wallets/{address}/pnl

address
chain
days
GET/v1/onchain/wallets/{address}/pnl?chain={chain}&days={days}

    
Press Send ▶ — the captured response appears here

    
Labels

Address labels: who is behind a wallet

A consensus label — entity, wallet type, risk flag, confidence — and, separately, which source claimed what.

POST /v1/onchain/labels/batch Entity, wallet type, confidence, risk flag and 30-day flow for up to 100 addresses — passed in the query string.
GET /v1/onchain/labels/{address}/provenance Which source claimed what about one address, beside the consensus.

POST /labels/batch takes its addresses in the query string

Comma-separated addresses — up to 100 — on the URL, not in a JSON body. Rows come back in input order; an address nobody knows is found: false.

bash
curl -X POST -H "X-API-KEY: vk_…" \
  "https://data.vike.io/v1/onchain/labels/batch?addresses=0xd8da6bf26964af9d7eed9e03e53415d37aa96045,0x28c6c06298d514db089934071355e5743bf21d60"

Label provenance · /labels/{address}/provenance

address
GET/v1/onchain/labels/{address}/provenance

    
Press Send ▶ — the captured response appears here

    
Tokens

Token holders: who is accumulating a token

Resolve a token, screen tokens by activity, and rank its wallets by net inflow or by what they bought and sold.

GET /v1/onchain/tokens/search Resolve a symbol or name to its contract; chain (default ethereum); limit ≤ 100.
GET /v1/onchain/tokens/screener Find tokens by activity in a window: volume, net flow, holders, tx count; sort.
GET /v1/onchain/tokens/{token_address}/transfers Top buyers and sellers of a token over a period = 1h | 24h | 7d | 30d.
GET /v1/onchain/tokens/{token_address}/holders Wallets ranked by all-time net USD inflow of the token — not a balance.

Holder leaderboard · /tokens/{token_address}/holders

GET
Open this side to see the captured response.

    

Buyers and sellers · /tokens/{token_address}/transfers

GET
Open this side to see the captured response.

    

Token holders · /tokens/{token_address}/holders

token_address
chain
limit
GET/v1/onchain/tokens/{token_address}/holders?chain={chain}&limit={limit}

    
Press Send ▶ — the captured response appears here

    

Token transfers: buyers and sellers · /tokens/{token_address}/transfers

token_address
period
chain
GET/v1/onchain/tokens/{token_address}/transfers?period={period}&chain={chain}

    
Press Send ▶ — the captured response appears here

    

Token screener · /tokens/screener

chain
window
limit
GET/v1/onchain/tokens/screener?chain={chain}&window={window}&limit={limit}

    
Press Send ▶ — the captured response appears here

    
FAQ

On-chain data API FAQ

Is there a free alternative to the Nansen or Arkham API?
This one, for EVM wallets: consensus labels with per-source provenance, wallet PnL, counterparties and token holders, with one free key. The wallet and token routes cover Ethereum, BNB Chain, Base and HyperEVM, and the label provenance comes from the Ethereum label set. It covers fewer chains — no Solana, no Bitcoin.
Can it replace the Etherscan API?
For wallet and token questions, often: Etherscan returns raw transactions, this API returns them labelled and aggregated into summaries, counterparties, PnL and holder rankings. It does not serve contract ABIs, gas or block data.
Which chains does /v1/onchain cover?
Ethereum, BNB Chain, Base and HyperEVM on every route that takes a chain. ENS and label provenance come from the Ethereum label set whatever chain you pass. On Base and HyperEVM, wallet discovery defaults to window=all; the 24h to 90d windows work only while that chain's window data is under 2 days old, otherwise they answer a 400.
How do I label many addresses at once?
POST /v1/onchain/labels/batch with up to 100 comma-separated addresses in the addresses query parameter. Rows come back in input order; unknown addresses are found: false.
What does provenance show?
Each label source behind the dataset that has said something about an address, what each one claimed, and the consensus label beside them — so you can see where a label came from and where sources disagree.
Is a token holder a balance?
No. /tokens/{token_address}/holders ranks wallets by all-time net USD inflow of the token. For a wallet's current balances use /wallets/{address}/balances.
Is the on-chain data API free?
Yes. One free key, 20,000 requests an hour and 200 a minute, up to 3 keys per account, nothing billed.