ColophonTry it
Solana · Robinhood

Raw token balances never move when a multiplier changes. Colophon reconstructs the multiplier history, prints the statement, and lets anyone re-check it offline.

NFLXx
SHARES
10x
stored field 1x
PPLTx
SHARES
10x
stored field 1x
SPACEX
TOKEN UNITS
5x
stored field 1x
AAPLx1.003269xSolanaABBVx1.021729xSolanaACNx1.028223xSolanaADBEx1xSolanaAMDx1xSolanaAMZNx1xSolanaANDURIL1xSolanaANTHROPIC1xSolanaARMKx1.001388xSolanaAURx1xSolanaAVGOx1.006162xSolanaAZNx0.511136xSolanaBACx1.017935xSolanaBARCx1xSolanaBBVAx1xSolanaBDWAPx1xSolanaBRK.Bx1xSolanaBTGOx1xSolanaCMCSAx1.099333xSolanaCOINx1xSolanaCPETCx1.024405xSolanaCRCLx1xSolanaCRMx1.006707xSolanaCSCOx1.020838xSolanaCSIQx1xSolanaCVXx1.029554xSolanaDFDVx1.014728xSolanaDHRx1.007056xSolanaDISx1xSolanaDJTx1xSolanaDOCNx1xSolanaDXCMx1xSolanaFBINx1xSolanaFIGUREAI1xSolanaGAWx1xSolanaGLDx1xSolanaGMEx1.005309xSolanaGOOGLx1.002377xSolanaHDx1.023299xSolanaHOODx1xSolanaAAPLx1.003269xSolanaABBVx1.021729xSolanaACNx1.028223xSolanaADBEx1xSolanaAMDx1xSolanaAMZNx1xSolanaANDURIL1xSolanaANTHROPIC1xSolanaARMKx1.001388xSolanaAURx1xSolanaAVGOx1.006162xSolanaAZNx0.511136xSolanaBACx1.017935xSolanaBARCx1xSolanaBBVAx1xSolanaBDWAPx1xSolanaBRK.Bx1xSolanaBTGOx1xSolanaCMCSAx1.099333xSolanaCOINx1xSolanaCPETCx1.024405xSolanaCRCLx1xSolanaCRMx1.006707xSolanaCSCOx1.020838xSolanaCSIQx1xSolanaCVXx1.029554xSolanaDFDVx1.014728xSolanaDHRx1.007056xSolanaDISx1xSolanaDJTx1xSolanaDOCNx1xSolanaDXCMx1xSolanaFBINx1xSolanaFIGUREAI1xSolanaGAWx1xSolanaGLDx1xSolanaGMEx1.005309xSolanaGOOGLx1.002377xSolanaHDx1.023299xSolanaHOODx1xSolana
The problem in one gesture

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.

MEASUREDreal holder, not your wallet
Reads the multiplier field only
SPACEX x 1 (stored field, never rolled forward)
Multiplier in force now
SPACEX x 5 (newMultiplier, effective time passed)

holder 4j2Y8P...hvnpA6 · mint PreANx...rHsfTh

How it works

Reads flow through one kernel.

REFUSED: stale multiplier
Your walletraw units
Mint historymultiplier events
Kernelshares at time T
Statement
Offline verifier
Watch keeper
Your walletraw units
Mint historymultiplier events
Kernelshares at time T. Stale reads are refused.
Statement
Offline verifier
Watch keeper
Green reads match the multiplier in force at that moment. Red is a stale read. The kernel refuses it.
Tolu, Lagos (illustrative)

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 chains, one primitive

Two implementations. One kernel.

Solana

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 kernel
one verifier
Robinhood Chain

ERC-8056 uiMultiplier()

The same idea behind an ERC-20 balanceOf and a view function.

194 stock tokens, multiplier read by selector 0xa60bf13d.

Compatibility probe

Who reads these tokens wrong.

Every row is a real response with a timestamp. Nothing was sent to any network.

ToolTokenReportsKernelVerdictAt
RPC getTokenSupplyOPENAI2826.008815162826.00881516AGREES2026-10-11T15:50:31Z
RPC getTokenSupplySPACEX43712.47150655543712.471506555AGREES2026-10-11T15:53:50Z
RPC getTokenSupplyAAPLx154264.8355216154264.8355216AGREES2026-10-11T15:57:07Z
RPC getTokenSupplyNVDAx321810.362165321810.362165AGREES2026-10-11T16:01:08Z
RPC getTokenSupplySPYx95774.9598434195774.95984341AGREES2026-10-11T16:04:40Z
RPC getTokenSupplyTSLAx229635.6273418229635.6273418AGREES2026-10-11T16:08:07Z
Robinhood Chain totalSupply()CRM165730987340000000000165921300011547413836RAW VS SCALED2026-10-11T16:11:42Z
Robinhood Chain totalSupply()P9157105000000000000091571050000000000000AGREES2026-10-11T16:11:42Z
Robinhood Chain totalSupply()CIEN73210000000000000007321000000000000000AGREES2026-10-11T16:11:43Z
For developers

One call, point in time.

curl -s -X POST /api/statement \
  -H 'content-type: application/json' \
  -d '{"wallet":"<address>","chain":"solana","asOfTs":1767225599}'

openapi.json · llms.txt

Business

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.

Try it on a real holder. No wallet needed.