vike

Recipe 11 of 32

Who first funded this wallet?

One call returns the first coin and the first priced token a wallet received, each with the sender, the sender's label, the time and the amount.

GET /v1/onchain/wallets/{address}/first-funder answers it in one call, as two answers: first_native_in, the first plain send of the chain's coin, and first_token_in, the first token transfer worth at least $1. Each names the sender (from) with its label and wallet_type. The full parameter list is on Wallet first funder.

Quick answer

Put any 0x address in the path. chain defaults to ethereum.

cURL
# the first coin and the first priced token the wallet received, each with its sender's label
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x556e9d5d9e64638edde632bbd4810c9fd0d88397/first-funder"

Example response

Captured from the live API on 2026-10-24 at 16:57 UTC. The wallet's first ETH, 100.05 of it, came from a Binance-labelled wallet in December 2023; its first priced token, 100 USDT, came from another Binance-labelled wallet two years later. The coverage block is trimmed to two of its six keys.

Example response
{
  "address": "0x556e9d5d9e64638edde632bbd4810c9fd0d88397",
  "chain": "ethereum",
  "found": true,
  "first_native_in": {
    "from": "0x28c6c06298d514db089934071355e5743bf21d60",
    "label": "binance",
    "wallet_type": "cex",
    "label_confidence": "medium",
    "time": "2023-12-22T02:55:35Z",
    "tx_hash": "0x8b24afff9fc8195e19dba0726a77cebc73c182211059c9d0ed1b024e630ab1e6",
    "block": 18838548,
    "amount": 100.0468,
    "amount_symbol": "ETH",
    "amount_wei": "100046800000000000000",
    "amount_usd": 224241.896116
  },
  "first_token_in": {
    "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976",
    "label": "binance",
    "wallet_type": "cex",
    "label_confidence": "medium",
    "time": "2025-12-25T12:28:11Z",
    "tx_hash": "0xb6c5bdd7d6e58b163d1c0494e7ca37ed08c37c6216fd09a4bc39aa88cc8f9511",
    "block": 24089637,
    "token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "symbol": "USDT",
    "amount": 100.0,
    "amount_usd": 100.0
  },
  "coverage": {
    "history_from": "2015-08-07",
    "note": "The earliest qualifying inbound transfer we hold. It is not proof of who funded the wallet: a funder can use a contract, a bridge or an exchange withdrawal, or send below the floor."
  }
}

Variations

On another chain. chain takes ethereum, bsc, base or hyperevm. Each chain's history starts on its own date: on base, a capture on 2026-10-24 reported coverage.history_from as 2023-06-15.

cURL — on Base
# the same question on Base
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x2b1e8e051d85a65306910aef136d2aebf2eaccc5/first-funder?chain=base"

The very first inbound coin, dust included. By default a native send under 0.0001 coin is skipped, so a probing dust transfer is not reported as the funder. min_native=0 removes that floor.

cURL — no dust floor
# the very first inbound coin, whatever its size
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x556e9d5d9e64638edde632bbd4810c9fd0d88397/first-funder?min_native=0"

Only sizeable funding. Raise both floors to skip small transfers: at least 0.5 ETH, and tokens worth at least $1,000.

cURL — sizeable funding only
# only a first coin of at least 0.5 ETH and a first token worth at least $1000
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x556e9d5d9e64638edde632bbd4810c9fd0d88397/first-funder?min_native=0.5&min_usd=1000"

Before you rely on it

The first transfer on record, not proof of who funded the wallet

Coin rows hold plain sends only. Coin moved by a contract call, a bridge relay or a batch payout is not in them, so the real first funding can be earlier than first_native_in. The sender can be an exchange or a relay rather than a person. Every response says this again in coverage.note.

Two answers, either of which can be missing

first_native_in and first_token_in are separate searches, and either can be null. A wallet with no inbound transfer above the floors comes back with found: false and both sides null, not zeros.

History starts on a different date per chain

coverage.history_from is the oldest transfer date held for the chain you asked. A wallet older than that shows a later first transfer than it really had.

Floors hide dust and unpriced tokens

min_native defaults to 0.0001 coin and min_usd to $1, so spam airdrops and tokens with no USD price are skipped. amount_usd is null where no price is held, never 0. Pass min_usd=0 to include unpriced tokens.

A very busy wallet can answer 400

Each side of the search has a time budget. A wallet too active to resolve in it gets a 400 whose message names the fix: retry, or pass min_native=0 and min_usd=0 to take the very first inbound transfer.

HyperEVM senders

On hyperevm, protocol system addresses appear as senders and come back with wallet_type system and no entity name, and labels there are sparse.

Ask your agent

Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words. The wallet_first_funder tool answers, at 2 credits a call.

Ask your agent
Who first funded 0x556e9d5d9e64638edde632bbd4810c9fd0d88397 on Ethereum, and is the sender an exchange?
Example response
{  "address": "0x556e9d5d9e64638edde632bbd4810c9fd0d88397",  "chain": "ethereum",  "found": true,  "first_native_in": {    "from": "0x28c6c06298d514db089934071355e5743bf21d60",    "label": "binance",    "wallet_type": "cex",    "label_confidence": "medium",    "time": "2023-12-22T02:55:35Z",    "tx_hash": "0x8b24afff9fc8195e19dba0726a77cebc73c182211059c9d0ed1b024e630ab1e6",    "block": 18838548,    "amount": 100.0468,    "amount_symbol": "ETH",    "amount_wei": "100046800000000000000",    "amount_usd": 224241.896116  },  "first_token_in": {    "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976",    "label": "binance",    "wallet_type": "cex",    "label_confidence": "medium",    "time": "2025-12-25T12:28:11Z",    "tx_hash": "0xb6c5bdd7d6e58b163d1c0494e7ca37ed08c37c6216fd09a4bc39aa88cc8f9511",    "block": 24089637,    "token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",    "symbol": "USDT",    "amount": 100.0,    "amount_usd": 100.0  },  "coverage": {    "history_from": "2015-08-07",    "note": "The earliest qualifying inbound transfer we hold. It is not proof of who funded the wallet: a funder can use a contract, a bridge or an exchange withdrawal, or send below the floor."  }}