$GLASSnot live

See through
every bag.

Paste a token. Every bubble is a holder, every line is a transaction you can open. No verdicts, only receipts.

$GLASS · map goes live at launch

From the first block, $GLASS's own holders are mapped here, every team and marketing wallet labeled in public.

Holders—
Linked—
Score—
Self-labeled—

How a line gets drawn

Two wallets are joined only by something that happened on chain. Each line on the map opens the transaction that put it there, so you can check it on Solscan instead of trusting us.

#RuleWhat countsReceipt
01FundedOne top holder sent another its very first SOL. Same if the deployer did.the funding transfer
02Same funder2 or more holders got their first SOL from one wallet nobody can name. Exchanges, bridges and known protocols fund strangers every day and never count.each holder's funding transfer
03Token transferA holder's first tokens came straight from another holder's wallet, not from a pool or curve.the transfer
04Bought together3 or more first buys within 2 slots. Rated by what else they share: one fee payer, SOL size within 12%, the same Jito tip, wallets funded under 6h before buying. This is the pattern bundlers hide, and it never needs a transfer between them.every first buy

What Glass never does

A map is only worth something while nobody can lean on it.

Name a person

No callout threads, no investigations of people. The map shows wallets and transactions. What they mean is yours to judge.

Relabel quietly

A label says who set it. A project labels its own wallets in public, next to the receipts, and cannot hide a link by renaming it.

Keep the rules secret

Every threshold is on the method page and in the open source code. Change one and the method version changes with it.

Same data, open API

One read endpoint, open CORS, no key. It returns what the page draws: holders with their funding and first buy, every link with its receipts, clusters, cohorts and the score.

Maps are cached for 90s. A fresh scan reads the chain and is limited to 12 per hour per IP.

GET /api/v1/map/:mint · example response
$ curl https://glassmaps.app/api/v1/map/<mint>

{
  "token": { "symbol": "GLASS", "supply": 999842117 },
  "holdersTotal": 1873,
  "score": { "total": 82, "band": "clear" },
  "clusters": [{ "members": ["7xKX…gAsU", …], "pct": 4.18 }],
  "edges": [{
    "type": "shared-funder",
    "receipts": [{ "signature": "4hXq…Pz9e", "what": "…" }]
  }],
  …
}