Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/docs/for-operators/05-dvt.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ There are 2 ways to create validator keys:
- create keys alone
- create keys with a group using Distributed Key Generation (DKG) ceremony

Creating keys alone may be an option if you don't collaborate with anybody. In this case DVT may be used for additional robustness. When using SSV you can fully delegate validator duties to other entities (SSV operators) and do not mind running validators on your own. See [Obol page](obol-setup.md) and [SSV page](ssv-setup.md) for further instructions if you are creating keys alone.
Creating keys alone may be an option if you don't collaborate with anybody. In this case DVT may be used for additional robustness. When using SSV you can fully delegate validator duties to other entities (SSV operators) and do not mind running validators on your own. See [Obol page](../intro.mdx) and [SSV page](../intro.mdx) for further instructions if you are creating keys alone.

DKG is more secure and decentralized way because nobody has full control over validator keys. The document below is dedicated to DKG way.

Expand Down
1 change: 1 addition & 0 deletions docs/docs/for-operators/migrate-from-v2/02-gnosis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ After recovery add fake `deposit_data.json` file to your operator's vault direct

:::warning
**If you run keys from the Verihash operator before continuing, you must import them.**

:::

This can be done with the following command:
Expand Down
12 changes: 2 additions & 10 deletions docs/docs/protocol-overview-in-depth/02-vaults.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ All deposits, rewards distribution, and withdrawals are handled by smart contrac

Whenever users stake ETH into a particular Vault, that Vault contract accumulates all deposits and launches a new validator for every 32 ETH collected. 

