Splits, mergers and what actually changes
A split changes nothing about what a holder owns and everything about the numbers describing it. Under ERC-8056 it changes even less than you would expect: the balance in the contract does not move at all.
What a four for one split looks like
This is not hypothetical. CRWD carries exactly this step in the log, from 1.000000000 to 4.000000000.
| Before | After | |
|---|---|---|
| Your balance in the contract | 100 | 100 |
| uiMultiplier() | 1.000000000 | 4.000000000 |
| Shares standing behind them | 100 | 400 |
| Price per underlying share | $400.00 | $100.00 |
| Value of the position | $40,000 | $40,000 |
Nothing was transferred, no balance was rewritten, and the oracle price of
the token did not jump, because the feed already includes the multiplier. Anything reading
balanceOf() alone sees an unchanged number and concludes, wrongly, that no event happened.
Why the factor is published before the event
A consumer that stores its own price or position history needs the factor to normalise it, and it needs it before the step rather than after. The registry publishes the cumulative factor per contract so a stored series can be adjusted without refetching it.
Mergers
A merger ends the wrapper: the underlying share is exchanged for cash, stock, or both. How this is
handled on chain is not described in the issuer documentation we have, and we are not going to invent
it. The registry marks a contract terminated when it stops being redeemable and records
what the position converted into, once that is known from a public announcement.
Ordering. When a ratio event and a cash event share an effective time, the ratio applies first and the cash amount is expressed in post split terms. The registry states the order explicitly on every affected event rather than leaving it to be inferred.