Verified Calls docs
v1.0.0
Live demo Get help
● Documentation · Node.js · Self-hosted

Verified Calls
a call record anyone can check.

Everything you need to install, configure, brand and run your own call record for Telegram call groups: a bot records every Solana call, the server measures what a follower could have had after fees, and every call is sealed so it cannot be removed later. Read it top to bottom the first time. After that, press / and search.

v1.0.0Node.js 22 · TypeScriptSQLite, no database serverYour own Telegram bot

01What you bought

Verified Calls is a self-hosted track record for Telegram call groups. You add your own Telegram bot to your group or channel. The bot records every message that contains a Solana token address. For each call the server works out what a follower could have had: someone who bought shortly after reading the call and sold by a fixed rule, after fees and slippage. Callers are ranked by the median of those results. New calls are sealed into a Merkle root at a fixed interval, the bot posts the seal to Telegram, and you can anchor it on Solana with a memo you sign in your own browser wallet.

WhoWhat they do
You, the operatorRun the site on your own server with your own bot, approve which chats are recorded, anchor seals from your wallet and switch on the earning options you want in the Admin console.
CallersPost calls in the chats you recorded, as they already do. They can see their own record with /mycalls and may link a wallet with /linkwallet.
FollowersRead the public site, follow callers in the bot to get a DM on every call, check any call against its seal and, if you sell it, buy VIP access.
Safe defaults

A new install ships empty: no callers, no calls, no Buy link, no referral codes, no wallets and no keys. Every earning option starts switched off. Nothing is sent to MIKODES.

02What it does

  • Records calls. Every message with a Solana token address in a chat you approved: time, caller, original text and a link to the message. Edits are stored next to the original; the original is never overwritten. Forwards and messages from bots are not calls.
  • Measures a follower's result. Entry is the first trade at least 30 seconds after the post; exits at 1 hour, 24 hours and 7 days; 1 % fee and at least 1.5 % slippage per side come off. The peak is shown, labelled "not reachable", never as the headline.
  • Ranks callers by the median. Pulled toward the group median until a caller has enough calls. Under 5 scored calls a caller is "not enough calls yet". A token posted again by the same caller within 24 hours (a re-shill) is shown but not scored.
  • Seals the record. New calls are hashed into a Merkle root every 10 minutes by default; each seal includes the previous root, so the seals form a chain.
  • Lets anyone verify. Every call has a proof page that recomputes leaf → root → seal in the visitor's browser. Full exports can be checked offline with the included script.
  • Flags exit liquidity (optional). With your own Helius key, a wallet a caller linked is checked for a sale of the called token within an hour of the call.
  • Integrity flags. Coordinated calls, paid promotions (not scored) and which of your VIP or free chats had a call first.
  • Follower tools. Live feed, token pages, search, a simulator that replays a caller's calls with your size and delay, follow alerts by Telegram DM, share cards and an embeddable badge.

What it does not do

  • It does not pick tokens or give advice. It shows what already happened.
  • It never trades, never holds funds and never signs anything on the server. The server has no private key.
  • It never deletes or hides a call. The database refuses to delete calls or change a seal, and no admin button can unscore a call.
  • It cannot import history from before the bot joined a chat, and it invents no data: an empty install shows empty pages.

03Pick your path

04The public site

AddressWhat it shows
/Leaderboard: callers by median follower result in 1 h, 24 h or 7 d, the group median, the latest seal. Filters by group and first calls only.
/c/<caller>A caller: median result, every call on a scale, hit and rug rate, exit liquidity, a compact simulator, the Follow button and an embeddable badge.
/call/<id>One call: chart with entry, exits and the unreachable peak, results per window, the proof chain Recorded → Priced → Sealed → Anchored, and your trading row when switched on.
/t/<token>, /tokensWho called a token, in order, and how each call ended; the tokens called here.
/feed, /searchEvery call as it is recorded; search for callers, tokens and groups.
/simulatorReplays a caller's recorded calls with a trade size, delay and exit rule the visitor picks, using stored prices. An illustration of the past, not a forecast.
/groupsThe recorded chats with their calls, median result and sealed share; paid listings and the sponsored slot when on.
/verify, /methodologyCheck a call against its seal; the method, generated from the settings in use.
/vipVIP plans, when you sell membership.
/api, /export/…, /badge/<caller>.svg, /card/…Read-only JSON API, full exports, the badge and share-card images.
Leaderboard with top callers by median follower result, synthetic data
Leaderboard · synthetic data, not results of real callers
Call page with price chart, unreachable peak and proof chain, synthetic data
Call page · synthetic data
Token page listing every call of one token, synthetic data
Token page · synthetic data

05What is in the package

Folder or fileWhat it is
src/ingest/The Telegram bot (grammY, long polling) and the call recorder.
src/prices/, src/scoring/Public price data (GeckoTerminal, DexScreener as fallback), follower results, statistics, ranking and the simulator.
src/proof/Merkle seals, Telegram seal posts, the unsigned Solana memo and its check.
src/wallets/Caller wallet linking and the exit-liquidity check (Helius or your own RPC).
src/web/Server-rendered public pages, the JSON API, exports, badge and the record's data screens (/admin/ops), shown inside the console.
src/admin/, vendor/mikodes-admin/The operator console (MIKODES Admin Kit 0.3.0) and its settings manifest.
src/revenue/, src/membership/Trading links, Jupiter swap, paid listings, sponsored slot, API keys, VIP membership.
src/alerts/, src/integrity/, src/cards/Follow alerts and bot commands, integrity flags, share-card images.
src/db/SQLite schema and migrations; applied automatically at start.
scripts/verify-export.mjs (offline verifier), recompute.ts, check-licenses.mjs, dev-seed-synthetic.mjs (development only).
.env.example, README.md, SPEC.md, LICENSE.mdConfiguration template, the short manual, the exact rules the site uses, your licence.
You provide

A server (1 vCPU and 1 GB RAM is enough for a call group), your own Telegram bot from @BotFather, and optionally a domain with HTTPS, a Solana browser wallet, a Helius key or your own Solana RPC. None of these are part of the purchase.

06Try it before you install

A public demo runs the real site and the real console on synthetic data: demo.verifiedcalls.mikodes.com. Every caller, token, price and seal there was generated and is labelled. The demo has no Telegram bot and fetches no market data. Its /demo page shows a read-only sign-in for the console.

07How to read these docs

  • Dark boxes are commands. Press Copy in the corner and paste them into a terminal.
  • Grey text after # is an explanation. The Copy button leaves it out.
  • Replace calls.example.com with your own domain everywhere.
  • Tested marks steps run against this release while writing these docs; Not tested here marks standard procedures that could not be run on the writer's machine (for example systemd on a Linux server, or a live Telegram bot).
  • Screenshots come from a local copy running on synthetic data (the amber "Demo — synthetic data" banner). Numbers in them are not results of any real caller.