
Raw token balances never move when a multiplier changes. Colophon reconstructs the multiplier history, prints the statement, and lets anyone re-check it offline.
The same balance reads two ways.
Token-2022 stores a multiplier, a new multiplier and the time it takes effect. The stored field is never rolled forward on its own, so a reader that stops at it is wrong the moment the effective time passes.
holder 4j2Y8P...hvnpA6 · mint PreANx...rHsfTh
Reads flow through one kernel.
One page his accountant can re-check.
Tolu bought SPYx and NVDAx on Solana last year and some TSLA stock tokens on Robinhood Chain. His accountant asks what he held on 31 December. His wallets show today's numbers, adjusted by multipliers that changed since. Colophon answers in one page, with the source transaction behind every line, and the accountant verifies it offline without trusting Colophon.

Two implementations. One kernel.
Token-2022 ScaledUiAmount
The balance never changes, the multiplier does. Pending changes are scheduled by timestamp.
111 tracked mints, multiplier stored as multiplier / newMultiplier / effective time.
one verifier
ERC-8056 uiMultiplier()
The same idea behind an ERC-20 balanceOf and a view function.
194 stock tokens, multiplier read by selector 0xa60bf13d.
Who reads these tokens wrong.
Every row is a real response with a timestamp. Nothing was sent to any network.
| Tool | Token | Reports | Kernel | Verdict | At |
|---|---|---|---|---|---|
| RPC getTokenSupply | OPENAI | 2826.00881516 | 2826.00881516 | AGREES | 2026-10-11T15:50:31Z |
| RPC getTokenSupply | SPACEX | 43712.471506555 | 43712.471506555 | AGREES | 2026-10-11T15:53:50Z |
| RPC getTokenSupply | AAPLx | 154264.8355216 | 154264.8355216 | AGREES | 2026-10-11T15:57:07Z |
| RPC getTokenSupply | NVDAx | 321810.362165 | 321810.362165 | AGREES | 2026-10-11T16:01:08Z |
| RPC getTokenSupply | SPYx | 95774.95984341 | 95774.95984341 | AGREES | 2026-10-11T16:04:40Z |
| RPC getTokenSupply | TSLAx | 229635.6273418 | 229635.6273418 | AGREES | 2026-10-11T16:08:07Z |
| Robinhood Chain totalSupply() | CRM | 165730987340000000000 | 165921300011547413836 | RAW VS SCALED | 2026-10-11T16:11:42Z |
| Robinhood Chain totalSupply() | P | 91571050000000000000 | 91571050000000000000 | AGREES | 2026-10-11T16:11:42Z |
| Robinhood Chain totalSupply() | CIEN | 7321000000000000000 | 7321000000000000000 | AGREES | 2026-10-11T16:11:43Z |
One call, point in time.
curl -s -X POST /api/statement \
-H 'content-type: application/json' \
-d '{"wallet":"<address>","chain":"solana","asOfTs":1767225599}'Free for holders. Paid for the people who file.
Free personal statements on both chains. Pro for accountants and funds: multi-wallet packs and signed year-end exports. API for wallets, tax tools and lenders: point-in-time endpoints, metered.