Elute
connect
Liquid staking · Solana

One token in. Two
fractions out  stake and reward.

A liquid staking token is a mixture: a fixed quantity of SOL, and every epoch of reward that lands before you sell. Held together they trade as one price. Elute runs the token through a column and collects the two separately — take the principal fraction, take the yield fraction, sell either, and pour both back for the deposit, whole and free, whenever you like.

8 stake pools read straight from their own accounts · split 10 bps · merge free, always · non-custodial

From the ledger
Pools
Readings
Open
Accountant
Chain reads
not answering · the ledger service gave no figures, so these are not measurements
01What holds it together

The two halves add up, exactly.

Deposit a base units at rate r₀. At maturity, against the final rate rT, the principal redeems what the deposit was worth on the day it went in and the yield redeems everything the rate earned on top:

principal = minted × r₀ ÷ rT
yield     = minted − principal

principal + yield + fee ≡ minted

That last line is an identity, not a target. One side is divided; the other is what is left. Writing both as divisions is the obvious way to do it and it loses a base unit on essentially every input — dust in the vault that belongs to nobody. The engine is arranged so the remainder cannot exist.

A worked hundred, by the engine
deposited
100.000000 LST
split fee (10 bps)
0.100000
minted, of each token
99.900000
Settled after a 5% rate rise
p
99.900000
y
0.000000
yield fee (5% of the drip)
0.000000
99.900000 + 0.000000 + 0.000000 = 99.900000
minted was 99.900000 — the yield token is entitled to 0.00% of the position at this rate.
02The hard part

The chain does not say why the rate moved.

A stake pool publishes two numbers, and their ratio is the redemption rate. That ratio moves when rewards land, when MEV tips land, when a validator is slashed, when the manager changes the fee, and when something happens that nobody has explained yet. The first two belong to the yield token. The rest do not. Nothing on chain labels them.

Yield
0 → +300 bps

A Solana epoch is about two days and pays six to eight basis points. Three hundred is forty epochs arriving at once, and that is not a reward.

Flat
too small to matter

A big pool's totals round by dust on every deposit — jitoSOL moved 145 parts in 1.3×10¹⁸ between two readings. Nine orders below a real reward, so it is noise, not a mystery.

Loss
−500 → 0 bps

Slashing or a commission change. It comes off the yield token first, all the way to zero, before it ever touches the principal.

Unclassified
anything else

The accountant stops. The rate reads null, not stale, and nothing settles against it until a person resolves it.

The bands cannot overlap — every possible move is exactly one of those four, and there is no judgement call for a keeper to sell. When a move lands in the gap between them, the oracle refuses to name it and says so in the same read, so nothing can settle against a number that is quietly wrong.

Watch the accountant →
03Read from the source

No price feed. The pool's own numbers.

Each rate below is total lamports divided by pool tokens outstanding, decoded from the stake pool's account on mainnet. Every pool was accepted only when the mint stored inside the account matched the mint listed beside it — a wrong byte offset that happens to produce a believable number is the failure worth guarding against.

Pools · rate read from the stake pool accountreading…
PoolRate (SOL per token)EpochAnnualisedState
reading the chain…
reading the chain…
reading the chain…

⚠ an annualised figure appears only once the observation window is long enough to mean something. A dash is a window, not a zero.

04What is real here

And what is not, in the same breath.

Real
The rates.

Read from mainnet stake pool accounts every minute, with the epoch each pool last updated in. Nothing is sampled from a price API and nothing is smoothed.

Real
The arithmetic.

The engine on this page is the engine the ledger runs and the engine the tests attack. The identity holds in base units on every input, and the suite proves the naive version does not.

Not real
The tokens.

There is no on-chain program yet. Nothing is minted, nothing is custodied, and no transaction is ever signed. A position here is bookkeeping against a real rate, and the ledger says so in the first field it returns.