vike

Recipe 3 of 32

Are these two wallets related? Shared counterparties and tokens

Call /wallets/compare with both addresses; it lists the counterparties both wallets transacted with and the tokens both touched in a window, with each side's USD volume.

GET /v1/onchain/wallets/compare takes address_a and address_b and returns two lists for one chain and window: shared_counterparties, the addresses both wallets sent to or received from, and shared_tokens, the tokens both moved. Every row carries each side's USD volume and transfer count, so you can see whether the overlap matters to both wallets or only to one. The full parameter list is on Compare wallets.

Quick answer

cURL
# what a Binance hot wallet and a Wintermute wallet have in common over 30 days, three of each
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/compare?address_a=0x28C6c06298d514Db089934071355E5743bf21d60&address_b=0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4&limit=3&window=30d"

Example response

Captured from the live API on 2026-10-24 at 17:15 UTC, all 3 rows of each list.

Both wallets moved hundreds of millions of dollars with two other Wintermute wallets, so that overlap carries weight on both sides. The Coinbase row does not: it is $40.88 on A's side against $904M on B's. a_volume_usd and b_volume_usd are plain USD, sent and received together. The zero address in shared_tokens is ETH itself.

Example response
{
  "address_a": "0x28C6c06298d514Db089934071355E5743bf21d60",
  "address_b": "0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4",
  "window": "30d",
  "chain": "ethereum",
  "shared_counterparties": [
    {
      "wallet": "0xf8191d98ae98d2f7abdfb63a9b0b812b93c873aa",
      "a_volume_usd": 225156171.789202,
      "b_volume_usd": 1437715787.495615,
      "a_tx_count": 538,
      "b_tx_count": 1839,
      "entity": "wintermute",
      "wallet_type": "market_maker"
    },
    {
      "wallet": "0x51c72848c68a965f66fa7a88855f9f7784502a7f",
      "a_volume_usd": 249121408.191028,
      "b_volume_usd": 783012977.814585,
      "a_tx_count": 539,
      "b_tx_count": 1561,
      "entity": "wintermute",
      "wallet_type": "market_maker"
    },
    {
      "wallet": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43",
      "a_volume_usd": 40.876847,
      "b_volume_usd": 904031097.688892,
      "a_tx_count": 2,
      "b_tx_count": 1613,
      "entity": "coinbase",
      "wallet_type": "cex"
    }
  ],
  "shared_tokens": [
    {
      "token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
      "a_volume_usd": 33373130572.243862,
      "b_volume_usd": 4027310334.68077,
      "a_tx_count": 1077002,
      "b_tx_count": 2656
    },
    {
      "token_address": "0x0000000000000000000000000000000000000000",
      "a_volume_usd": 16319266185.492008,
      "b_volume_usd": 5963814351.797496,
      "a_tx_count": 114954,
      "b_tx_count": 2477
    },
    {
      "token_address": "0x8292bb45bf1ee4d140127049757c2e0ff06317ed",
      "a_volume_usd": 1814774154.64343,
      "b_volume_usd": 15653746.0,
      "a_tx_count": 1251,
      "b_tx_count": 33
    }
  ],
  "summary": {
    "shared_counterparty_count": 3,
    "shared_token_count": 3
  }
}

Variations

The full overlap. limit is applied up to 50 per list. summary counts the rows returned, so a count of 50 can be truncated.

cURL — 50 rows
# up to 50 shared counterparties and 50 shared tokens
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/compare?address_a=0x28C6c06298d514Db089934071355E5743bf21d60&address_b=0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4&limit=50&window=30d"

Does it hold over six months. A link that survives a longer window is stronger than one month's overlap.

cURL — 180 days
# the same pair over 180 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/compare?address_a=0x28C6c06298d514Db089934071355E5743bf21d60&address_b=0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4&limit=50&window=180d"

Weigh each side. Put both volumes next to each label to spot the rows that matter to only one wallet.

cURL — both sides
# each shared counterparty with both sides' volume
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/compare?address_a=0x28C6c06298d514Db089934071355E5743bf21d60&address_b=0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4&limit=50&window=30d" \
  | jq '[.shared_counterparties[] | {wallet, entity, a_volume_usd, b_volume_usd}]'

Before you rely on it

Shared hubs are not a relationship

Almost every active wallet shares USDT, ETH, the big exchanges and the big routers. A shared row only suggests a link when it carries real volume on both sides and is not a hub. The lists hold priced transfers only and both directions are summed, so the response cannot tell you who paid whom. The two input wallets never appear in each other's list: a direct transfer between A and B is not shown here, so check it with /wallets/{address}/counterparties.

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

Ask your agent
Are 0x28C6c06298d514Db089934071355E5743bf21d60 and 0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4 related? Compare their counterparties over 30 days.
Example response
{  "address_a": "0x28C6c06298d514Db089934071355E5743bf21d60",  "address_b": "0xeae7380dd4cef6fbd1144f49e4d1e6964258a4f4",  "window": "30d",  "chain": "ethereum",  "shared_counterparties": [    {      "wallet": "0xf8191d98ae98d2f7abdfb63a9b0b812b93c873aa",      "a_volume_usd": 225156171.789202,      "b_volume_usd": 1437715787.495615,      "a_tx_count": 538,      "b_tx_count": 1839,      "entity": "wintermute",      "wallet_type": "market_maker"    },    {      "wallet": "0x51c72848c68a965f66fa7a88855f9f7784502a7f",      "a_volume_usd": 249121408.191028,      "b_volume_usd": 783012977.814585,      "a_tx_count": 539,      "b_tx_count": 1561,      "entity": "wintermute",      "wallet_type": "market_maker"    },    {      "wallet": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43",      "a_volume_usd": 40.876847,      "b_volume_usd": 904031097.688892,      "a_tx_count": 2,      "b_tx_count": 1613,      "entity": "coinbase",      "wallet_type": "cex"    }  ],  "shared_tokens": [    {      "token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",      "a_volume_usd": 33373130572.243862,      "b_volume_usd": 4027310334.68077,      "a_tx_count": 1077002,      "b_tx_count": 2656    },    {      "token_address": "0x0000000000000000000000000000000000000000",      "a_volume_usd": 16319266185.492008,      "b_volume_usd": 5963814351.797496,      "a_tx_count": 114954,      "b_tx_count": 2477    },    {      "token_address": "0x8292bb45bf1ee4d140127049757c2e0ff06317ed",      "a_volume_usd": 1814774154.64343,      "b_volume_usd": 15653746.0,      "a_tx_count": 1251,      "b_tx_count": 33    }  ],  "summary": {    "shared_counterparty_count": 3,    "shared_token_count": 3  }}