osToken redemptions#106
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR expands and refines the osToken documentation by adding a dedicated “osToken Redemptions” page, rewriting key parts of “How osToken Works”, and updating multiple cross-links/navigation entries to point at the new/updated sections.
Changes:
- Added a new
osToken Redemptionsdoc and included it in the osToken sidebar. - Reworked
How osToken Worksstructure/content (LTV, exchange rate, redemption/liquidation, burning) and updated related deep links. - Updated a few staker/protocol/operator docs for revised anchors and minor UI/icon adjustments.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| staker/vault-staking.mdx | Updates “Position Health” links to new anchors in osToken docs. |
| staker/risks.mdx | Updates osETH depeg explanation link to the new redemption anchor. |
| sidebars.ts | Adds the new osToken redemptions doc to navigation. |
| operator/start-operator.mdx | Swaps the checklist icon asset. |
| docs/docs/stakewise-protocol/what-is-stakewise.mdx | Updates oracle “Token Stability” deep link to the exchange rate section. |
| docs/docs/ostoken/ostoken-redemptions.mdx | Adds new documentation explaining the redemption mechanism and flow. |
| docs/docs/ostoken/intro.mdx | Updates osToken intro copy for clarity and positioning. |
| docs/docs/ostoken/how-ostoken-works.mdx | Major rewrite/restructure of the osToken mechanics page. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: ulieth <uliana.eth@proton.me>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: ulieth <uliana.eth@proton.me>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: ulieth <uliana.eth@proton.me>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: ulieth <uliana.eth@proton.me>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: ulieth <uliana.eth@proton.me>
| Minting involves staking assets into a Vault and issuing osTokens against those staked assets acting as collateral. Minting limits are in place to ensure each issued token is fully backed. These limits are set by the **Loan-to-Value (LTV) ratio**. | ||
|
|
||
| ### Loan-to-Value Limits | ||
| The osToken **exchange rate** is the ratio between the total assets backing osToken and its total supply. It rises as staking rewards accrue, making each osToken worth more of the underlying asset over time. |
There was a problem hiding this comment.
нет, The osToken exchange rate is the amount of the underlying asset that a user receives from StakeWise when redeeming the osToken.
| |----------------|------------------|----------------|----------------------------------| | ||
| | Standard | 90% LTV | 90% LTV | 10% overcollateralization buffer | | ||
| | DAO-Approved | 99.99% LTV | 99.95% LTV | 5M SWISE operator bond | | ||
| If a position becomes thinly collateralized, **liquidations** act as a last resort to restore its collateralization. When a user wants to exit voluntarily, **burning** osToken returns it to the Vault and unlocks the underlying stake. |
There was a problem hiding this comment.
When a user no longer needs the osToken, burning it unlocks the underlying stake. If osTokens remain minted but become thinly collateralized, liquidations act as a last resort to restore healthy collateralization.
| ### Position Health | ||
|
|
||
| Position health is continuously tracked through LTV thresholds: | ||
| Each minter's position falls into one of four grades — Healthy, Moderate, Risky, Unhealthy — based on how close LTV is to the mint cap and the liquidation threshold. In **DAO-approved Vaults** these thresholds don't apply. |
There was a problem hiding this comment.
based on how close LTV is to the liquidation threshold.
|
|
||
| Users can maintain healthy positions by keeping LTV well below limits, adding more collateral, or burning osToken. | ||
| In 99.99% (osETH) / 99.95% (osGNO) Vaults, redemptions and liquidations do not apply, positions remain healthy by design. | ||
| osToken exchange rate is the canonical conversion rate between osToken and the underlying staked asset (ETH or GNO): |
|
|
||
| ## Burning | ||
| ``` | ||
| exchange rate = total assets backing osToken / total osToken supply |
| A portion of this profit (`feePercent`) is minted as new osToken to the DAO treasury; the remainder grows the exchange rate for all holders. | ||
|
|
||
| The protocol calculates the **maximum unstakable ETH** as: | ||
| Only the [`Keeper` ↗](https://etherscan.io/address/0x6B5815467da09DaA7DC83Db21c9239d98Bb487b5) contract — the rewards aggregator for StakeWise's decentralized oracle network — can update `avgRewardPerSecond`. Off-chain, oracles identify the most exposed user (highest LTV across all Vaults) and match `avgRewardPerSecond` to that user's Vault APY. |
There was a problem hiding this comment.
(highest LTV across DAO-approved 100% LTV Vaults)
| {\small MaxUnstakeableETH = StakedETH - \dfrac{osETHMinted \times ExchangeRate}{0.9}} | ||
| $$ | ||
| ::: | ||
| This guarantees osToken appreciation never outpaces the collateral backing it: even the most exposed position grows fast enough to stay solvent. When necessary, oracles adjust `avgRewardPerSecond` downward so osToken appreciation stays conservative relative to actual collateral performance. |
|
|
||
| After unstaking **41.667 ETH**, Bob's position health = **90%** | ||
| ::: | ||
| StakeWise manages them through the [`OsTokenRedeemer` ↗](https://etherscan.io/address/0xc43A7b16A7a167c0318390Cba16787C11e9e1FD0) contract. Vaults version 1 (mainnet only) retain a permissionless mechanism that's currently disabled. |
| Redemption acts as early intervention when positions drift toward risky erosion of collateral, | ||
| while liquidation serves as the last resort for closing thinly collateralized positions. | ||
| Together, they create arbitrage opportunities that keep osToken's market price closely aligned with its fair exchange rate. | ||
| ### Permissionless Redemption |
|
|
||
| The **fair exchange rate** is the amount of assets a user can receive when redeeming osToken within the protocol. | ||
| As rewards accrue, the redemption value increases, creating the "repricing" effect where each osETH becomes worth more ETH over time. | ||
| Users can burn any amount: a full burn clears the entire debt, while partial burns reduce debt, improve LTV, or free up a portion of the stake. Protocol fees accrue automatically into the position over time, so a full burn includes the original mint plus accrued fees. The burn amount is calculated at the current protocol exchange rate. |
|
|
||
| <div id="fn-1" style={{fontSize: '0.85em', color: 'var(--ifm-color-content-secondary)', marginTop: '2rem', listStyle: 'none', fontFamily: 'Fragment Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace'}}> | ||
| <span>1.</span> DAO-approved Vault requirements: minimum 10,000 ETH staked, maximum 5% Vault fee, consistently above-median network performance, latest Vault version deployed, and 5M SWISE tokens locked as slashing insurance. <a href="#fnref-1" style={{color: 'var(--ifm-color-content-secondary)', textDecoration: 'none'}}>↩</a> | ||
| </div> |
There was a problem hiding this comment.
nado by dobavit' text pro to, chto ves svoj stake iz Vaulta mozhno zabrat' tolko polnostju zaburniv svoju osToken poziciju
| # osToken | ||
|
|
||
| osToken is a liquid staking token that accrues staking rewards when held. It is a generic name for StakeWise's network-specific ERC-20 tokens: | ||
| Staked ETH and GNO earn rewards, but the stake itself is a non-transferable share of the staking pool. osToken turns that stake into a transferable asset that can be [used across DeFi ↗](https://app.stakewise.io/ecosystem) to earn additional rewards. |
There was a problem hiding this comment.
ETH and GNO staked in a Vault earn rewards, but the stake itself is a non-transferable share of the Vault's staking pool.
|
|
||
| Redemptions are an in-protocol peg-maintenance mechanism that converts osToken back to ETH or GNO at the protocol [exchange rate](/docs/ostoken/how-ostoken-works#exchange-rate). | ||
|
|
||
| Every osToken is minted against Vault collateral and must remain backed by that collateral. The minter takes on a corresponding debt against their Vault collateral and can burn the osToken at any time to repay the debt. The protocol's invariant is **total osToken supply = total debt**. |
There was a problem hiding this comment.
minted against Vault collateral (user's stake in the Vault)
can burn the osToken at any time to repay the debt and withdraw their stake
ubrat' predlozhenie pro invariant
|
|
||
| Every osToken is minted against Vault collateral and must remain backed by that collateral. The minter takes on a corresponding debt against their Vault collateral and can burn the osToken at any time to repay the debt. The protocol's invariant is **total osToken supply = total debt**. | ||
|
|
||
| If the minter transfers the osToken away, the minter's on-chain debt is unchanged. From the protocol's perspective: the minter owes `X` osToken worth of debt, but only `Y < X` is still in their hands. The delta `X − Y` is what the protocol calls **redeemable** — osToken that exists somewhere but is no longer tied to a minter. |
There was a problem hiding this comment.
the minter's on-chain debt in the Vault is unchanged.
no longer tied to the minter.
| 5. Compute `redeemable = minted − kept`, split it across the user's Vaults proportionally to where they minted, and sort by LTV descending then amount descending so the riskiest positions are drawn down first. | ||
| ::: | ||
|
|
||
| ### 2. osToken Enters the Queue |
There was a problem hiding this comment.
propuskaem tut poidee shag gde osToken byl kuplen s rynka pered tem kak byt' otpravlennym v kontrakt?
|
|
||
| `positionTicket = (all previously processed shares) + (shares already queued ahead)` | ||
|
|
||
| The queue drains as the contract processes redemptions, moving shares from *queued* to *redeemed*. Redeemed shares are matched with ETH/GNO but can't be claimed yet — that requires a checkpoint. |
|
|
||
| :::custom-info[Position Health] | ||
| If you mint osETH, your position gets a [health score](/docs/ostoken/how-ostoken-works#position-health) based on how much osETH you've minted relative to your staked ETH (the <Tooltip content="The ratio of minted osETH value to your staked ETH. The higher the LTV, the closer your position is to redemption or liquidation.">Loan-to-Value ratio</Tooltip>). There are four health levels — healthy, moderate, risky, and unhealthy. If your position becomes unhealthy, it may be subject to [redemption or liquidation](/docs/ostoken/how-ostoken-works#peg-maintenance). You can improve it anytime by burning osETH or adding more stake. | ||
| If you mint osETH, your position gets a [health score](/docs/ostoken/how-ostoken-works#ltv-ratio) based on how much osETH you've minted relative to your staked ETH (the <Tooltip content="The ratio of minted osETH value to your staked ETH. The higher the LTV, the closer your position is to redemption or liquidation.">Loan-to-Value ratio</Tooltip>). There are four health levels — healthy, moderate, risky, and unhealthy. If your position becomes unhealthy, it may be subject to [redemption](/docs/ostoken/how-ostoken-works#redemption) or [liquidation](/docs/ostoken/how-ostoken-works#liquidation). You can improve it anytime by burning osETH or adding more stake. |
There was a problem hiding this comment.
unhealthy -> liquidation
risky -> redemption
No description provided.