Chaineye Check how exposed you are on the blockchain.
Check a wallet

How it works

Chaineye reads public data only. It never asks for a signature, never holds funds and never moves anything. This is everything that happens between pasting an address and seeing a score.

What gets read

Every public chain publishes the same three things about an address: the transactions it signed, the balances it holds, and the addresses on the other side of each transfer. Chaineye collects those and looks at their shape.

ChainSourceCollected
SolanaJSON-RPC nodeThe last 100 signatures, 14 parsed transactions, SOL balance, SPL token accounts
Robinhood ChainJSON-RPC and a Blockscout-compatible explorerNative balance, nonce, address transaction list, token balances

Counterparties are matched against a label set of custodial exchanges, bridges, privacy tools and common infrastructure. DEX routers and launchpad programs are filtered out first, because nearly every active wallet touches them and they say nothing about you.

How the score works

Six signals, weighted to total 100. A signal that matches means part of the wallet is readable, and its points are added.

SignalPointsMatches when
Custodial exchange contact25A labelled exchange address appears as a counterparty
Counterparty spread20More than 25 unique counterparties in the window reviewed
Shielded transfers20No privacy-routed transfers found
Single-address pattern15More than 40 transactions signed by this address
History depth10First activity more than 120 days ago
Portfolio visibility10One or more readable token balances
0–24Quiet
25–49Visible
50–74Traceable
75–100Fully exposed

The score measures how legible a wallet is. It says nothing about whether its keys are secure, and nothing about whether anything it did was wrong.

Solana and Robinhood Chain

Paste either kind of address and Chaineye picks the chain from its format: base58 for Solana, 0x for Robinhood Chain. The switch in the header does the same thing by hand.

On Solana, connecting Phantom reads your public key and runs the check on it. Nothing else is requested and no signature is asked for.

Robinhood Chain history comes from a Blockscout-compatible explorer. Until one is configured on a deployment, Robinhood Chain reads cover balance and transaction count only, and the report says so.

Market data

Token positions come from the DexScreener public API, filtered to Solana, keeping the deepest pool per token for price, 24-hour volume, liquidity and market cap. The mini chart is minute OHLCV from GeckoTerminal for that pool. If OHLCV is unavailable, the chart falls back to DexScreener’s 5-minute, 1-hour, 6-hour and 24-hour price changes.

The “Being watched” feed on the home page is built from DexScreener’s top boosts, latest boosts and latest token profiles, then hydrated the same way. Nothing is seeded — it’s live on first load.

What is stored

A scan result is written to Cloudflare KV under scan:<chain>:<address> for about a minute, holding the matched and passed signals for that address. Charts and the feed are cached the same way. There are no accounts and nothing else is kept.

What it can’t tell you

  • Whether an unlabelled counterparty is an exchange. The label set is finite, so “clear” means nothing matched, not that nothing exists.
  • Anything about addresses you’ve never used on chain.
  • Whether your address is already tied to your name off chain — in a group chat, a profile or a leaked database.

API

Every third-party request goes through the Worker, so no data provider ever sees a visitor’s browser.

GET /api/scan?chain=solana|robinhood&address=<address>
GET /api/chart?pool=<pool address>
GET /api/trending
GET /api/paper?id=<arXiv id>      # reading-list PDFs, served for the in-page viewer

Run your own

Chaineye is one Cloudflare Worker with static assets and a single KV namespace.

npx wrangler login
npx wrangler kv namespace create Chaineye_KV   # paste the id into wrangler.jsonc
npx wrangler dev
npx wrangler deploy

The public Solana RPC is fine for trying it out but rate-limits under real traffic. Point SOLANA_RPC_URL at a dedicated provider before you share a link.