vike

Recipe 7 of 32

Is this address an exchange deposit address?

Call /wallets/{address}/exchange-usage and read pattern; sweeps_to_single_cex means at least 90% of its outgoing USD went to one exchange over at least 3 transfers, the shape of a deposit address.

GET /v1/onchain/wallets/{address}/exchange-usage sums what a wallet sent to and received from each labelled exchange over a window (default 365 days). When at least 90% of its outgoing USD went to one exchange, over at least 3 outgoing transfers, the response sets pattern: "sweeps_to_single_cex" and names the exchange in pattern_basis. That is how a deposit address behaves: it forwards everything to its exchange. The parameters are on Wallet exchange usage and Wallet transactions.

Quick answer

cURL
# does this address forward its money to one exchange?
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x556e9d5d9e64638edde632bbd4810c9fd0d88397/exchange-usage"

Example response

Captured from the live API on 2026-10-24 at 17:15 UTC; the coverage notes are left out.

All of the address's outgoing USD in the last year, five transfers, went to Binance, so the pattern is set with sent_share: 1.0. It also received $300k back from Binance in 8 transfers, which a deposit address rarely does: this looks more like a user wallet that moves money in and out of Binance. addresses counts the Binance addresses it dealt with in either direction. USD fields are plain dollars.

Example response
{
  "address": "0x556e9d5d9e64638edde632bbd4810c9fd0d88397",
  "chain": "ethereum",
  "window": "365d",
  "found": true,
  "activity": {
    "sent_usd": 300110.90278,
    "recv_usd": 299998.250152,
    "transfers": 22,
    "counterparties": 13
  },
  "exchanges": [
    {
      "entity": "binance",
      "sent_usd": 300110.90278,
      "recv_usd": 299998.24,
      "sent_share": 1.0,
      "transfers": 13,
      "sent_transfers": 5,
      "recv_transfers": 8,
      "first_seen": "2025-12-25T12:28:11Z",
      "last_seen": "2026-10-19T10:10:11Z",
      "addresses": 6,
      "label_confidence": {
        "high": 1,
        "medium": 4,
        "unrated": 1
      },
      "label_sources": {
        "provider_a": 2,
        "heuristic": 2
      }
    }
  ],
  "pattern": "sweeps_to_single_cex",
  "pattern_basis": {
    "entity": "binance",
    "sent_share": 1.0,
    "sent_transfers": 5,
    "threshold": "at least 90% of the wallet's outgoing USD in the window went to one exchange, over at least 3 outgoing transfers",
    "meaning": "Observed in this window's transfers. It is not a statement that this address is a deposit address, or that the exchange operates it."
  }
}

Variations

Who pays into it. A deposit address receives from many unrelated senders and forwards to the exchange. List its inbound transfers to see whether that holds.

cURL — inbound
# the address's inbound transfers over the last year, newest first
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x556e9d5d9e64638edde632bbd4810c9fd0d88397/transactions?direction=in&days=365&limit=50"

Just the verdict.

cURL — pattern only
# the pattern and the exchange it points to, or null
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x556e9d5d9e64638edde632bbd4810c9fd0d88397/exchange-usage" \
  | jq '{pattern, pattern_basis}'

A shorter window. A very active address over 365 days is a 400 that names window. Narrow it.

cURL — 90 days
# the same check over the last 90 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0x556e9d5d9e64638edde632bbd4810c9fd0d88397/exchange-usage?window=90d"

Before you rely on it

The pattern is a shape, not an identification

sweeps_to_single_cex fires on any wallet that sends almost everything to one exchange. On the same day, a wallet labelled as the market maker Wintermute (0x84b38bc6…da15) carried it for Kraken, with 99.72% of its outgoing USD across 14,516 transfers over 90 days. Only addresses we label as an exchange count, so a sweep to an unlabelled exchange address shows no pattern. On hyperevm few exchange addresses are labelled.

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

Ask your agent
Is 0x556e9d5d9e64638edde632bbd4810c9fd0d88397 an exchange deposit address?
Example response
{  "address": "0x556e9d5d9e64638edde632bbd4810c9fd0d88397",  "chain": "ethereum",  "window": "365d",  "found": true,  "activity": {    "sent_usd": 300110.90278,    "recv_usd": 299998.250152,    "transfers": 22,    "counterparties": 13  },  "exchanges": [    {      "entity": "binance",      "sent_usd": 300110.90278,      "recv_usd": 299998.24,      "sent_share": 1.0,      "transfers": 13,      "sent_transfers": 5,      "recv_transfers": 8,      "first_seen": "2025-12-25T12:28:11Z",      "last_seen": "2026-10-19T10:10:11Z",      "addresses": 6,      "label_confidence": {        "high": 1,        "medium": 4,        "unrated": 1      },      "label_sources": {        "provider_a": 2,        "heuristic": 2      }    }  ],  "pattern": "sweeps_to_single_cex",  "pattern_basis": {    "entity": "binance",    "sent_share": 1.0,    "sent_transfers": 5,    "threshold": "at least 90% of the wallet's outgoing USD in the window went to one exchange, over at least 3 outgoing transfers",    "meaning": "Observed in this window's transfers. It is not a statement that this address is a deposit address, or that the exchange operates it."  }}