The register is
fifteen lines long.
542 contracts on this chain call themselves a Robinhood Token. 194 of them actually are. Nine have ever received a corporate action, fifteen events in total, and there is no second copy of that log to check them against. The mechanism works. The record around it does not exist yet.
Same name, same bullet, same ticker. One of them carries the dividend. Checked 28 August 2026.
contracts carry “Robinhood Token” in the name, on 28 August 2026. The count moves.
of them are real: a 283 byte proxy reading its implementation from one beacon contract.
corporate actions in the whole history of the chain, across nine contracts. The chain keeps balances. Nobody keeps the book.
A company does not pay the market.
It pays the book.
Every company keeps a register of who owns it. Not an accounting nicety: it is the document that answers one question, who gets paid.
When a board declares a dividend it does not go looking for shareholders in the market. It takes the register at the record date and pays the names written in it. Holder of record exists because a market needs one answer, at one moment, to the question of whose the payment is.
The dividend does reach the holder. Start there.
Stock tokens on this chain implement ERC-8056. In Robinhood's own words, the platform “manages dividends and stock splits through an onchain multiplier, which adjusts the shares-per-token ratio while keeping your raw balance static until redemption”, and “onchain swaps remain unaffected, and the oracle automatically incorporates the multiplier into the price”.
It is not a promise, it has run. The Apple dividend was applied on 14 August 2026 at block 36,345,344: the multiplier went from 1.000000000 to 1.000566080 and every holder of that token was worth more from that block on, without a single transfer. Anyone claiming the payment does not arrive has not read the log.
The value moved. The balance did not. Everything outside the token has to be told separately, and not everything is listening.
Every corporate action this chain has ever seen.
Not a sample. This is the complete log of UIMultiplierUpdated from genesis to today:
fifteen events across nine contracts, in four months of the chain being live.
| Ticker | From | To | Effective | Block | |
|---|---|---|---|---|---|
| WEEK | 1.000000000 | 2.000000000 | 23 Jun 14:58 | 154,326 | |
| WEEK | 2.000000000 | 1.000000000 | 23 Jun 15:13 | 154,448 | rolled back |
| WEEK | 1.000000000 | 1.003091262 | 24 Jun 22:10 | 176,471 | |
| WEEK | 1.003091262 | 2.006182524 | 29 Jun 13:30 | 242,671 | |
| WEEK | 1.003091262 | 2.006182524 | 29 Jun 13:30 | 394,227 | same event again |
| CRWD | 1.000000000 | 4.000000000 | 2 Jul 13:30 | 978,630 | |
| CRWD | 1.000000000 | 4.000000000 | 2 Jul 13:30 | 1,231,096 | same event again |
| SGOV | 1.000000000 | 1.000957520 | 8 Jul 20:14 | 4,629,631 | |
| MU | 1.000000000 | 1.000074823 | 24 Jul 15:10 | 18,239,875 | |
| ORCL | 1.000000000 | 1.002210915 | 27 Jul 15:10 | 20,823,272 | |
| DELL | 1.000000000 | 1.000063709 | 3 Aug 15:10 | 26,853,518 | |
| ASML | 1.000000000 | 1.000101323 | 6 Aug 15:10 | 29,439,914 | |
| SGOV | 1.000957520 | 1.002981519 | 7 Aug 15:10 | 30,302,195 | |
| COST | 1.000000000 | 1.000612040 | 10 Aug 15:10 | 32,889,913 | |
| AAPL | 1.000000000 | 1.000566080 | 14 Aug 15:12 | 36,345,344 |
Chain 4663, block 48,447,297, 28 August 2026. Reproduce it with one call: eth_getLogs over
the topic 0x2205df4534432b2f60654a3fdb48737ffdaf3e9edb1a498bd985bc026b15b055 with no
address filter. Effective times are UTC.
Fifteen lines, and three of them are not dividends.
Ordinary accruals
MU, ORCL, DELL, ASML, COST, AAPL and the second SGOV step are what the mechanism is for: a small move in the fourth decimal, on the day the payment was due, applied once.
WEEK went to 2.0 and back
Set to 2.000000000, then returned to 1.000000000 fifteen minutes later. A new mechanism gets corrections, and a correction in a register is normal. What is not normal is that there is no second copy of the register to correct it against.
The same event, logged twice
WEEK and CRWD each carry two events with identical values and the same effective time, emitted at different blocks. An integrator reading absolute values lands in the right place. One computing a delta and multiplying arrives at sixteen instead of four.
Neither the ticker nor the name is an identifier.
Search this chain for AAPL and 1,130 contracts answer. Four of them carry Apple's name in Robinhood's own style, three of those down to the bullet in “Apple • Robinhood Token”. One is the 283 byte proxy that carried the August dividend. The other three are 44 and 45 byte contracts with no multiplier at all.
Across the chain, 542 contracts wear that name and 348 of them are not it. Among the impostors: several NVIDIA, a Tesla, about a dozen GameStop, an Eli Lilly, a Trump Media. The only reliable test is the bytecode, a 283 byte proxy pointing at one beacon, and to apply that test you already have to know the answer.
The mechanism is fine. The gaps around it have addresses.
Four things, none of them magic.
The contract map
Which address is real, who issued it, whether it implements ERC-8056, whether it can accept a corporate action at all. Ticker to address, address to issuer, issuer to the way events are handled.
Events, reconciled
Every step with its value, its effective time and the issuer announcement it came from. Repeats marked as repeats, corrections marked as corrections, in one machine-readable format across issuers.
Holders at the effective time
Who held how much at the moment the multiplier changed, address by address, with pool and vault positions resolved down to the end claim where that is possible.
Distribution and factors ahead of time
Where the issuer pays in stablecoin, the distribution follows the snapshot. Where the issuer accrues into the multiplier, the same snapshot tells a pool or a vault who is owed what.
From declaration to the step.
| Stage | What happens off chain | What Stock Ledger does |
|---|---|---|
| Declaration | The board declares an amount and the dates. | The event is written to the registry against a mapped contract, with its source filing. |
| Record date | The issuer fixes the holders of record in its own books. | The coming factor is published before the step rather than read out of a log after it. |
| Effective time | Nothing moves in any balance. | The step is recorded, deduplicated against repeats, and the holder snapshot is taken at that block. |
| After the step | Anything reading the multiplier shows the new value. Anything reading the raw balance shows the old one. | Pools and vaults get the list of who carried the exposure and what each one is owed. |
| Later | The cycle repeats next quarter. | Snapshot, factors and allocations stay published for anyone to recheck. |
Check it without us.
The log is one call away
Every number in the table above comes from a single eth_getLogs over one topic. Run it
and you get the same fifteen lines, or you get more and we are behind.
The map is bytecode, not opinion
Real or not is decided by 283 bytes and one beacon address, both readable with
eth_getCode. No trust required, and no naming convention involved.
Snapshots reproduce
A snapshot names a block. Anyone with a node can rebuild the same list of holders from public state and diff it against ours, line by line.
Infrastructure usually asks to be trusted. Here you open the list instead. The checks that produced every figure on this page are published, run against public RPC, and take no key of ours.
What Stock Ledger is not.
Venues issue and trade. Stock Ledger keeps the book and reconciles it.
Shares moved on chain.
The book follows.
The hard part of tokenization was never getting the value on chain. That part is done: the multiplier is written, the oracle is correct, the August dividend really landed.
What is not done is the record. Which contract is the real one, which line in the log is a repeat, who held the exposure when the factor changed, and what each of them is owed. Every issuer answers that privately, in its own format, and everyone downstream guesses.
A register per share is always one. Not because a second is impossible, but because a second is meaningless: the point of the book is that it is the book. Whoever keeps it is wired into everyone and takes nothing from anyone.