See through
every bag.
Paste a token. Every bubble is a holder, every line is a transaction you can open. No verdicts, only receipts.
From the first block, $GLASS's own holders are mapped here, every team and marketing wallet labeled in public.
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.
| # | Rule | What counts |
|---|---|---|
| 01 | Funded | One top holder sent another its very first SOL. Same if the deployer did. |
| 02 | Same funder | 2 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. |
| 03 | Token transfer | A holder's first tokens came straight from another holder's wallet, not from a pool or curve. |
| 04 | Bought together | 3 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. |
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.
$ 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": "…" }] }], … }