[Read our guide about staking in Vaults ->](../guides/staking.md#staking-with-vaults)
[Read our guide about staking in Vaults ->](../guides/01-staking.mdx#staking-with-vaults)

Registering new validators in the Beacon Chain can take several weeks during times when many new staking deposits are being made. ETH staked in a Vault and used to create a validator will not start producing staking rewards until the validator passes the deposit queue and becomes active. This may cause a dilution in Vault's APY. 

Expand All @@ -57,15 +57,13 @@ All deposits, rewards distribution, and withdrawals are handled by smart contrac
If there isn't enough unbonded ETH in the Vault, a sufficient number of Vault validators will be automatically exited to provide enough ETH for unstaking. Since exiting validators from the Beacon Chain takes time, users who requested to unstake their ETH are placed in the exit queue. Once the exit queue is over, users can claim their unstaked ETH whenever they want. 

Users who requested to unstake ETH from a Vault and were placed into the exit queue will continue earning staking rewards until their ETH has been exited from staking. 

[Read our guide about unstaking ETH from Vaults ->](vaults.md#staking-and-unstaking)
</TabItem>
<TabItem value="gno">
**Staking and deposit queue**

Whenever users stake GNO into a particular Vault, that Vault contract accumulates all deposits and launches a new validator for every 1 GNO collected.&#x20;

[Read our guide about staking in Vaults ->](../guides/staking.md#staking-with-vaults)
[Read our guide about staking in Vaults ->](../guides/01-staking.mdx#staking-with-vaults)

Registering new validators in the Gnosis Beacon Chain can take several weeks during times when many new staking deposits are being made. GNO staked in a Vault and used to create a validator will not start producing staking rewards until the validator passes the deposit queue and becomes active. This may cause a dilution in Vault's APY.&#x20;

Expand All @@ -88,8 +86,6 @@ All deposits, rewards distribution, and withdrawals are handled by smart contrac
If there isn't enough unbonded GNO in the Vault, a sufficient number of Vault validators will be automatically exited to provide enough GNO for unstaking. Since exiting validators from the Gnosis Beacon Chain takes time, users who requested to unstake their GNO are placed in the exit queue. Once the exit queue is over, users can claim their unstaked GNO whenever they want.&#x20;

Note that users who requested to unstake GNO from a Vault and were placed into the exit queue stop earning staking rewards as soon as they are placed in the queue.&#x20;

[Read our guide about unstaking GNO from Vaults ->](vaults.md#staking-and-unstaking)
</TabItem>
</Tabs>
```
Expand Down Expand Up @@ -245,15 +241,11 @@ and a snapshot is taken every \~12 hours.
Solo Vaults are Public or Private Vaults where the Vault Admin is both the node operator and the depositor of ETH in the Vault.&#x20;

Solo Vaults can be configured to a solo staker's liking, including setting the fee to the desired level, choosing between the Smoothing Pool and Own Escrow for handling of MEV, opting for a tokenless Vault to avoid potentially taxable token swaps on deposits / withdrawals, etc.

[Read more about configuring a Vault ->](vaults.md#for-operators-of-vaults)
</TabItem>
<TabItem value="gno">
Solo Vaults are Public or Private Vaults where the Vault Admin is both the node operator and the depositor of GNO in the Vault.&#x20;

Solo Vaults can be configured to a solo staker's liking, including setting the fee to the desired level, choosing between the Smoothing Pool and Own Escrow for handling of MEV, opting for a tokenless Vault to avoid potentially taxable token swaps on deposits / withdrawals, etc.

[Read more about configuring a Vault ->](vaults.md#for-operators-of-vaults)
</TabItem>
</Tabs>
```
Expand Down
10 changes: 0 additions & 10 deletions docs/docs/protocol-overview-in-depth/03-os-token.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,6 @@ Liquid staking in StakeWise V3 is powered by osTokens - staked tokens that accru
**Buying osETH on DEXs**

Stakers who buy osETH on DEXs don't have exposure to any particular Vault and hence are fully insulated against any slashing losses and poor performance that may occur.&#x20;

[Read more about the excess backing of osETH ->](ostoken.md#overcollateralization)
</TabItem>
<TabItem value="osgno">
osGNO can be minted against any Gnosis node, including those that perform poorly.&#x20;
Expand Down Expand Up @@ -142,17 +140,13 @@ Liquid staking in StakeWise V3 is powered by osTokens - staked tokens that accru
Redemption of osETH for ETH always happens at the underlying exchange rate between the two tokens. The exchange rate is determined by StakeWise Oracles based on the performance of Vaults.

Redemption of osETH for ETH is instant if there is enough unbonded ETH in the protocol. If the amount of unbonded ETH is not enough to meet the volume of redemption requests, the protocol will exit validators to withdraw a sufficient amount of ETH for full redemption.&#x20;

[Read more about the osETH redemption mechanism ->](ostoken.md#redemption-mechanism)
</TabItem>
<TabItem value="osgno">
osGNO is backed by staked GNO in Vaults, and is redeemable for GNO in their validators.

Redemption of osGNO for GNO always happens at the underlying exchange rate between the two tokens. The exchange rate is determined by StakeWise Oracles based on the performance of Vaults.

Redemption of osGNO for GNO is instant if there is enough unbonded GNO in the protocol. If the amount of unbonded GNO is not enough to meet the volume of redemption requests, the protocol will exit validators to withdraw a sufficient amount of GNO for full redemption.&#x20;

[Read more about the osGNO redemption mechanism ->](ostoken.md#redemption-mechanism)
</TabItem>
</Tabs>
```
Expand Down Expand Up @@ -493,8 +487,6 @@ Liquid staking in StakeWise V3 is powered by osTokens - staked tokens that accru

The amount of osETH to be burned will equal the sum of the original amount minted plus the StakeWise DAO commission, which is set to 5% of the rewards osETH accumulated.

[Read more about the StakeWise DAO fee ->](ostoken.md#staking-fee)

Note that burning the full outstanding amount of osETH is necessary to fully unstake from the Vault. If less osETH is burned, user's ETH stake will be withdrawable only partially in order to maintain appropriate position health.&#x20;

The amount of ETH that can be unstaked immediately will be based on position health, where the osETH position must remain healthy (i.e. up to 90% of staked ETH in 90% LTV Vaults and up to 99.99% in 99.99% LTV Vaults) after some ETH has been unstaked. This is calculated by the following formula:
Expand Down Expand Up @@ -535,8 +527,6 @@ Liquid staking in StakeWise V3 is powered by osTokens - staked tokens that accru

The amount of osGNO to be burned will equal the sum of the original amount minted plus the StakeWise DAO commission, which is set to 5% of the rewards osGNO accumulated.

[Read more about the StakeWise DAO fee ->](ostoken.md#staking-fee)

Note that burning the full outstanding amount of osGNO is necessary to fully unstake from the Vault. If less osGNO is burned, user's GNO stake will be withdrawable only partially in order to maintain appropriate position health.&#x20;

The amount of GNO that can be unstaked immediately will be based on position health, where the osGNO position must remain healthy (i.e. up to 90% of staked GNO in 90% LTV Vaults and up to 99.95% in 99.95% LTV Vaults) after some GNO has been unstaked. This is calculated by the following formula:
Expand Down
189 changes: 84 additions & 105 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
@@ -1,151 +1,130 @@
import { themes as prismThemes } from "prism-react-renderer";
import type { Config } from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";
import { themes as prismThemes } from 'prism-react-renderer'
import type * as Preset from '@docusaurus/preset-classic'
import type { Config } from '@docusaurus/types'

// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)

const config: Config = {
title: "StakeWise Docs",
tagline: "Dinosaurs are cool",
favicon: "img/favicon.ico",
title: 'Welcome to StakeWise Docs',
tagline: 'Documentation and Guides',
url: 'https://docs.stakewise.io',
favicon: 'img/favicon.ico',
baseUrl: '/',
projectName: 'docs', // Usually your repo name.
organizationName: 'stakewise', // Usually your GitHub org/user name.

// Set the production url of your site here
url: "https://docs.stakewise.io",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/",
onBrokenLinks: 'warn',
onBrokenAnchors: 'throw',
onDuplicateRoutes: 'throw',
onBrokenMarkdownLinks: 'throw',

// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "stakewise", // Usually your GitHub org/user name.
projectName: "docs", // Usually your repo name.

onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",

// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en"],
defaultLocale: 'en',
locales: ['en'],
},

presets: [
[
"classic",
'@docusaurus/preset-classic',
{
docs: {
sidebarPath: "./sidebars.ts",
routeBasePath: "/",
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
sidebarPath: './sidebars.ts',
showLastUpdateTime: true,
routeBasePath: '/',
breadcrumbs: true,
},
// blog: {
// showReadingTime: true,
// feedOptions: {
// type: ["rss", "atom"],
// xslt: true,
// },
// // Please change this to your repo.
// // Remove this to remove the "edit this page" links.
// editUrl:
// "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
// // Useful options to enforce blogging best practices
// onInlineTags: "warn",
// onInlineAuthors: "warn",
// onUntruncatedBlogPosts: "warn",
// },
theme: {
customCss: "./src/css/custom.css",
customCss: require.resolve('./src/css/custom.css'),
},
} satisfies Preset.Options,
}
],
],

plugins: [
'./src/plugins/tailwind-config.js',
],

themeConfig: {
// Replace with your project's social card
image: "img/docusaurus-social-card.jpg",
tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 5 },
respectPrefersColorScheme: true,
image: 'img/og-image.png',

docs: {
sidebar: {
autoCollapseCategories: true,
},
},

navbar: {
title: "StakeWise Docs",
title: 'StakeWise Docs',
logo: {
alt: "My Site Logo",
src: "img/logo.svg",
alt: 'StakeWise Logo',
src: 'img/logo512.png',
height: 32,
width: 32,
style: {
marginRight: '12px',
},
},
items: [
{
label: 'Docs',
to: 'docs/intro',
type: "docSidebar",
sidebarId: "docsSidebar",
position: "left",
label: "Docs",
activeBaseRegex: `/docs/`,
sidebarId: 'docsSidebar',
},
{
label: "SDK",
position: "left",
sidebarId: "sdkSidebar",
label: 'SDK',
to: '/sdk/intro',
activeBaseRegex: `/sdk/`,
to: "/sdk/intro",
sidebarId: 'sdkSidebar',
},
{
label: "Contracs",
position: "left",
sidebarId: "contractsSidebar",
label: 'Contracs',
to: '/contracts/intro',
activeBaseRegex: `/contracts/`,
to: "/contracts/intro",
sidebarId: 'contractsSidebar',
},
{
href: "https://github.com/stakewise/docs",
label: "GitHub",
position: "right",
label: 'X',
href: 'https://x.com/stakewise_io',
position: 'right',
},
],
},
footer: {
style: "dark",
links: [
{
title: "Docs",
items: [
{
label: "Docs",
to: "/docs/intro",
},
],
label: 'Discord',
href: 'https://discord.com/invite/2BSdr2g',
position: 'right',
},
{
title: "Community",
items: [
{
label: "Stack Overflow",
href: "https://stackoverflow.com/questions/tagged/docusaurus",
},
{
label: "Discord",
href: "https://discordapp.com/invite/docusaurus",
},
{
label: "X",
href: "https://x.com/docusaurus",
},
],
label: 'Telegram',
href: 'https://t.me/stakewise_io',
position: 'right',
},
{
title: "More",
items: [
{
label: "GitHub",
href: "https://github.com/facebook/docusaurus",
},
],
},
type: 'html',
position: 'right',
value: `
<button
onclick="window.open('https://app.stakewise.io', '_blank')"
style="padding: 10px 20px; background-color: #846ab2; color: white; border: none; border-radius: 5px; cursor: pointer;"
>
Go to StakeWise
</button>
`,
}
],
copyright: `Copyright © ${new Date().getFullYear()} StakeWise`,
},

tableOfContents: {
minHeadingLevel: 2,
maxHeadingLevel: 5,
},
footer: {
copyright: `Copyright © ${new Date().getFullYear()} StakeWise Labs`,
},

prism: {
theme: prismThemes.github,
defaultLanguage: 'typescript',
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
Expand Down
Loading