vike

Recipe 9 of 32

Where did this wallet's money come from? Trace inbound 3 hops

Call /wallets/{address}/trace with direction=in and depth=3; at each hop it follows the top senders by USD and returns the graph as labelled nodes and edges.

GET /v1/onchain/wallets/{address}/trace?direction=in starts at the wallet, takes its top width senders by USD, then their top senders, down to depth hops. nodes lists every address reached with its hop depth and label; edges lists each pair with the USD that moved. Only transfers of at least min_usd (default 10,000 USD) are followed. The full parameter list is on Trace a wallet's funds.

Quick answer

cURL
# who funded this wallet, who funded them, and one hop further, top 3 senders per hop over 30 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x84b38bc60f3bd82640ecefa320dab2be62e2da15/trace?direction=in&depth=3&width=3&window=30d"

Example response

Captured from the live API on 2026-10-24 at 17:16 UTC, trimmed to 5 of 22 nodes and 3 of 23 edges.

In the last 30 days this Wintermute wallet was funded by another Wintermute wallet ($157M), a Coinbase wallet ($95M) and a Binance wallet ($76M). In an edge, from is the side expanded first, so with direction=in the in_usd is what to sent to from. total_volume_usd on a node sums its edges in this graph only, not its whole activity.

Example response
{
  "root": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",
  "depth": 3,
  "width": 3,
  "window": "30d",
  "min_usd": 10000.0,
  "direction": "in",
  "nodes": [
    {
      "address": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",
      "depth": 0,
      "total_volume_usd": 327299936.343449,
      "label": "wintermute",
      "wallet_type": "market_maker"
    },
    {
      "address": "0xf8191d98ae98d2f7abdfb63a9b0b812b93c873aa",
      "depth": 1,
      "total_volume_usd": 997160918.09016,
      "label": "wintermute",
      "wallet_type": "market_maker"
    },
    {
      "address": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43",
      "depth": 1,
      "total_volume_usd": 14111987372.801468,
      "label": "coinbase",
      "wallet_type": "cex"
    },
    {
      "address": "0xdfd5293d8e347dfe59e90efd55b2956a1343963d",
      "depth": 1,
      "total_volume_usd": 5337178776.066921,
      "label": "binance",
      "wallet_type": "cex"
    },
    {
      "address": "0x21a31ee1afc51d94c2efccaa2092ad1028285549",
      "depth": 2,
      "total_volume_usd": 5671403935.945142,
      "label": "binance",
      "wallet_type": "cex"
    }
  ],
  "edges": [
    {
      "from": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",
      "to": "0xf8191d98ae98d2f7abdfb63a9b0b812b93c873aa",
      "volume_usd": 157072839.68,
      "out_usd": 0.0,
      "in_usd": 157072839.68,
      "tx_count": 1514
    },
    {
      "from": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",
      "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43",
      "volume_usd": 94646976.11,
      "out_usd": 0.0,
      "in_usd": 94646976.11,
      "tx_count": 1893
    },
    {
      "from": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",
      "to": "0xdfd5293d8e347dfe59e90efd55b2956a1343963d",
      "volume_usd": 75580120.54,
      "out_usd": 0.0,
      "in_usd": 75580120.54,
      "tx_count": 609
    }
  ],
  "stats": {
    "node_count": 22,
    "edge_count": 23,
    "max_depth_reached": 3
  }
}

Variations

Small funders too. The 10,000 USD floor drops small senders. Pass a small positive min_usd: min_usd=0 means the default.

cURL — small transfers
# follow inbound transfers of 100 USD and up
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x84b38bc60f3bd82640ecefa320dab2be62e2da15/trace?direction=in&depth=3&width=3&window=30d&min_usd=100"

Older funding. window=all reaches funding before the last 90 days. It costs more on busy wallets, so keep depth and width small.

cURL — all history
# inbound over all recorded history, two hops
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x84b38bc60f3bd82640ecefa320dab2be62e2da15/trace?direction=in&depth=2&width=3&window=all"

Labelled senders by hop.

cURL — nodes
# every address the trace reached, with its hop and label
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x84b38bc60f3bd82640ecefa320dab2be62e2da15/trace?direction=in&depth=3&width=3&window=30d" \
  | jq '[.nodes[] | {address, depth, label, wallet_type}]'

Before you rely on it

Past an exchange, you trace the exchange

Once the trail reaches an exchange wallet, the next hops are that exchange's own flows, not this wallet's: here four of the seven hop-2 nodes are Binance and Coinbase wallets. Stop following a branch at its first cex node. Only the top width senders per hop are kept (1 to 10), depth is 1 to 5, and a very wide trace stops after 300 expansions and returns what it built.

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_trace tool answers it, at 4 credits a call.

Ask your agent
Where did the money in 0x84b38bc60f3bd82640ecefa320dab2be62e2da15 come from? Trace it three hops back.
Example response
{  "root": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",  "depth": 3,  "width": 3,  "window": "30d",  "min_usd": 10000.0,  "direction": "in",  "nodes": [    {      "address": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",      "depth": 0,      "total_volume_usd": 327299936.343449,      "label": "wintermute",      "wallet_type": "market_maker"    },    {      "address": "0xf8191d98ae98d2f7abdfb63a9b0b812b93c873aa",      "depth": 1,      "total_volume_usd": 997160918.09016,      "label": "wintermute",      "wallet_type": "market_maker"    },    {      "address": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43",      "depth": 1,      "total_volume_usd": 14111987372.801468,      "label": "coinbase",      "wallet_type": "cex"    },    {      "address": "0xdfd5293d8e347dfe59e90efd55b2956a1343963d",      "depth": 1,      "total_volume_usd": 5337178776.066921,      "label": "binance",      "wallet_type": "cex"    },    {      "address": "0x21a31ee1afc51d94c2efccaa2092ad1028285549",      "depth": 2,      "total_volume_usd": 5671403935.945142,      "label": "binance",      "wallet_type": "cex"    }  ],  "edges": [    {      "from": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",      "to": "0xf8191d98ae98d2f7abdfb63a9b0b812b93c873aa",      "volume_usd": 157072839.68,      "out_usd": 0.0,      "in_usd": 157072839.68,      "tx_count": 1514    },    {      "from": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",      "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43",      "volume_usd": 94646976.11,      "out_usd": 0.0,      "in_usd": 94646976.11,      "tx_count": 1893    },    {      "from": "0x84b38bc60f3bd82640ecefa320dab2be62e2da15",      "to": "0xdfd5293d8e347dfe59e90efd55b2956a1343963d",      "volume_usd": 75580120.54,      "out_usd": 0.0,      "in_usd": 75580120.54,      "tx_count": 609    }  ],  "stats": {    "node_count": 22,    "edge_count": 23,    "max_depth_reached": 3  }}