How it works
A call is a wallet's signed statement about one Solana token at one second. Callbook stamps it with its own clock and the market cap Jupiter reports at that second, gives it a page at /x/<8 characters>, and adds it to the wallet's record at /c/<wallet>. Every page shows the call next to the market cap now.
The rules
- One call per token per wallet in any 24 hours.
- 10 calls per wallet in any 24 hours.
- Calls cannot be edited or deleted, by the caller or by anyone else. Misses stay on the record.
- The time is this site's clock when the signed call arrives, never the browser's.
- No reliable price, no call: if Jupiter has no price for the token at that second, the call is refused.
- The site takes up to 2,000 calls a day and 30 signing requests an hour from one connection.
The signature
Your wallet signs a plain text message, for example:
Callbook call: <mint> ($TICKER). Wallet <your wallet>. Nonce <n>, issued <time>. This signature moves no funds and approves nothing.
It is a message signature, not a transaction: it cannot move funds or approve anything. The nonce comes from this site, is valid for 5 minutes and works once. The site checks the signature against the wallet address (ed25519) and keeps the message and the signature on the call's page, so anyone can check them again.
Wallets that announce themselves to the page (Phantom, Solflare and others) can sign. Inside X's or Telegram's in-app browser there is no wallet: use "Open in Phantom" or "Open in Solflare". Looking at calls and records needs no wallet.
Where the numbers come from
- Market cap at the call: Jupiter Tokens v2 (mcap), fetched in the same request as the stamp, usually within a second of it.
- Price at the call: Jupiter Price v3, fetched in the same request.
- Now: Jupiter Tokens v2, refreshed at most once a minute per token. When Jupiter has not answered for more than 5 minutes, a page says "updating" instead of an old number.
- Change: the market cap now against the market cap at the call.
- Thin: the token had under $1k of liquidity at the call, so its market cap may be off.
- Token identity: by mint address only, never by ticker. A ticker search lists the candidates with age, liquidity and holders; you pick the mint.
Market data: Powered by Jupiter.
Highest seen
Each time anyone opens a call, a caller's record or the latest calls, the market cap now is compared with the highest one stored for that call, and the higher one is kept with its time. It is sampled when pages open, so the true peak since the call may have been higher.
A caller's record
Per wallet: how many calls, how many are above or below their call market cap now, and the median change. Callers are not ranked against each other. A record belongs to a wallet, not to a person.
What it cannot do
- Show a true peak since the call: there is no licensed price history for young tokens, so "highest seen" is sampled.
- Tell people apart: one person can run many wallets and show only the good one.
- Know about calls made elsewhere: only calls signed here are on the record.
- Correct Jupiter: a thin token's market cap is what Jupiter reported, which can be off.
Sharing
Every call and every caller has its own link. Posted on X or Telegram, the link shows the call itself: the market cap at the call, the time and, after the first hour, the market cap now. The image is refreshed every hour.
What is counted
Calls stored and call pages opened, once per visitor per day, with the site the visit came from. A visitor is a hash of the connection with a random salt that changes every day, so days cannot be linked and no IP address is stored. No cookies, no ad trackers. Wallet addresses, the signed messages and the signatures are public: they are the record.