The whole protocol, in one sitting.
Elute is an identity with a website attached. This page is the identity, the four things that can move a rate, and the two places the arithmetic deliberately refuses to guess.
Nothing is created and nothing is lost.
split(a): fee = a × 10 ÷ 10000 (floor) minted = a − fee settle(minted, r₀, rT): principal = rT ≤ r₀ ? minted : minted × r₀ ÷ rT gross = minted − principal yieldFee = gross × 500 ÷ 10000 (floor) yieldNet = gross − yieldFee
Exactly one division decides the split, and every other quantity is what remains after it. The natural way to write this — dividing for the principal and dividing again for the yield — produces two floors of parts that must sum to a whole, and they do not. The engine suite runs four thousand random positions through that version and it comes up short on essentially all of them.
principal + yield + fee ≡ minted
merge is free and never blocked
the yield fee never touches the principal
Four things, and only one of them is yours.
0 to +300 bps
zero, or too small to be anything
-500 to 0 bps
anything else
The bands cannot overlap, so there is never a move a keeper could plausibly call either thing — which is the only reason nobody has to be trusted here.
Stated first, not buried.
The principal is a claim on tokens, not on SOL
The yield token can end at zero
We do not run the stake pools
There is no on-chain program yet
Read it yourself.
/statewhat the ledger is, starting with what is real about it/poolsthe 8 pools, their rates, and every classified move/positionsevery position, marked against the rate its pool is reading now/auditthe books re-added from each position rather than from the summary/logthe raw event log, so the whole thing can be replayed with your own code⚠ an annualised figure is withheld until the observation window is at least 6 hours. Two readings minutes apart annualise to something absurd, and an APY that swings by hundreds of percent because the sample was short looks exactly like an asset doing that.
See it classifying →