Stock Ledger Read the docs
Corporate actions layer for tokenized equities

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.

Named for Apple, wearing Robinhood 4 contracts
AddressBytecodeuiMultiplier()
0xaf3d…93f9 283 B 1.000566080
0x7f7d…8d9c44 Bnone
0xd2bb…2fba344 Bnone
0x8ab3…777745 Bnone

Same name, same bullet, same ticker. One of them carries the dividend. Checked 28 August 2026.

0

contracts carry “Robinhood Token” in the name, on 28 August 2026. The count moves.

0

of them are real: a 283 byte proxy reading its implementation from one beacon contract.

0

corporate actions in the whole history of the chain, across nine contracts. The chain keeps balances. Nobody keeps the book.

01 · The document

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.

02 · What Robinhood got right

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.

03 · The register, first page

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.

TickerFromToEffectiveBlock
WEEK1.0000000002.00000000023 Jun 14:58154,326
WEEK2.0000000001.00000000023 Jun 15:13154,448rolled back
WEEK1.0000000001.00309126224 Jun 22:10176,471
WEEK1.0030912622.00618252429 Jun 13:30242,671
WEEK1.0030912622.00618252429 Jun 13:30394,227same event again
CRWD1.0000000004.0000000002 Jul 13:30978,630
CRWD1.0000000004.0000000002 Jul 13:301,231,096same event again
SGOV1.0000000001.0009575208 Jul 20:144,629,631
MU1.0000000001.00007482324 Jul 15:1018,239,875
ORCL1.0000000001.00221091527 Jul 15:1020,823,272
DELL1.0000000001.0000637093 Aug 15:1026,853,518
ASML1.0000000001.0001013236 Aug 15:1029,439,914
SGOV1.0009575201.0029815197 Aug 15:1030,302,195
COST1.0000000001.00061204010 Aug 15:1032,889,913
AAPL1.0000000001.00056608014 Aug 15:1236,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.

04 · Reading the log

Fifteen lines, and three of them are not dividends.

Seven plain ones

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.

One correction

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.

Two repeats

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.

05 · Identity

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.

06 · Who is exposed today

The mechanism is fine. The gaps around it have addresses.

Anyone mapping a ticker to a contract
One ticker, 1,130 answers, four of them wearing the issuer's own naming. Pick wrong and you are quoting a contract that can never receive a corporate action.
Anyone replaying the log
Two of the fifteen events are repeats. Read absolute values and you are fine. Compute deltas and compound them and you are off by a factor of four.
Liquidity providers
A pool prices from raw reserves, and raw reserves are what the multiplier does not touch, so at the step the pool still quotes the old ratio. This one follows from the mechanics, it has not been measured.
Anyone holding tokens for someone else
A pool holds the tokens, the depositor holds the claim. When the multiplier steps there is no on chain record of who carried the exposure, so there is nothing to allocate and nothing to audit afterwards.
07 · What Stock Ledger does

Four things, none of them magic.

Map

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.

See the log

Registry

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.

Event model

Snapshot

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.

How a snapshot works

Rail

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.

The rail

08 · One cycle, end to end

From declaration to the step.

StageWhat happens off chainWhat Stock Ledger does
DeclarationThe board declares an amount and the dates.The event is written to the registry against a mapped contract, with its source filing.
Record dateThe 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 timeNothing moves in any balance.The step is recorded, deduplicated against repeats, and the holder snapshot is taken at that block.
After the stepAnything 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.
LaterThe cycle repeats next quarter.Snapshot, factors and allocations stay published for anyone to recheck.
09 · Verification

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.

10 · Boundaries

What Stock Ledger is not.

Not an issuer
We do not mint wrappers and we do not hold shares.
Not a custodian
The shares sit somewhere else, with someone licensed to hold them.
Not an exchange
We do not match buyers and sellers and we take nothing off the trade.
Not a price feed
Price is a separate problem and a separate layer, and that one is already solved.
Not a replacement for the multiplier
Robinhood's mechanism works and we say so first. We keep the record around it.

Venues issue and trade. Stock Ledger keeps the book and reconciles it.

11 · The bet

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.