Skip to main content
GET
Connected wallets for an address (graph-based)
Returns sibling wallets discovered via the on-chain transfer graph (USDC, pUSD, CTF) plus identity-proof signals (shared signer, shared X username, shared first funder). Use this to surface likely-related accounts behind a single operator - alt wallets, hot/cold splits, multi-account farming patterns.
Requires Dev or Pro tier. This endpoint is not available on the Free tier.

Two response shapes

This endpoint can return either a 200 OK or a 202 Accepted depending on cache state. Clients must handle both.
Returned on a fresh cache hit. The body is the full WalletClusterResponse.
Why 202? Hub-wallet clusters can take 60–180 seconds to compute (a popular seed can reach tens of thousands of wallets) - far longer than any sane HTTP timeout. We compute out-of-band and write the result to a Postgres cache; the next call after Retry-After returns 200 from cache.

Evidence sub-fields

The evidence object is free-form, but typical sibling entries include: A sibling at confidence: 100 typically means bidirectional direct flow + verified trader + ≥2 shared peers, or an identity-proof match.

How siblings are discovered

  1. Bidirectional BFS over the USDC / pUSD / CTF transfer graph from the seed (max depth 3, fanout 100, filters out high-degree pivots and shared-service wallets).
  2. Identity proofs - wallets sharing the seed’s cryptographic signer or self-asserted X username.
  3. Shared-peer discovery - wallets that both seed and the candidate transacted with through a small (degree < 50) intermediary.
  4. Scoring - combines hop distance, direct-flow tx count / amount, bidirectional flag, shared peers, shared first funder, verified-trader flag, and wallet class into a 0–100 confidence score.

Caching & limits

  • Results persist in Postgres (wallet_cluster table) and serve from cache for 24 hours.
  • After 24h the next request returns 202 and triggers a refresh.
  • Background compute is deduplicated across API pods via Redis - only one BFS runs per seed at a time.
  • A typical cache-hit response returns in ~100–500 ms including JSON encoding of up to 1000 siblings.
  • Up to 1000 siblings are persisted per seed (sorted by confidence, descending). Direct bidirectional neighbors with multi-tx evidence are always prioritized - clients see the top 1000 strongest connections rather than the full graph.

Authorizations

x-api-key
string
header
required

Path Parameters

address
string
required

Seed wallet address (proxy or signer).

Query Parameters

min_confidence
integer
default:70

Minimum confidence to include (default 70 = strong-only).

Required range: 0 <= x <= 100
limit
integer
default:50

Max siblings to return.

Required range: 1 <= x <= 1000
recompute
boolean
default:false

Kick off a fresh background BFS even if a cached result exists.

Response

Successful Response

Connected wallets for a seed wallet.

seed
string
required

Seed wallet address

siblings
ClusterSiblingEntry · object[]
required

Top sibling wallets by confidence

computed_at
integer | null

Unix timestamp when this cluster was last computed