How a card is computed
A card is one wallet's trading in one token, rebuilt from the chain: what the wallet paid in SOL for the token, what it got back in SOL, and the difference. Every number comes from the wallet's own balance changes in its transactions, so it works the same on any exchange, curve or aggregator. Each transaction on the card links to an explorer, so anyone can check it.
What is read
- The token account. The wallet's own token account for the token (its associated account, under the token's program, classic or 2022). If that account has no history, another token account the wallet holds for the token is read instead, and the card says so.
- Its transactions, newest first, at most 300, successful ones only. With more than 300, the card covers the newest 300 and says “since” the date of the oldest one read.
- Per transaction: the change of the token across the token accounts the wallet owns in it, and the change of the wallet's SOL. The SOL change includes wrapped SOL the wallet holds in a token account, and leaves out the rent of token accounts it opens or closes (that SOL stays the wallet's to take back). It includes everything the wallet paid in that transaction: the network's cost, priority payments, tips, platform charges, slippage.
How each transaction is labelled
| label | when | in the totals? |
|---|---|---|
| buy | the token came in and SOL went out (beyond the network's cost) | yes: SOL in |
| sell | the token went out and SOL came in | yes: SOL out |
| received | the token came in with no SOL paid: a transfer, an airdrop, an order filled later by someone else | no |
| sent away | the token went out with no SOL back: a transfer, a burn, a sale paid to another address | no |
| not in SOL | the token was traded against one other token (USDC or any other) with no SOL leg | no |
| mixed | several tokens moved at once, or the token and more than 0.01 SOL moved the same way (adding or removing liquidity, bundles) | no |
Leftovers of a few units of an in-between token that a route leaves in the wallet (less than 0.0001 of a token) are ignored.
The numbers
- in: SOL the buys took from the wallet. out: SOL the sells gave the wallet. Both after every cost of those transactions.
- PnL, when everything bought was sold (less than 1% left): out − in. The % is that ÷ in.
- Still holding 1% or more of what it bought: the PnL is for the part sold, at the average cost: out − in × (sold ÷ bought), and the % is that ÷ the cost of the part sold. What is still held is shown as a share of what was bought and is not valued: no price is used anywhere.
- Sold more than it bought (the rest came in as received tokens): only the bought share of the sells counts, out × (bought ÷ sold) − in.
- held: from the first buy to the last sell, or “open” for as long as it still holds.
- No dollar values, no current price, no valuation of what is held. SOL legs are facts on the chain; prices of thin tokens are not.
What a card cannot tell
- It is a wallet's trades, not a person's. Trades between someone's own wallets, and wash trades, cannot be ruled out.
- Only the wallet's own token account for the token is read. Bots that trade through other accounts are partly invisible.
- Trades against USDC or another token have no SOL leg: they are listed as “not in SOL” and left out of the totals.
- Orders filled later by a keeper (limit orders, recurring buys) show as “received”: the SOL left the wallet in another transaction.
- A sale whose SOL was paid to a different address shows as “sent away”.
- More than 300 transactions on the token account: only the newest 300 are read, and buys before them are missing.
- Failed transactions (and what they cost) are not counted.
Rechecking
A card's link rebuilds it from the chain when it is opened, at most once every 10 minutes; the card shows when it was checked. The share image carries that time too, so a re-post after a new check shows the new numbers. Free checks are capped each day for all visitors together, and per visitor per hour. When the day's checks are used up, new cards wait until 00:00 UTC and every existing link still opens, marked “as checked at” its last check.
Signing
Anyone can make a card for any wallet, as on any explorer: an unsigned card says so. The wallet's owner can sign a short message that names this site, the wallet, the card and the token, with a one-time code and the time. It is a message, not a transaction: it moves no funds and approves nothing, and the whole message is shown before signing. The signature is checked here against the wallet's public key and kept; the card then shows “signed by the wallet”, and anyone can read the message and the signature on the card and check them with any ed25519 tool. A signature shows the wallet's owner claims the card. It says nothing about who that owner is. Signed cards are listed under “Signed today” only when the signer ticked that box.
In X's in-app browser no wallet is reachable: the card offers to open the page in Phantom or Solflare, or to paste a signature made elsewhere.
Data and privacy
- The chain is read through an RPC provider, from this site's server; nothing about who asked is sent with it.
- Token names, tickers and icons: Powered by Jupiter. No price or market data from any provider is shown.
- No wallet connection is needed to make or read a card, and no name, handle or label is ever shown next to a wallet.
- This site sets no cookies. It counts cards made and opened, once per visitor per day, using a hash of the visitor's IP address with a salt that changes every day and is deleted after a day; the IP address itself is not stored.