ZCZC SYM0001 · MANUAL
The Symbolon manual
How the wire reads a launch, how a project protects its name, what the API returns, and what $SYMBOLON does.
OFFICIAL $SYMBOLON CA: NONE YET
01What Symbolon does
Symbolon hears every new Solana launch on pump.fun, LetsBonk and Meteora DBC the moment it is created, reads the website and X account the coin claims, and checks them against what the real project says. Every coin gets a verdict with the evidence behind it.
Projects prove they own their domain or X account and register their official CA, or say they have none yet. Any coin that claims their links without matching is flagged, and the project hears about it in seconds. Buyers paste a CA to check it before they buy. Trading bots read the same verdicts from the API.
The name: a symbolon was a token broken in two. Each party kept a half and proved who they were by fitting the halves together. A coin can copy your link. It can't copy your half.
The case it was built for
On October 11, 2026 a real project, Winterkey, opened its website. This is what happened next, from its own server logs and the chain.
- CERTwinterkey.pro gets its TLS certificate. Certificate Transparency logs publish every new certificate, so anyone can watch new sites appear.
- SCANWithin a minute a scanner bot starts loading the new homepage, every 2 to 5 minutes.
- 14:52:30ZThe site adds its X link, @usewinterkey. Ten seconds later the bot takes the page and stops polling.
- 15:03:47ZA coin named Winterkey ($KEY) launches on pump.fun with the real site, the real X and the X profile picture, 23 minutes after the site went live.
- +5 SThe dev wallet, a throwaway funded the day before by an exchange-scale wallet, sells its whole 1.6 SOL buy 5 seconds after launch. Within a minute its SOL is swept on.
- OCT 9 TO 11The same collector, 4AwWGVwNqgZZSZLarj74PzV77Zp9KAkN7HDYU2C3UFZA, took in money from 70 throwaway launch wallets in two days, each coin wearing another real project's site and X. 342 buyer wallets whose money also leads back to it made 31% of those coins' volume (392 of 1,286 SOL), so the charts looked busy.
Winterkey had nowhere to say “that coin is not ours” where a buyer would see it before buying. Symbolon is that place: a registry the owner signs, a stamp on the copycat with the evidence, and an alert to the owner within seconds of the launch.
The replay the front page prints when the live watcher is down is retroactive: those 70 projects never registered with Symbolon. Its stamps show what the method says about those coins today, and the paper is labelled “not live”.
02How a verdict is made
A verdict answers one question: is this coin the one the linked project stands behind? It is about identity, not price. Every verdict carries the evidence lines that produced it, and the rules below are the whole method.
The four verdicts
- Official
- The coin is the one its project stands behind: the project registered this CA, its statement file names it, or every site and X account it links shows it.
- Unverified
- It claims a site or X, but nothing confirms or contradicts it yet. Not a clean bill: a careful copycat can sit here until its dev sells or the real project registers.
- Copycat suspected
- It claims a project's site or X and the evidence says it is not theirs: one decisive line, or 5 or more points against.
- No identity claimed
- No website or X in its metadata. There is nobody to impersonate, so there is no verdict about identity.
Weights and the rules, in order
Each evidence line is for the project, against it, or context. Its weight: decisive lines decide alone; strong is 3 points, moderate 2, weak 1, context 0. A coin that claims a site or X is flagged at 5 points against.
- No website or X in the metadata: No identity claimed.
- Any decisive line against (the owner said “no token yet” or named another CA, or the money reached a known operator): Copycat suspected.
- Every website and X account the coin links confirms this CA (the registry or the site's statement file names it, the site shows it, or the X account posted it): Official. One confirmed link is not enough while another link stays unconfirmed; a CA shown only next to a warning (“fake”, “scam”) does not count.
- 5 or more points against: Copycat suspected. Before a flag on points goes out, Symbolon searches each X account the coin claims for an original post containing this CA. A real team posts its CA; an impersonator cannot. If every claimed link confirms it, the coin is Official instead.
- Anything else: Unverified.
Worked example, Winterkey ($KEY). The dev sold 100% of its buy 5 seconds after launch (strong, 3) and its wallet was fresh and paid by an exchange-scale wallet (moderate, 2): 5 points, flagged. The site's two-hour-old certificate (weak, 1) and the sweep of its SOL 46 seconds after the sale (moderate, 2) bring it to 8.
The six signals
| What we read | Counts | Weight |
|---|---|---|
| 1. The project's own channels | ||
| The project proved it owns the site or X and registered this mint as its official CA. | For the project | Decisive |
| The project proved it owns the site or X and says it has no token yet. | Against | Decisive |
| The project proved it owns the site or X and registered a different CA. | Against | Decisive |
| The site's own statement file, /.well-known/symbolon.json, names this CA. | For the project | Decisive |
| The site's statement file names another CA, or says no token has launched. | Against | Decisive |
| The claimed site shows this CA, on the page or in its own scripts. A copycat cannot write on the real site. | For the project | Strong, 3 |
| The claimed site shows a different CA. | Against | Moderate, 2 |
| The site loads but shows no CA. Many real projects add theirs later, so this counts for nothing. | Context only | Context, 0 |
| The site did not answer. We look again later. | Context only | Context, 0 |
| The claimed X account posted this CA. | For the project | Strong, 3 |
| The claimed X account's recent posts do not contain this CA. | Context only | Context, 0 |
| An appeal was upheld after review. | For the project | Decisive |
| The verified owner says this coin is not theirs. | Against | Decisive |
| 2. Same link on other coins | ||
| Other wallets launched coins with the same link in the last 30 days, none of them flagged. | Context only | Context, 0 |
| Other wallets launched coins with the same link in the last 30 days, and at least one was flagged. | Against | Moderate, 2 |
| 3. How new the site is | ||
| The domain's first TLS certificate was issued less than 72 hours before launch (Certificate Transparency logs). | Against | Weak, 1 |
| The domain has had certificates for longer than that. | Context only | Context, 0 |
| 4. Where the dev wallet came from | ||
| Fresh dev wallet: first funded less than 72 hours before launch, with at most 20 transactions before it. | Against | Weak, 1 |
| Fresh dev wallet paid by an exchange-scale wallet: a full page of 1,000 signatures packed at 200 or more an hour. The trail starts at an exchange. | Against | Moderate, 2 |
| The dev wallet is older or busier than a throwaway. | Context only | Context, 0 |
| The same dev launched 2 or more other coins with other identities within 7 days. | Against | Strong, 3 |
| 5. What the dev did after launch | ||
| The dev sold 90% or more of its launch buy within 3 minutes of launch. | Against | Strong, 3 |
| The dev sold part of its buy, below the dump line. | Context only | Context, 0 |
| The dev still holds its launch buy after 3 minutes. | Context only | Context, 0 |
| After selling, the dev moved 80% or more of its SOL out within 30 minutes. | Against | Moderate, 2 |
| 6. Where the money went | ||
| The dev's SOL reached a wallet of a known copycat operator group, within 3 hops. | Against | Decisive |
| The dev wallet itself is linked by money to a known operator group. | Against | Decisive |
What happens after a launch
Each step stores its evidence and decides again, so a verdict can only get better informed. Every change is logged on the coin's page.
- T+0The launch on pump.fun, LetsBonk or Meteora DBC: the mint, the platform, the dev wallet and its buy.
- T+0.3 SThe metadata: the website and X the coin claims. Checked at once against the registry, earlier coins with the same link and the dev's other launches. Owners watching those links are alerted now.
- T+1 SThe claimed site (this CA on it, a statement file), the domain's certificate age, and where the dev wallet's first SOL came from.
- LIVEThe dev's trades, from the launch stream. A dump is seen the moment it lands; the chain is read again at 40 seconds and 3 minutes.
- DUMPWhere the SOL went: the sweep, then up to 3 hops toward known operator wallets, read 45 seconds, 4 minutes and 20 minutes after the sale.
- FLAGBefore a flag on points alone: the X account the coin claims, searched for this CA (about 1 to 2 seconds).
- +3, +15 MINThe site again. Real teams often add their CA a few minutes after launch.
What we tested
Six of our own past launches and four well known coins (BONK, JUP, WIF, FARTCOIN) were run through the method as false-positive checks: none was flagged.
What we cannot see
- Who runs a wallet. A trail that starts at an exchange ends there; only the exchange knows the person. We never guess.
- Launches outside pump.fun, LetsBonk and Meteora DBC. Those coins are checked only when someone pastes the CA.
- A CA your site loads later from an API or shows only in an image. We read the page and its own scripts.
- X beyond the budget. X reads are paid per post, so they run for ownership proofs, for the check before a flag, and on request. On a day the budget is spent, a coin can be flagged on points without that check.
- Sells from other wallets. The dump line reads the dev wallet's own trades; tokens moved elsewhere first and sold there are not counted.
- A careful copycat: an old wallet, no dump, a link nobody used before. It stays Unverified until the real project registers. Unverified is not a pass.
- A real project that never registered and shows no CA on its site or X cannot be Official. Registering takes a few minutes.
- Coins the watcher never saw: checking those reads the chain over a public endpoint and can take 10 to 120 seconds.
03The official CA registry
Copycat scanners read the public certificate logs for new sites, then wait for the X link to appear. By the time you post your launch, a coin with your name, your site and your picture may already be trading. The registry is where you say, signed, which CA is yours, or that you have none yet.
1. Prove you own the domain or the X account
Add the identity in the registry and you get a one-time code. Prove it in one of three ways:
- DNS. A TXT record on the root of the domain:
symbolon-verify=<code>. Most DNS hosts publish it within a few minutes. - File. Serve the same line as plain text at
https://<domain>/.well-known/symbolon.txt. - X. Post
Verifying my official links on Symbolon. symbolon-verify=<code>from the account. You can delete the post once the check passes.
2. Sign your statement
Your wallet signs a text message, not a transaction: nothing moves and nothing is spent. It names your official CA, or says none yet. When you launch, sign a new one with the CA. Every statement is kept with its signature and signer, so the history is public and anyone can verify it.
Symbolon official CA statement
Project: yourproject
Identities: yourproject.com, @yourproject
Official CA: none yet (no token launched)
Owner wallet: <your wallet address>
Signed at: 2026-10-12T09:00:00.000Z
Any other coin using these links is not ours.3. Publish the statement file
Serve /.well-known/symbolon.json on your domain. Symbolon reads it on every check (a decisive line), and so can any scanner, wallet or bot, without asking us. officialCA is your mint address, or null before you launch.
{
"symbolon": 1,
"officialCA": null,
"x": "@yourproject",
"updated": "2026-10-12T09:00:00.000Z"
}4. Show the badge
One line on your site shows “Official CA: none yet” (or your CA with a copy button) and a link to your record. It renders in a closed shadow root: your CSS cannot restyle it and it cannot restyle your site. A scanner that copies your page copies that line too.
<script src="https://symbolon.guru/badge.js" data-domain="yourproject.com" async></script>The registry opens with the app at launch. Until then, put “Official CA: none yet” on your site and publish the statement file above.
04Alerts
Two kinds of watch. One guards your own links and is instant for everyone. The other follows every coin Symbolon flags, with a delay set by your tier.
Your identities: instant, on every tier
Watch the domain and X account you proved. Any new coin that claims them alerts you at once, with the verdict the fast checks reached, and again if its verdict turns to Copycat suspected. Your own registered coin never alerts you. There is no delay on any tier: a copycat of your project is not a feature we sell.
The copycat feed: by tier
Every coin Symbolon flags, from anyone, delivered after your tier's delay:
- Watcher (free): 2 minutes
- Holder (250,000 $SYMBOLON): 10 seconds
- Warden (2,500,000 $SYMBOLON): no delay
Channels
- Webhook
- A signed JSON POST to your URL (format below). Good for your own server or bot.
- Discord
- Paste a Discord webhook URL; alerts arrive as an embed with the evidence headline.
- Telegram
- Through the Symbolon bot. Not switched on for this server yet.
- Not switched on for this server yet.
- Browser push
- Allow notifications in this browser; works with the tab closed.
- Inbox
- Every alert also lands in your inbox in the app, whatever channels you add.
Webhook format
Each alert is a POST with content-type: application/json and the headers x-symbolon-timestamp (Unix seconds) and x-symbolon-signature: sha256=<hmac>: the hex HMAC-SHA256 of <timestamp>.<raw body>, keyed with your channel's secret. Reject timestamps more than a few minutes old. Answer with any 2xx within 8 seconds.
{
"type": "symbolon.alert",
"id": 4121,
"mint": "6YrxQt7r5Zx2aAaYQ2uNSPxt4D17hNbJnPZqBHCFpump",
"verdict": "suspected",
"title": "Copycat suspected: $KEY uses winterkey.pro + @usewinterkey",
"body": "Winterkey ($KEY) 6YrxQt…CFpump\nDev sold 100% 5 s after launch\nCheck: https://symbolon.guru/check/6YrxQt7r5Zx2aAaYQ2uNSPxt4D17hNbJnPZqBHCFpump",
"launchAt": 1791731027000,
"url": "https://symbolon.guru/check/6YrxQt7r5Zx2aAaYQ2uNSPxt4D17hNbJnPZqBHCFpump",
"sentAt": "2026-10-11T15:03:53.120Z"
}verdictsuspected,unverified,officialorno_claim.launchAt- Launch time, Unix milliseconds. Subtract it from your receive time to measure how fast you heard.
title,body- Ready to forward as they are.
url- The coin's page with all the evidence.
import { createHmac, timingSafeEqual } from "node:crypto";
// raw: the request body exactly as received. secret: shown once when you add the webhook.
// The signature covers "<timestamp>.<raw body>"; refuse old timestamps so a captured alert cannot be replayed.
export function fromSymbolon(raw, headers, secret, maxAgeS = 300) {
const ts = String(headers["x-symbolon-timestamp"] ?? "");
if (!/^d+$/.test(ts) || Math.abs(Date.now() / 1000 - Number(ts)) > maxAgeS) return false;
const want = "sha256=" + createHmac("sha256", secret).update(ts + "." + raw).digest("hex");
const got = String(headers["x-symbolon-signature"] ?? "");
return got.length === want.length && timingSafeEqual(Buffer.from(got), Buffer.from(want));
}
// fromSymbolon(rawBody, req.headers, process.env.SYMBOLON_SECRET)05API for trading bots
The same verdicts as JSON, for bots that buy new launches. One call before a buy answers “is this the project it says it is”; the stream tells you the moment a coin is flagged.
Keys
Send your key as Authorization: Bearer sym_live_... (or an x-api-key header). Keys in the URL are accepted only on the stream, for browser EventSource. Holders of the Holder tier make a free key that follows what the wallet holds now; paid plans come with one. A key can be given a new secret at any time; the old one stops working at once. Keys open with the app at launch. Without a key you get 30 calls an hour, no stream, and the feed after the free delay. Keys are shown once; we keep only a hash.
Endpoints
GET /api/v1/verdict/<mint>- One coin's verdict with its evidence codes. Launches the watcher saw answer from memory in milliseconds. An unknown mint is read from the chain first (up to 30 seconds); add
?wait=0to getknown: falseat once instead. GET /api/v1/stream- Server-sent events, key required:
launchfor every new launch andverdictfor every verdict change, each carrying the verdict object.?claimed=1sends only launches that claim a site or X. Holder keys see verdicts after their tier's delay: on alaunchevent the verdict is the one known that long ago (usuallypending), andverdictevents arrive late by the same delay. GET /api/v1/identity?domain=or?x=- Whether a domain or X account is registered, by which project, its official CA (or
nullfor none yet), and the signed statement with its signature and signer, so you can verify it yourself. GET /api/v1/feed?limit=50- The newest flagged coins (up to 200), newest first, after your delay.
{
"mint": "6YrxQt7r5Zx2aAaYQ2uNSPxt4D17hNbJnPZqBHCFpump",
"known": true,
"symbol": "KEY",
"name": "Winterkey",
"platform": "pump",
"launchedAt": "2026-10-11T15:03:47.000Z",
"dev": "EMPy8WBrmRuZiuYV6frMMYeZE7THLGG6Q1wq9EjvMAzw",
"claims": [
{
"kind": "domain",
"value": "winterkey.pro",
"label": "winterkey.pro"
},
{
"kind": "x",
"value": "usewinterkey",
"label": "@usewinterkey"
}
],
"verdict": "suspected",
"label": "Copycat suspected",
"headline": "Dev sold 100% 5 s after launch",
"points": {
"against": 8,
"for": 0
},
"evidence": [
{
"code": "cert_fresh",
"signal": 3,
"polarity": "against",
"weight": "weak",
"title": "winterkey.pro got its first certificate 2 h before launch"
},
{
"code": "dev_fresh_exchange_funded",
"signal": 4,
"polarity": "against",
"weight": "moderate",
"title": "Fresh dev wallet, paid by an exchange-scale wallet"
},
{
"code": "dev_dumped",
"signal": 5,
"polarity": "against",
"weight": "strong",
"title": "Dev sold 100% 5 s after launch"
},
{
"code": "dev_swept",
"signal": 5,
"polarity": "against",
"weight": "moderate",
"title": "Dev emptied its wallet 46 s after selling"
},
{
"code": "site_unreachable",
"signal": 1,
"polarity": "neutral",
"weight": "info",
"title": "winterkey.pro did not answer"
}
],
"flaggedAt": "2026-10-12T00:36:13.109Z",
"updatedAt": "2026-10-12T00:36:13.109Z",
"underReview": false
}verdict- official, unverified, suspected, no_claim, or pending while the first checks run.
label, headline- The verdict in words, and its strongest reason.
points- Points against and for (decisive lines count 100).
evidence[]- Every line: code, signal (1 to 6), polarity (for, against, neutral), weight, title. Codes are listed in the method section.
claims[]- The website and X the coin claims.
dev, launchedAt, platform- The creating wallet, the launch time (ISO), and pump, launchlab or dbc.
flaggedAt, updatedAt- When it was first flagged and when the verdict last changed (ISO, or null).
underReview- true while an appeal is open.
known- false when the mint is not a launch we have; nothing else is returned then.
event: hello
data: {"plan":"builder","delayMs":0,"at":"2026-10-12T09:00:00.000Z"}
event: launch
data: {"mint":"...","known":true,"symbol":"...","verdict":"pending", ...}
event: verdict
data: {"mint":"...","verdict":"suspected","headline":"Dev sold 100% 5 s after launch", ...}# One coin
curl -H "Authorization: Bearer $SYMBOLON_KEY" \
https://symbolon.guru/api/v1/verdict/6YrxQt7r5Zx2aAaYQ2uNSPxt4D17hNbJnPZqBHCFpump
# Every launch and every verdict change, as they happen (-N keeps the stream open)
curl -N -H "Authorization: Bearer $SYMBOLON_KEY" "https://symbolon.guru/api/v1/stream?claimed=1"
# Who owns a domain or an X account, and the CA they signed for
curl "https://symbolon.guru/api/v1/identity?domain=winterkey.pro"
curl "https://symbolon.guru/api/v1/identity?x=usewinterkey"
# The newest flagged coins
curl -H "Authorization: Bearer $SYMBOLON_KEY" "https://symbolon.guru/api/v1/feed?limit=20"Limits
| Access | Allowance | Per second | Stream | Feed delay |
|---|---|---|---|---|
| No key | 30 / hour | not capped | No | 120 s |
| Holder key holds 250,000 | 2,000 / day | not capped | Yes | 10 s |
| Warden key holds 2,500,000 | 25,000 / day | not capped | Yes | none |
| Builder $49 / 30 days | 300,000 / 30 days | 10 / second | Yes | none |
| Desk $249 / 30 days | 3,000,000 / 30 days | 50 / second | Yes | none |
Errors are JSON with an error sentence that says what to do: 400 not a Solana address, 401 the stream needs a key, 402 the plan has ended, 429 a limit was reached (the message says which).
06$SYMBOLON
$SYMBOLON is how the service pays its holders back: what people pay for Symbolon buys $SYMBOLON on the market and burns it, and holding it is what unlocks the faster tiers.
Supply
- Total supply
- 1,000,000,000
- Team allocation
- None
- Presale
- None
- Vesting or unlocks
- None. Nothing is waiting to unlock.
How revenue reaches the token
- API plans paid in SOL or USDC: 50% of every payment buys $SYMBOLON on the market every 7 days, and those tokens are burned.
- Plans paid in $SYMBOLON cost 20% less, and the $SYMBOLON paid is burned in the same transaction.
- Holder tiers are not sold. You reach them by holding $SYMBOLON, so demand grows with the people who rely on the alerts and the API.
Every payment, every buyback and every burn is listed with its transaction on the $SYMBOLON page in the app, which opens at launch.
Holder tiers
| Tier | Hold ($SYMBOLON) | Copycat feed delay | Identities | Checks / hour | API calls / day |
|---|---|---|---|---|---|
| Watcher | nothing | 2 min | 2 | 30 | no key |
| Holder | 250,000 | 10 s | 10 | 600 | 2,000 |
| Warden | 2,500,000 | none | 50 | 5,000 | 25,000 |
Alerts about your own domain and X are instant on every tier, including Watcher.
API plans
| Plan | Price / 30 days | Paid in $SYMBOLON | Calls / 30 days | Per second | Includes |
|---|---|---|---|---|---|
| Builder | $49 | $39.20 | 300,000 | 10 | stream |
| Desk | $249 | $199.20 | 3,000,000 | 50 | stream, webhooks |
Prices are in US dollars, paid in SOL or USDC (or in $SYMBOLON once it has launched) at the rate when you pay.
07Appeals and privacy
A verdict is evidence about a coin, never an accusation of a person. Anyone can ask for a second look.
Appealing a verdict
- Open the coin's page and choose Appeal this verdict. Leave a way to reach you (an X handle, Telegram or email) and say why the verdict is wrong, in 20 to 2,000 characters. Links to your site or posts help.
- When a reviewer takes the case, the coin is marked “under review” everywhere the verdict shows, including the API.
- A person reads the evidence and your appeal. The decision and a one-line reason are posted on the coin's page. Your contact details are never shown.
- An upheld appeal is added to the coin's evidence as a decisive line in its favor, with the reviewer's reason, and the coin is decided again.
If the coin is yours, the fastest fix is to prove your domain or X and register its CA (section 03). The registry is decisive: the verdict changes as soon as your statement is signed.
Privacy
- We never guess who runs a wallet. Verdicts say what the chain and the links show, and nothing about the people behind them.
- We never show visitor IP addresses. Rate limits use a salted hash of the address, kept in memory only.
- Connecting a wallet reads its address. Signing in asks for a message signature, never a transaction, and never your seed phrase or private key.
- X reads are paid per post, so they are budgeted: ownership proofs, the check before a flag, and checks someone asks for. We do not read X for every launch.
- Alert channels you add (webhook URLs, chat ids, email) are used only to send your alerts. Remove a channel and it is deleted.