diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 00000000..3c032078
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+18
diff --git a/README.md b/README.md
index 471571f6..e5c0bf88 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@
❗ **Note:** This is a fork of [Vercel Docs](https://github.com/vercel/turbo/tree/main/docs).
-This repository serves as the **documentation** for the **[Tangle Network](https://www.Tangle.tools/)** . The docs are written in [MDX](https://mdxjs.com/) format an extension of [markdown](https://www.markdownguide.org/), processed by [Nextra](https://github.com/shuding/nextra/tree/main), and published to Webb Docs. For support on using Nextra see [https://nextra.site/docs].(https://nextra.site/docs)
+This repository serves as the **documentation** for the **[Tangle Network](https://www.tangle.tools/)** . The docs are written in [MDX](https://mdxjs.com/) format an extension of [markdown](https://www.markdownguide.org/), processed by [Nextra](https://github.com/shuding/nextra/tree/main), and published to Webb Docs. For support on using Nextra see [https://nextra.site/docs].(https://nextra.site/docs)
### Directory structure
diff --git a/components/LandingPage.tsx b/components/LandingPage.tsx
index a34ca7b8..88c65ce7 100644
--- a/components/LandingPage.tsx
+++ b/components/LandingPage.tsx
@@ -1,5 +1,4 @@
import Image from "next/image";
-import DocsLandingGraphic from "../public/images/DocsLandingGraphic.png";
import { SiBlueprint } from "react-icons/si";
import { GiToken } from "react-icons/gi";
import { FaWallet } from "react-icons/fa";
@@ -57,8 +56,8 @@ const resourcesCards = [
},
{
icon: ,
- title: "Tangle App",
- description: "Nominate your TNT at Tangle App",
+ title: "Tangle DApp",
+ description: "Nominate your TNT at Tangle DApp",
link: "http://app.tangle.tools/",
},
{
diff --git a/components/NetworkResources.tsx b/components/NetworkResources.tsx
index 0a33433b..578c11af 100644
--- a/components/NetworkResources.tsx
+++ b/components/NetworkResources.tsx
@@ -14,19 +14,19 @@ const NETWORK_DATA = {
mainnet: [
{ property: "Interfaces and Apps", value: "" },
{
- property: "Tangle App",
+ property: "Tangle DApp",
value: {
type: "link",
url: "https://app.tangle.tools",
- text: "Tangle App",
+ text: "app.tangle.tools",
},
},
{
- property: "Polkadot Apps",
+ property: "PolkadotJS Apps",
value: {
type: "link",
url: "https://polkadot.js.org/apps/?rpc=wss://rpc.tangle.tools#/explorer",
- text: "Tangle on Polkadot Apps",
+ text: "polkadot.js.org/apps/?rpc=wss://rpc.tangle.tools",
},
},
{ property: "Block Explorers", value: "" },
@@ -35,7 +35,7 @@ const NETWORK_DATA = {
value: {
type: "link",
url: "https://explorer.tangle.tools",
- text: "Explorer.Tangle.Tools",
+ text: "explorer.tangle.tools",
},
},
{
@@ -43,7 +43,7 @@ const NETWORK_DATA = {
value: {
type: "link",
url: "https://tangle.statescan.io/",
- text: "Tangle on Statescan",
+ text: "tangle.statescan.io",
},
},
{ property: "Asset Details", value: "" },
@@ -87,7 +87,7 @@ const NETWORK_DATA = {
value: {
type: "link",
url: "https://github.com/tangle-network/tangle",
- text: "Tangle Repository",
+ text: "github.com/tangle-network/tangle",
},
},
],
@@ -98,7 +98,7 @@ const NETWORK_DATA = {
value: {
type: "link",
url: "https://app.tangle.tools",
- text: "App.Tangle.Tools",
+ text: "app.tangle.tools",
},
},
{ property: "Block Explorers", value: "" },
@@ -107,7 +107,7 @@ const NETWORK_DATA = {
value: {
type: "link",
url: "https://testnet-explorer.tangle.tools",
- text: "Testnet-Explorer.Tangle.Tools",
+ text: "testnet-explorer.tangle.tools",
},
},
{
@@ -115,7 +115,7 @@ const NETWORK_DATA = {
value: {
type: "link",
url: "https://tangle-testnet.statescan.io/",
- text: "Tangle Testnet on Statescan",
+ text: "tangle-testnet.statescan.io",
},
},
{ property: "Asset Details", value: "" },
@@ -156,7 +156,7 @@ const NETWORK_DATA = {
value: {
type: "link",
url: "https://github.com/tangle-network/tangle",
- text: "Tangle Repository",
+ text: "github.com/tangle-network/tangle",
},
},
],
diff --git a/components/QuickStart.tsx b/components/QuickStart.tsx
index b57b9045..2843e4df 100644
--- a/components/QuickStart.tsx
+++ b/components/QuickStart.tsx
@@ -62,7 +62,7 @@ export const DappsArea = () => {
feature={{
Icon: CubeIcon,
description: `Private cross-chain bridge. Dedicated UI for moving digital assets privately cross-chain.`,
- name: "Hubble Bridge dApp",
+ name: "Hubble Bridge DApp",
}}
href="https://app.webb.tools"
/>
@@ -70,7 +70,7 @@ export const DappsArea = () => {
feature={{
Icon: BeakerIcon,
description: `Our easy-to-use testnet faucet allows you to claim test tokens with just a few clicks. Start experimenting with Hubble Bridge today.`,
- name: "Faucet dApp",
+ name: "Faucet DApp",
}}
href="https://faucet.tangle.tools"
/> */}
@@ -78,7 +78,7 @@ export const DappsArea = () => {
feature={{
Icon: ChartSquareBarIcon,
description: `Monitor Hubble Bridge activities and the growth of Webb's cross-chain private transaction system.`,
- name: "Hubble Stats dApp",
+ name: "Hubble Stats DApp",
}}
href="https://hubble-stats.webb.tools"
/>
@@ -100,7 +100,7 @@ export const DappsAreaBridge = () => {
{
-**You should be familiar with [account management basics](/account-manage) before proceeding, and ensure you're connected to the correct network, Tangle Network.**
+
+**You should be familiar with [account management basics](/network/account-manage) before proceeding, and ensure you're connected to the correct network: Tangle Network.**
Becoming a validator on a decentralized network like Tangle is a big responsibility and a fairly technical process. **You are accountable for both your stake and the stake of your nominators. Any errors could lead to slashing of tokens, impacting your balance and reputation.** However, there are also rewards - you help secure a decentralized network and can grow your stake through nominations.
@@ -22,7 +22,7 @@ Generally, the process for becoming a validator involves three steps:
1. **Bonding Tokens:** Before a node can become a validator, the node operator usually needs to bond (or stake) a certain amount of tokens. This is a way of putting up collateral that can be slashed (or forfeited) if the validator behaves maliciously or fails to properly validate transactions and blocks. Bonding is a way of ensuring that validators have a vested interest in properly maintaining the network.
-
+
**How much TNT do I need to be an active Validator?**
To be elected to the active validator set (to recieve block rewards), you need a minimum stake behind your validator. This can come from yourself or nominators. This means at a minimum, you'll need enough TNT for stash and staking accounts with the existential deposit, plus extra for fees. The rest can come from nominators. To understand validator election, check the [NPoS election algorithms page.](https://wiki.polkadot.network/docs/learn-phragmen#what-is-the-sequential-phragm%C3%A9n-method)
diff --git a/pages/operators/validator/validator-rewards.mdx b/pages/operators/validator/validator-rewards.mdx
index a6bedb97..4688d428 100644
--- a/pages/operators/validator/validator-rewards.mdx
+++ b/pages/operators/validator/validator-rewards.mdx
@@ -1,11 +1,11 @@
---
title: Validator Rewards
-description: A brief overview of Tangle Network rewards and their payout scheme.
+description: A brief overview of Tangle network rewards and their payout scheme.
---
# Validator Rewards
-Running a [validator](/introduction) node on the Tangle Network allows you to connect to the network, sync with a bootnode, obtain local access to RPC endpoints, and also author blocks. The network rewards successful validators (users running validator nodes and actively producing blocks) by paying a set amount of network tokens as rewards.
+Running a validator node on the Tangle Network allows you to connect to the network, sync with a bootnode, obtain local access to RPC endpoints, and also author blocks. The network rewards successful validators (users running validator nodes and actively producing blocks) by paying a set amount of network tokens as rewards.
## How Rewards are Calculated
diff --git a/pages/restake/_meta.json b/pages/restake/_meta.json
index ad114d31..c5ea0c75 100644
--- a/pages/restake/_meta.json
+++ b/pages/restake/_meta.json
@@ -7,15 +7,17 @@
"staking-intro": "Introduction to Staking",
"nominator": "Nominating your TNT",
"restake-concepts": "Restaking core concepts",
+ "bridge": "Bridge",
"-- restaking": {
"type": "separator",
"title": "Restaking"
},
"restake-introduction": "Introduction to Restaking",
"incentives": "Incentives",
- "join_operator": "Operator Docs",
- "how_to_restake": "How to Restake",
"assets": "Supported Assets",
+ "join_operator": "Operator Docs",
+ "how_to_restake_tangle": "How to Restake: Tangle DApp",
+ "how_to_restake_polkadotjs": "How to Restake: PolkadotJS",
"restake_developers": "Developer Docs",
"-- liquid staking": {
"type": "separator",
diff --git a/pages/restake/assets.mdx b/pages/restake/assets.mdx
index a27f0605..b7c32c8c 100644
--- a/pages/restake/assets.mdx
+++ b/pages/restake/assets.mdx
@@ -1,12 +1,9 @@
# Supported Assets on Tangle Restaking
-## Supported Assets
-
-Supported assets include all "liquid" assets on Tangle Network, including liquid staked TNT tokens. The network does not limit or restrict the assets that can be used for restaking. But assets are
-preferred by adding them to a reward pool.
+Supported assets include all "liquid" assets on Tangle network, including liquid staked TNT tokens. The network does not limit or restrict the assets that can be used for restaking, but assets are preferred by adding them to a reward pool.
## Integrate New Assets
New assets may be added through on-chain governance and TNT community approval.
-To discuss new assets, you can [discuss at our forum.](https://commonwealth.im/tangle/discussions)
+To propose new assets, [join the community discussion](https://commonwealth.im/tangle/discussions).
diff --git a/pages/restake/bridge.mdx b/pages/restake/bridge.mdx
new file mode 100644
index 00000000..46c14cd8
--- /dev/null
+++ b/pages/restake/bridge.mdx
@@ -0,0 +1,61 @@
+import Callout from "/components/Callout";
+
+# Bridge
+
+In order to participate in Tangle's restaking infrastructure, users need to first bridge in their assets from connected networks such as Ethereum. For this, we have a dedicated bridge DApp that allows users to easily bring their assets to Tangle and transfer them out.
+
+[Access Tangle DApp's Bridge page here](https://app.tangle.tools/bridge)
+
+## Supported Assets
+
+As of the time of writing of this page, the bridge only supports WETH for testnet transfers between Holesky and Tangle.
+
+Soon, users will be able to create and deploy a Hyperlane Warp Route blueprint instance to support additional assets. [Learn more about Blueprints here](/developers/blueprints).
+
+More information about adding support for additional assets will be provided in the near future. For now, make sure you've joined our Discord server & Telegram channel to stay updated.
+
+## How the Bridge Works
+
+Bridging from EVM-based blockchains into Tangle EVM works by leveraging Hyperlane, a permissionless interoperability layer that allows smart contract developers to send arbitrary data between blockchains. [Learn more about Hyperlane here](https://docs.hyperlane.xyz/docs/protocol/protocol-overview).
+
+## How to Use the Bridge
+
+### Step 1: Access Tangle DApp & Connect Wallet
+
+- Open [Tangle DApp's Bridge page](https://app.tangle.tools/bridge).
+- Connect your wallet to the DApp by clicking on the **Connect Wallet** button on the top right and selecting your preferred wallet provider.
+
+### Step 2: Select the Source & Destination Networks
+
+In this example, we'll be bridging in WETH from Holesky to Tangle Testnet EVM. Select the source network as Holesky and the destination network as Tangle Testnet EVM.
+
+![Select Source & Destination Networks](/images/restake/bridge/select-networks.png)
+
+### Step 3: Fill in Details
+
+- Enter the amount of WETH you'd like to bridge in.
+- Enter the recipient address. This is the address on Tangle where the bridged assets will be deposited. If transferring into Tangle EVM (like in this example), this should be an EVM address.
+
+
+Ensure that the recipient address entered is correct to avoid losing your funds. We recommend sending a small amount first to get comfortable with the process.
+
+
+- Click on the **Transfer** button.
+
+### Step 4: Perform the Transaction
+
+- After clicking on the **Transfer** button, a confirmation dialog will appear. Review the details & fees, and click on the **Confirm** button to initiate the transaction.
+- After a few seconds, the transaction dialog from your wallet provider (such as MetaMask) will appear. The bridging process consists of two transations: one to approve the bridge contract to spend your WETH, and the other to interact with the bridge contract. Review all details and confirm the first transaction to continue.
+
+![MetaMask Transaction 1 - Approve Spending](/images/restake/bridge/metamask-tx-1.png)
+
+- After the first transaction is confirmed, a second transaction confirmation dialog will automatically appear. This is the transaction used to interact with the bridge smart contract. Review all details and confirm the transaction to complete the bridging process.
+
+![MetaMask Transaction 2 - Interact with the Smart Contract](/images/restake/bridge/metamask-tx-2.png)
+
+### Step 5: Monitor Transaction Progress
+
+- Once the second transaction is confirmed, you can monitor the progress of the bridging process right from the DApp. A small toast notification will automatically appear on the top right of the screen with the transaction details.
+- Once you see the **Executed** status, the bridging process is complete. You can also use the [Tangle Testnet's EVM explorer](https://testnet-explorer.tangle.tools/) to find and track the transaction. Check the [Resources and Tools page](/resources) for other explorers.
+
+![Transaction Status Toast Notification](/images/restake/bridge/tx-status-toast.png)
diff --git a/pages/restake/create_a_pool/_meta.json b/pages/restake/create_a_pool/_meta.json
index b066e084..a92f1145 100644
--- a/pages/restake/create_a_pool/_meta.json
+++ b/pages/restake/create_a_pool/_meta.json
@@ -1,6 +1,6 @@
{
"pool-roles": "Pool Roles",
"benefits-and-risks": "Benefits and Risks",
- "lst-pool-create": "Create using PolkadotJs",
- "lst-pool-create-tangle": "Create using Tangle DApp"
+ "lst-pool-create-tangle": "Create using Tangle DApp",
+ "lst-pool-create": "Create using PolkadotJS"
}
diff --git a/pages/restake/create_a_pool/images/commission.png b/pages/restake/create_a_pool/images/commission.png
deleted file mode 100644
index 82719783..00000000
Binary files a/pages/restake/create_a_pool/images/commission.png and /dev/null differ
diff --git a/pages/restake/create_a_pool/images/create.png b/pages/restake/create_a_pool/images/create.png
deleted file mode 100644
index b674b653..00000000
Binary files a/pages/restake/create_a_pool/images/create.png and /dev/null differ
diff --git a/pages/restake/create_a_pool/images/events.png b/pages/restake/create_a_pool/images/events.png
deleted file mode 100644
index f1b24458..00000000
Binary files a/pages/restake/create_a_pool/images/events.png and /dev/null differ
diff --git a/pages/restake/create_a_pool/images/inblock.png b/pages/restake/create_a_pool/images/inblock.png
deleted file mode 100644
index 3bd4a017..00000000
Binary files a/pages/restake/create_a_pool/images/inblock.png and /dev/null differ
diff --git a/pages/restake/create_a_pool/images/sign.png b/pages/restake/create_a_pool/images/sign.png
deleted file mode 100644
index 78bc073c..00000000
Binary files a/pages/restake/create_a_pool/images/sign.png and /dev/null differ
diff --git a/pages/restake/create_a_pool/lst-pool-create-tangle.mdx b/pages/restake/create_a_pool/lst-pool-create-tangle.mdx
index 0d1cf8ec..ac61f48f 100644
--- a/pages/restake/create_a_pool/lst-pool-create-tangle.mdx
+++ b/pages/restake/create_a_pool/lst-pool-create-tangle.mdx
@@ -1,3 +1,29 @@
## How to Create a Liquid Staking Pool Using Tangle DApp
-TBD
+### Step 1: Access Tangle DApp & Connect Wallet
+
+- Open [Tangle DApp's Liquid Staking page](https://app.tangle.tools/liquid-staking).
+- Connect your wallet to the DApp by clicking on the **Connect Wallet** button on the top right and selecting your preferred wallet provider.
+- Connect to the desired Tangle network by selecting the appropriate network from the dropdown list. Note that liquid staking pools are only available on the networks in which they are created.
+
+![Selecting a Liquid Staking Network](/images/liquid-staking/select-ls-network.png)
+
+### Step 2: Configure & Create a Pool
+
+- Once on the liquid staking page, scroll down until you see the **CREATE POOL** button. Click on it to bring up a form where you can configure your new pool.
+
+![Create Pool Button](/images/liquid-staking/create-pool-tangle/create-pool-btn.png)
+
+- Choose a brief, descriptive name for your pool so that other users can easily identify it, enter an initial bond amount, and set the pool's roles (Root, Nominator, Bouncer).
+- By default, all of the roles will be assigned to the active wallet's address. You can change these addresses to other accounts if needed.
+- Some details such as the pool's commission and nominations can be set **after** the pool is created: You'll be able to easily manage it under the **My Pools** tab.
+- Once you've entered and verified all the details, click on the **Create Pool** button to initiate the transaction.
+
+![Pool Configuration Form](/images/liquid-staking/create-pool-tangle/create-pool-form.png)
+
+### Step 3: Manage Your Pool
+
+- After you've created your pool, you can view & manage it under the **My Pools** tab. Here, you can set the commission rate, manage nominations, and view the pool's performance. In case that you don't see the pool you've just created right away, try refreshing the page.
+- Note that the `MANAGE` button or some of its dropdown options will only be visible **if the active account has the corresponding role**. For example, only the account with the nominator role will be able to see the `Update Nominations` button on the dropdown. If you've set all roles to the same account, you will have all the management options available.
+
+![My Pools Tab](/images/liquid-staking/my-pools.png)
diff --git a/pages/restake/create_a_pool/lst-pool-create.mdx b/pages/restake/create_a_pool/lst-pool-create.mdx
index b93ad1b6..ac610180 100644
--- a/pages/restake/create_a_pool/lst-pool-create.mdx
+++ b/pages/restake/create_a_pool/lst-pool-create.mdx
@@ -1,55 +1,60 @@
## How to Create a Liquid Staking Pool Using PolkadotJS
-Creating a liquid staking pool on the Tangle Network using PolkadotJS is a straightforward process. Follow these steps:
-
### Step 1: Access the PolkadotJS Interface
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
+- Connect to the desired Tangle network by selecting the appropriate network from the left dropdown list. Note that liquid staking pools are only available on the networks in which they are created.
+- In case that the network that you're looking for is not listed on the dropdown list, input its RPC endpoint under the `DEVELOPMENT` → `custom endpoint` input.
+
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
+
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-Alternatively, you can access it via the tangle explorer:
+### Step 2: Check Pool Creation Requirements
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- In order to prevent spam, pool creation may require a minimum bond amount to be deposited. Ensure that you have enough funds in your account to cover this requirement.
+- These funds will not be forfeited; they will be bonded to the pool and will be returned to you when the pool is dissolved.
-### Step 2: Create a Pool
+![PolkadotJS UI: Check Min. Bond](/images/liquid-staking/create-pool-polkadotjs/check-min-create-bond.png)
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+### Step 3: Create a Pool
-![PolkadotJS Extrinsics](./images/extrinsic.png)
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
-- Under the **Lst** section, select **Create**.
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **lst** section, select **create(...)**.
- Enter the required details such as:
- - **Initial deposit amount**: The amount of tokens you are contributing to the pool. This is in lowest unit, so should use 18 decimal places.
- - **Root account**: The account that will be responsible for managing the pool.
- - **Nominator account**: The account that will nominate validators for the pool.
- - **Bouncer account**: The account responsible for managing participant entries and exits.
- - **Pool Name**: Choose a unique and descriptive name for your pool.
+ - **Initial deposit amount**: The amount of tokens you are contributing to the pool. This is in lowest unit, so should be in 18 decimal places.
+ - **Root account address**: The account that will be responsible for managing the pool.
+ - **Nominator account address**: The account that will nominate validators for the pool.
+ - **Bouncer account address**: The account responsible for managing participant entries and exits.
+ - **Pool Name**: Choose a brief and descriptive name for your pool. Does not need to be unique.
You can use the same account for the root, nominator and bouncer or different accounts.
-![PolkadotJS Create Pool](./images/create.png)
+![PolkadotJS Create Pool](/images/liquid-staking/create-pool-polkadotjs/create.png)
Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee and pool deposit.
-![PolkadotJS Transaction](./images/sign.png)
-
-If successful, you should see the following screen:
+![PolkadotJS Transaction](/images/liquid-staking/create-pool-polkadotjs/sign.png)
-![PolkadotJS Pool Created](./images/inblock.png)
+If successful, you should see the following confirmation toast notification:
-Lets break down the events, navigate to the **Network** tab, you should see the following events:
+![PolkadotJS Pool Created](/images/liquid-staking/create-pool-polkadotjs/inblock.png)
-![PolkadotJS Events](./images/events.png)
+Let's break down the events. Navigate to the **Network** → **Explorer** tab, and you should see the following events:
-- lst.Bonded : tells you that the pool has been created and the initial deposit has been made.
-- lst.Created : tells you that the pool has been created and shows the pool id.
-- assets.Issued : tells you that the pool has created a new asset (LST) and issued the staked tokens to the creator.
+![PolkadotJS Events](/images/liquid-staking/create-pool-polkadotjs/events.png)
-### Step 3: Configure Commission and Roles (Optional)
+- **lst.Bonded**: Your initial deposit was bonded to the pool.
+- **lst.Created**: Pool creation confirmation, along with the pool's unique ID.
+- **assets.Issued**: A new asset (LST) was created and issued the staked tokens to the creator.
-- Set the commission rate you wish to charge as the pool manager.
+### Step 4: Configure Commission and Roles (Optional)
-You can do this by navigating to the **Extrinsics** tab, under the **Lst** section, select **SetCommission**.
+- Set the commission rate you wish to charge as the pool manager by navigating to the **Developer** → **Extrinsics** tab, and under the **lst** section, selecting **setCommission(...)**.
+- Note that this amount is in **perbill** (1/1,000,000) units, so a commission rate of 10% would be entered as `100 000`. Another example, a commission rate of 12.34% would be entered as `123 400`.
-![PolkadotJS Set Commission](./images/commission.png)
+![PolkadotJS Set Commission](/images/liquid-staking/create-pool-polkadotjs/commission.png)
diff --git a/pages/restake/how_to_restake/_meta.json b/pages/restake/how_to_restake/_meta.json
deleted file mode 100644
index 771421ba..00000000
--- a/pages/restake/how_to_restake/_meta.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "deposit": "Deposit using PolkadotJs",
- "delegate": "Delegate using PolkadotJs",
- "unstake": "Unstake using PolkadotJs",
- "withdraw": "Withdraw using PolkadotJs"
-}
diff --git a/pages/restake/how_to_restake/delegate.mdx b/pages/restake/how_to_restake/delegate.mdx
deleted file mode 100644
index 3fb358f3..00000000
--- a/pages/restake/how_to_restake/delegate.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-## Delegate
-
-Delegators are similar to stakers in a consensus system like nominated proof of stake (NPoS), but they delegate their tokens to an operator, and participate in the rewards and risks similar to staking on a validator.
-You should have deposited your tokens to the multiasset delegation vault before you can delegate, see [deposit](./deposit.mdx) for more information.
-
-### Delegate
-
-To delegate, you need to call the `delegate` function. This function allocates assets to the chosen operator.
-
-### Step 1: Access the PolkadotJS Interface
-
-- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-
-Alternatively, you can access it via the tangle explorer:
-
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-
-### Step 2: Delegate
-
-- Navigate to the **Extrinsics** tab on PolkadotJS.
-
-![PolkadotJS Extrinsics](./images/extrinsic.png)
-
-- Under the **MultiAssetDelegation** section, select **Delegate** and enter the amount of assets to delegate.
-
-![PolkadotJS Delegate](./images/delegate.png)
-
-Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
-
-![PolkadotJS Delegate](./images/delegatesign.png)
-
-If successful, you should see the following screen:
-
-![PolkadotJS Delegate Success](./images/delegateinblock.png)
diff --git a/pages/restake/how_to_restake/deposit.mdx b/pages/restake/how_to_restake/deposit.mdx
deleted file mode 100644
index 0b133129..00000000
--- a/pages/restake/how_to_restake/deposit.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
-## Deposit
-
-Deposit is the process of allocating assets to the multiasset delegation vault. This deposit is required to participate in restaking (delegate).
-
-### Deposit Assets
-
-To participate in restaking, a user can deposit LST assets to the multiasset delegation vault.
-
-### Step 1: Access the PolkadotJS Interface
-
-- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-
-Alternatively, you can access it via the tangle explorer:
-
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-
-### Step 2: Deposit Assets
-
-- Navigate to the **Extrinsics** tab on PolkadotJS.
-
-![PolkadotJS Extrinsics](./images/extrinsic.png)
-
-- Under the **MultiAssetDelegation** section, select **Deposit** and enter the amount of assets to deposit.
-
-![PolkadotJS Deposit](./images/deposit.png)
-
-Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
-
-![PolkadotJS Transaction](./images/depositsign.png)
-
-If successful, you should see the following screen:
-
-![PolkadotJS Deposit Success](./images/depositinblock.png)
diff --git a/pages/restake/how_to_restake/images/canceldelegatorunstake.png b/pages/restake/how_to_restake/images/canceldelegatorunstake.png
deleted file mode 100644
index 811067ba..00000000
Binary files a/pages/restake/how_to_restake/images/canceldelegatorunstake.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/delegate.png b/pages/restake/how_to_restake/images/delegate.png
deleted file mode 100644
index d55d7249..00000000
Binary files a/pages/restake/how_to_restake/images/delegate.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/delegateinblock.png b/pages/restake/how_to_restake/images/delegateinblock.png
deleted file mode 100644
index 9274b945..00000000
Binary files a/pages/restake/how_to_restake/images/delegateinblock.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/delegatesign.png b/pages/restake/how_to_restake/images/delegatesign.png
deleted file mode 100644
index 3a2a603b..00000000
Binary files a/pages/restake/how_to_restake/images/delegatesign.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/deposit.png b/pages/restake/how_to_restake/images/deposit.png
deleted file mode 100644
index 792a5e71..00000000
Binary files a/pages/restake/how_to_restake/images/deposit.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/depositinblock.png b/pages/restake/how_to_restake/images/depositinblock.png
deleted file mode 100644
index efa943ee..00000000
Binary files a/pages/restake/how_to_restake/images/depositinblock.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/depositsign.png b/pages/restake/how_to_restake/images/depositsign.png
deleted file mode 100644
index 21835be3..00000000
Binary files a/pages/restake/how_to_restake/images/depositsign.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/executedelegatorUnstake.png b/pages/restake/how_to_restake/images/executedelegatorUnstake.png
deleted file mode 100644
index 4044e8a0..00000000
Binary files a/pages/restake/how_to_restake/images/executedelegatorUnstake.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/executewithdraw.png b/pages/restake/how_to_restake/images/executewithdraw.png
deleted file mode 100644
index f557700d..00000000
Binary files a/pages/restake/how_to_restake/images/executewithdraw.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/extrinsic.png b/pages/restake/how_to_restake/images/extrinsic.png
deleted file mode 100644
index 16089a2a..00000000
Binary files a/pages/restake/how_to_restake/images/extrinsic.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/scheduleunstake.png b/pages/restake/how_to_restake/images/scheduleunstake.png
deleted file mode 100644
index 274b241e..00000000
Binary files a/pages/restake/how_to_restake/images/scheduleunstake.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/images/schedulewithdraw.png b/pages/restake/how_to_restake/images/schedulewithdraw.png
deleted file mode 100644
index b1bb42ba..00000000
Binary files a/pages/restake/how_to_restake/images/schedulewithdraw.png and /dev/null differ
diff --git a/pages/restake/how_to_restake/unstake.mdx b/pages/restake/how_to_restake/unstake.mdx
deleted file mode 100644
index 0a3e0dbe..00000000
--- a/pages/restake/how_to_restake/unstake.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
-## Unstake
-
-The first step to exit restake is to unstake your tokens. This is done by calling the `unstake` function. This function releases the locked assets and returns them to the deposit vault.
-Then you can withdraw your assets from the deposit vault, see [withdraw](./withdraw.mdx) for more information.
-
-The unstake is a two step process:
-
-1. Call the `schedule_unstake` function to schedule the unstake.
-2. Call the `execute_unstake` function to execute the unstake after the unstake period.
-
-### Schedule Unstake
-
-To unstake, you need to call the `schedule_unstake` function. This function schedules the unstake.
-
-### Step 1: Access the PolkadotJS Interface
-
-- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-
-Alternatively, you can access it via the tangle explorer:
-
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-
-### Step 2: Schedule Unstake
-
-- Navigate to the **Extrinsics** tab on PolkadotJS.
-
-![PolkadotJS Extrinsics](./images/extrinsic.png)
-
-- Under the **MultiAssetDelegation** section, select **ScheduleUnstake** and enter the amount of assets to unstake.
-
-![PolkadotJS Schedule Unstake](./images/scheduleunstake.png)
-
-Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
-
-### Cancel Delegator Unstake
-
-To cancel the unstake, you need to call the `cancel_delegator_unstake` function. This function cancels the unstake.
-
-### Step 1: Access the PolkadotJS Interface
-
-- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-
-Alternatively, you can access it via the tangle explorer:
-
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-
-### Step 2: Cancel Delegator Unstake
-
-- Navigate to the **Extrinsics** tab on PolkadotJS.
-
-![PolkadotJS Extrinsics](./images/extrinsic.png)
-
-- Under the **MultiAssetDelegation** section, select **CancelDelegatorUnstake** and enter the amount of assets to unstake.
-
-![PolkadotJS Cancel Delegator Unstake](./images/canceldelegatorunstake.png)
-
-Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
-
-### Execute Delegator Unstake
-
-To execute the unstake, you need to call the `execute_unstake` function. This function executes the unstake. This function can only be called after the unstake period.
-
-### Step 1: Access the PolkadotJS Interface
-
-- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-
-Alternatively, you can access it via the tangle explorer:
-
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-
-### Step 2: Execute Delegator Unstake
-
-- Navigate to the **Extrinsics** tab on PolkadotJS.
-
-![PolkadotJS Extrinsics](./images/extrinsic.png)
-
-- Under the **MultiAssetDelegation** section, select **ExecuteDelegatorUnstake** and enter the amount of assets to unstake.
-
-![PolkadotJS Execute Delegator Unstake](./images/executedelegatorUnstake.png)
-
-Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
diff --git a/pages/restake/how_to_restake/withdraw.mdx b/pages/restake/how_to_restake/withdraw.mdx
deleted file mode 100644
index b480bd3e..00000000
--- a/pages/restake/how_to_restake/withdraw.mdx
+++ /dev/null
@@ -1,56 +0,0 @@
-## Withdraw
-
-Withdraw is the process of withdrawing assets from the multiasset delegation vault. You can only withdraw your "undelegated" assets. So make sure you have undelegated your assets before withdrawing.
-The process of withdrawal is a two step process. First you need to schedule a withdrawal, which will be available after the unstake period. Then after the unstake period, you can actually withdraw the assets.
-
-### Schedule Withdraw
-
-The first step to complete a withdraw is to schedule a withdrawal. This is done by calling the `schedule_withdraw` function.
-
-### Step 1: Access the PolkadotJS Interface
-
-- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-
-Alternatively, you can access it via the tangle explorer:
-
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-
-### Step 2: Schedule Withdraw
-
-- Navigate to the **Extrinsics** tab on PolkadotJS.
-
-![PolkadotJS Extrinsics](./images/extrinsic.png)
-
-- Under the **MultiAssetDelegation** section, select **ScheduleWithdraw** and enter the amount of assets to withdraw.
-
-![PolkadotJS ScheduleWithdraw](./images/schedulewithdraw.png)
-
-Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
-
-### Execute Withdraw
-
-The second step to complete a withdraw is to execute the withdrawal. This is done by calling the `execute_withdraw` function.
-
-### Step 1: Access the PolkadotJS Interface
-
-- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
-- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-
-Alternatively, you can access it via the tangle explorer:
-
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
-
-### Step 2: Execute Withdraw
-
-- Navigate to the **Extrinsics** tab on PolkadotJS.
-
-![PolkadotJS Extrinsics](./images/extrinsic.png)
-
-- Under the **MultiAssetDelegation** section, select **ScheduleWithdraw** and enter the amount of assets to withdraw.
-
-![PolkadotJS ExecuteWithdraw](./images/executewithdraw.png)
-
-Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
diff --git a/pages/restake/how_to_restake_polkadotjs/_meta.json b/pages/restake/how_to_restake_polkadotjs/_meta.json
new file mode 100644
index 00000000..cea02f03
--- /dev/null
+++ b/pages/restake/how_to_restake_polkadotjs/_meta.json
@@ -0,0 +1,6 @@
+{
+ "deposit": "Deposit",
+ "delegate": "Delegate",
+ "unstake": "Unstake",
+ "withdraw": "Withdraw"
+}
diff --git a/pages/restake/how_to_restake_polkadotjs/delegate.mdx b/pages/restake/how_to_restake_polkadotjs/delegate.mdx
new file mode 100644
index 00000000..ec4613ab
--- /dev/null
+++ b/pages/restake/how_to_restake_polkadotjs/delegate.mdx
@@ -0,0 +1,39 @@
+import Callout from "/components/Callout";
+
+## Delegate Using PolkadotJS
+
+
+You should have deposited your tokens to the multiasset delegation vault before you can delegate. See the [Deposit Using PolkadotJS page](./deposit.mdx) for more information.
+
+
+Delegators are similar to stakers in a consensus system like nominated proof of stake (NPoS), but they delegate their tokens to an operator, and participate in the rewards and risks similar to staking on a validator.
+
+To delegate, you need to call the `delegate` function. This function allocates assets to the chosen operator.
+
+### Step 1: Access the PolkadotJS Interface
+
+- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
+- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
+
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
+
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+
+### Step 2: Delegate
+
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
+
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **multiAssetDelegation** section, select **delegate(...)** and enter the operator's address, asset ID, and the amount of assets to delegate.
+
+![PolkadotJS Delegate](/images/restake/delegate/delegate.png)
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+
+![PolkadotJS Delegate](/images/restake/delegate/delegatesign.png)
+
+- If successful, you should see the following confirmation toast notification:
+
+![PolkadotJS Delegate Success](/images/restake/delegate/delegateinblock.png)
diff --git a/pages/restake/how_to_restake_polkadotjs/deposit.mdx b/pages/restake/how_to_restake_polkadotjs/deposit.mdx
new file mode 100644
index 00000000..b7d62bba
--- /dev/null
+++ b/pages/restake/how_to_restake_polkadotjs/deposit.mdx
@@ -0,0 +1,33 @@
+## Deposit Using PolkadotJS
+
+Depositing is the process of allocating assets to the multiasset delegation vault. Deposits are required to participate in restaking (delegate).
+
+Users can deposit LST assets to the multiasset delegation vault.
+
+### Step 1: Access the PolkadotJS Interface
+
+- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
+- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
+
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
+
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+
+### Step 2: Deposit Assets
+
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
+
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **multiAssetDelegation** section, select **deposit(...)**, enter the asset ID and the amount of assets to deposit.
+
+![PolkadotJS Deposit](/images/restake/deposit/deposit.png)
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+
+![PolkadotJS Transaction](/images/restake/deposit/depositsign.png)
+
+- If successful, you should see the following confirmation toast notification:
+
+![PolkadotJS Deposit Success](/images/restake/deposit/depositinblock.png)
diff --git a/pages/restake/how_to_restake_polkadotjs/unstake.mdx b/pages/restake/how_to_restake_polkadotjs/unstake.mdx
new file mode 100644
index 00000000..10865564
--- /dev/null
+++ b/pages/restake/how_to_restake_polkadotjs/unstake.mdx
@@ -0,0 +1,89 @@
+## Unstake Using PolkadotJS
+
+The first step to exit restake is to unstake your tokens. This is done by calling the `unstake` function, which releases the locked assets and returns them to the deposit vault.
+
+Then, you can withdraw your assets from the deposit vault. See the [Withdraw page](./withdraw.mdx) for more information.
+
+Unstaking is a two step process:
+
+1. Call the `schedule_unstake` function to schedule the unstake request.
+2. Call the `execute_unstake` function to execute the unstake request and release the funds after the unstake period has elapsed.
+
+### Schedule Unstake
+
+To unstake, you need to call the `schedule_unstake` function. This function schedules the unstake.
+
+### Step 1: Access the PolkadotJS Interface
+
+- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
+- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
+
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
+
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+
+### Step 2: Schedule Unstake
+
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
+
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **MultiAssetDelegation** section, select **ScheduleUnstake** and enter the amount of assets to unstake.
+
+![PolkadotJS Schedule Unstake](/images/restake/delegate/scheduleunstake.png)
+
+Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+
+### Cancel Delegator Unstake
+
+To cancel the unstake, you need to call the `cancel_delegator_unstake` function. This function cancels the unstake.
+
+### Step 1: Access the PolkadotJS Interface
+
+- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
+- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
+
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
+
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+
+### Step 2: Cancel Delegator Unstake
+
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
+
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **MultiAssetDelegation** section, select **CancelDelegatorUnstake** and enter the amount of assets to unstake.
+
+![PolkadotJS Cancel Delegator Unstake](/images/restake/delegate/canceldelegatorunstake.png)
+
+Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+
+### Execute Delegator Unstake
+
+To execute the unstake, you need to call the `execute_unstake` function. This function executes the unstake. This function can only be called after the unstake period.
+
+### Step 1: Access the PolkadotJS Interface
+
+- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
+- Connect to the Tangle network by selecting the appropriate network from the dropdown list.
+
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
+
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+
+### Step 2: Execute Delegator Unstake
+
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
+
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **multiAssetDelegation** section, select **executeDelegatorUnstake()**.
+- Notice that there aren't any inputs for this function. This is because calling the function will execute **all** pending unstake requests that have reached their maturity.
+
+![PolkadotJS Execute Delegator Unstake](/images/restake/delegate/executedelegatorUnstake.png)
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
diff --git a/pages/restake/how_to_restake_polkadotjs/withdraw.mdx b/pages/restake/how_to_restake_polkadotjs/withdraw.mdx
new file mode 100644
index 00000000..30f22b43
--- /dev/null
+++ b/pages/restake/how_to_restake_polkadotjs/withdraw.mdx
@@ -0,0 +1,53 @@
+import Callout from "/components/Callout";
+
+## Withdraw Using PolkadotJS
+
+
+You can only withdraw your "undelegated" (unstaked) assets. Make sure you have undelegated your assets before withdrawing. See the [Unstake page](./unstake.mdx) for more information.
+
+
+Withdrawing is the process of releasing assets from the multiasset delegation vault.
+
+Similar to unstaking, it is composed of two steps:
+
+1. A withdrawal request is **scheduled**, which will be available for execution after its unstake period.
+2. After the unstake period, you can **execute** the withdrawal to actually release the assets.
+
+### Accessing the PolkadotJS Interface
+
+- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
+- Connect to the Tangle network by selecting the appropriate network from the dropdown list.
+
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
+
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+
+### Schedule Withdraw
+
+The first step to complete a withdraw is to schedule a withdrawal. This is done by calling the `schedule_withdraw` function.
+
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
+
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **multiAssetDelegation** section, select **scheduleWithdraw(...)** and enter the asset ID along with the amount of assets to withdraw.
+
+![PolkadotJS ScheduleWithdraw](/images/restake/how-to-restake-polkadotjs/schedulewithdraw.png)
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+
+### Execute Withdraw
+
+The second step to complete a withdraw is to execute the withdrawal. This is done by calling the `execute_withdraw` function.
+
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
+
+![PolkadotJS Extrinsics](/images/extrinsic.png)
+
+- Under the **multiAssetDelegation** section, select **executeWithdraw()**.
+- Notice that there aren't any inputs for this function. This is because calling the function will execute **all** pending withdraw requests that have reached their maturity.
+
+![PolkadotJS ExecuteWithdraw](/images/restake/how-to-restake-polkadotjs/executewithdraw.png)
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
diff --git a/pages/restake/how_to_restake_tangle/_meta.json b/pages/restake/how_to_restake_tangle/_meta.json
new file mode 100644
index 00000000..cea02f03
--- /dev/null
+++ b/pages/restake/how_to_restake_tangle/_meta.json
@@ -0,0 +1,6 @@
+{
+ "deposit": "Deposit",
+ "delegate": "Delegate",
+ "unstake": "Unstake",
+ "withdraw": "Withdraw"
+}
diff --git a/pages/restake/how_to_restake_tangle/delegate.mdx b/pages/restake/how_to_restake_tangle/delegate.mdx
new file mode 100644
index 00000000..4abd6a12
--- /dev/null
+++ b/pages/restake/how_to_restake_tangle/delegate.mdx
@@ -0,0 +1,33 @@
+import Callout from "/components/Callout";
+
+## Delegate Using Tangle DApp
+
+
+You should have deposited your tokens to the multiasset delegation vault before you can delegate. See the [Deposit Using Tangle DApp page](./deposit-tangle.mdx) for more information. If you have already deposited **and** delegated your assets under the **Deposit** tab, you can skip this step.
+
+
+Delegators are similar to stakers in a consensus system like nominated proof of stake (NPoS), but they delegate their tokens to an operator, and participate in the rewards and risks similar to staking on a validator.
+
+### Step 1: Access Tangle DApp & Connect Wallet
+
+- Open [Tangle DApp's Restaking: Delegate page](https://app.tangle.tools/restake/stake).
+- Connect your wallet to the DApp by clicking on the **Connect Wallet** button on the top right and selecting your preferred wallet provider.
+
+### Step 2: Delegate
+
+1. Switch to the **Stake** tab on the Restaking page.
+2. Ensure that you're connected to the appropriate network. You can switch networks by using the dropdown located at the top right corner of the page.
+3. Click on the **Asset** dropdown, and select an asset from the modal. If the asset that you're looking for is not listed, ensure that you have correctly performed the deposit operation for that asset. Please note that your asset balance might be lower than expected or not available if you have already deposited and delegated at once under the **Deposit** tab.
+4. Click on the **Select Operator** dropdown, and choose an operator from the list. You can also search for specific operators by entering their address in the search bar.
+5. Enter the amount of assets that you'd like to delegate to the operator.
+6. Review fees, unstake period, and bond less delay before proceeding.
+7. If all the information is correct, the **Delegate** button should be enabled. Click on it to initiate the transaction.
+
+![Delegate Steps](/images/restake/delegate/dapp-steps.png)
+
+### Step 3: Sign and Submit the Transaction
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+- If successful, you should see the following confirmation toast notification:
+
+![Delegate Transaction Confirmation Toast](/images/restake/delegate/delegate-tx-confirmation.png)
diff --git a/pages/restake/how_to_restake_tangle/deposit.mdx b/pages/restake/how_to_restake_tangle/deposit.mdx
new file mode 100644
index 00000000..1ce4b565
--- /dev/null
+++ b/pages/restake/how_to_restake_tangle/deposit.mdx
@@ -0,0 +1,29 @@
+## Deposit Using Tangle DApp
+
+Depositing is the process of allocating assets to the multiasset delegation vault. Deposits are required to participate in restaking (delegate).
+
+Users can deposit LST assets to the multiasset delegation vault.
+
+### Step 1: Access Tangle DApp & Connect Wallet
+
+- Open [Tangle DApp's Restaking: Deposit page](https://app.tangle.tools/restake/deposit).
+- Connect your wallet to the DApp by clicking on the **Connect Wallet** button on the top right and selecting your preferred wallet provider.
+
+### Step 2: Deposit Assets
+
+1. Switch to the **Deposit** tab on the Restaking page.
+2. Select the appropriate network from the dropdown list.
+3. Select an asset from the modal.
+4. Enter the desired amount to deposit.
+5. (Optional) If you'd like to also delegate your deposit right away: Click on the **Select Operator** dropdown, and choose an operator from the list. If you'd like to delegate later, skip this step. [Learn how to delegate later](./delegate.mdx).
+6. Review any fees, APY, and other key information before proceeding.
+7. If all the information is correct, the **Deposit + Delegate** (or **Deposit** if just depositing) button should be enabled. Click on it to initiate the transaction.
+
+![Deposit Steps](/images/restake/deposit/dapp-steps.png)
+
+### Step 3: Sign and Submit the Transaction
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+- If successful, you should see the following confirmation toast notification:
+
+![Deposit Transaction Confirmation Toast](/images/restake/deposit/deposit-tx-confirmation.png)
diff --git a/pages/restake/how_to_restake_tangle/unstake.mdx b/pages/restake/how_to_restake_tangle/unstake.mdx
new file mode 100644
index 00000000..b4f50936
--- /dev/null
+++ b/pages/restake/how_to_restake_tangle/unstake.mdx
@@ -0,0 +1,47 @@
+## Unstake Using Tangle DApp
+
+The first step to exit restake is to unstake your tokens. This is done by calling the `unstake` function internally, which releases the locked assets and returns them to the deposit vault.
+
+Then, you can withdraw your assets from the deposit vault. See the [Withdraw page](./withdraw.mdx) for more information.
+
+The unstake is a two step process:
+
+1. Schedule the unstake to release the assets after the unstake period.
+2. Execute the unstake request to release the assets.
+
+### Step 1: Access Tangle DApp & Connect Wallet
+
+- Open [Tangle DApp's Restaking: Unstake page](https://app.tangle.tools/restake/unstake).
+- Connect your wallet to the DApp by clicking on the **Connect Wallet** button on the top right and selecting your preferred wallet provider.
+
+### Step 2: Schedule Unstake
+
+Once you're at the **Unstake** tab, you'll see a table on the right listing the unstaking requests that you've previously made. To schedule a new unstake request, follow these steps:
+
+1. Click on the **Select** dropdown and choose an operator and asset to unstake from the modal. The same operator may have multiple assets available to unstake.
+2. Enter the amount of assets that you'd like to unstake.
+3. Review fees and unstake period before proceeding.
+4. Click on the **Schedule Unstake** button to initiate the transaction.
+
+![Unstake Steps](/images/restake/unstake/steps.png)
+
+### Step 3: Sign and Submit the Transaction
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+- If successful, you should see the following confirmation toast notification:
+
+![Unstake Transaction Confirmation Toast](/images/restake/unstake/unstake-tx-confirmation.png)
+
+### Cancel an Unstaking Request
+
+If you've scheduled an unstake request, you can choose to **cancel** it if you change your mind. To cancel an unstake request, use the unstake requests table on the right side of the page. Note that you can cancel an unstake request even if it has reached its maturity, but as long as it hasn't been executed yet.
+
+Simply select the unstake request(s) that you'd like to cancel, then click on the **Cancel Unstake** button to initiate the transaction.
+
+![Unstake Requests Table: Cancel Unstake](/images/restake/unstake/cancel-unstake.png)
+
+### Execute an Unstaking Request
+
+Once an unstake request has reached its maturity, you can **execute** it to actually unstake and release the assets.
+
+Tangle DApp makes this process easy by simply clicking on the **Execute All** button. There's no need to select specific unstake requests, as this action will execute all unstake requests that have reached their maturity within a single transaction. If the button is disabled, it means that there are no unstake requests that have reached their maturity yet.
diff --git a/pages/restake/how_to_restake_tangle/withdraw.mdx b/pages/restake/how_to_restake_tangle/withdraw.mdx
new file mode 100644
index 00000000..e69df300
--- /dev/null
+++ b/pages/restake/how_to_restake_tangle/withdraw.mdx
@@ -0,0 +1,54 @@
+import Callout from "/components/Callout";
+
+## Withdraw Using Tangle DApp
+
+
+You can only withdraw your "undelegated" (unstaked) assets. Make sure you have undelegated your assets before withdrawing. See the [Unstake page](./unstake.mdx) for more information.
+
+
+Withdrawing is the process of releasing assets from the multiasset delegation vault.
+
+Similar to unstaking, it is composed of two steps:
+
+1. A withdrawal request is **scheduled**, which will be available for execution after its unstake period.
+2. After the unstake period, you can **execute** the withdrawal to actually release the assets.
+
+### Schedule Withdraw
+
+The first step to complete a withdraw is to schedule a withdrawal. This is done by calling the `schedule_withdraw` function.
+
+### Step 1: Access Tangle DApp & Connect Wallet
+
+- Open [Tangle DApp's Restaking: Withdraw page](https://app.tangle.tools/restake/withdraw).
+- Connect your wallet to the DApp by clicking on the **Connect Wallet** button on the top right and selecting your preferred wallet provider.
+
+### Step 2: Schedule Withdraw
+
+1. Select the **Withdraw** tab on the Restaking page.
+2. Click on the **Asset** dropdown, and select an asset from the modal.
+3. Enter the amount of assets that you'd like to withdraw.
+4. Review any fees and the withdraw delay before proceeding.
+5. Click on the **Schedule Withdraw** button to initiate the transaction.
+
+![Withdraw Steps](/images/restake/withdraw/steps.png)
+
+### Step 3: Sign and Submit the Transaction
+
+- Sign and submit the transaction. Make sure the account you are using has enough balance to cover the transaction fee.
+- If successful, you should see the withdraw request appear in the table at the right side of the page, and also the following confirmation toast notification:
+
+![Withdraw Transaction Confirmation Toast](/images/restake/withdraw/withdraw-tx-confirmation.png)
+
+### Cancel a Withdraw Request
+
+If you've scheduled a withdraw request, you can choose to **cancel** it if you change your mind. To cancel a withdraw request, use the withdraw requests table on the right side of the page. Note that you can cancel a withdraw request even if it has reached its maturity, but as long as it hasn't been executed yet.
+
+Simply select the withdraw request(s) that you'd like to cancel, then click on the **Cancel Withdraw** button to initiate the transaction.
+
+![Unstake Requests Table: Cancel Withdraw](/images/restake/withdraw/cancel-withdraw.png)
+
+### Execute a Withdraw Request
+
+Once a withdraw request has reached its maturity, you can **execute** it to actually withdraw and release the assets.
+
+Tangle DApp makes this process easy by simply clicking on the **Execute All** button. There's no need to select specific withdraw requests, as this action will execute all withdraw requests that have reached their maturity within a single transaction. If the button is disabled, it means that there are no withdraw requests that have reached their maturity yet.
diff --git a/pages/restake/join_a_pool/_meta.json b/pages/restake/join_a_pool/_meta.json
index b2281f18..c24f3b9f 100644
--- a/pages/restake/join_a_pool/_meta.json
+++ b/pages/restake/join_a_pool/_meta.json
@@ -1,4 +1,4 @@
{
- "polkadotjs": "Join using PolkadotJs",
- "tangle": "Join using Tangle DApp"
+ "tangle": "Join using Tangle DApp",
+ "polkadotjs": "Join using PolkadotJS"
}
diff --git a/pages/restake/join_a_pool/images/bondedpools.png b/pages/restake/join_a_pool/images/bondedpools.png
deleted file mode 100644
index a1bfb381..00000000
Binary files a/pages/restake/join_a_pool/images/bondedpools.png and /dev/null differ
diff --git a/pages/restake/join_a_pool/images/events.png b/pages/restake/join_a_pool/images/events.png
deleted file mode 100644
index 6f4494c2..00000000
Binary files a/pages/restake/join_a_pool/images/events.png and /dev/null differ
diff --git a/pages/restake/join_a_pool/images/extrinsic.png b/pages/restake/join_a_pool/images/extrinsic.png
deleted file mode 100644
index 16089a2a..00000000
Binary files a/pages/restake/join_a_pool/images/extrinsic.png and /dev/null differ
diff --git a/pages/restake/join_a_pool/images/join.png b/pages/restake/join_a_pool/images/join.png
deleted file mode 100644
index 6d6a3141..00000000
Binary files a/pages/restake/join_a_pool/images/join.png and /dev/null differ
diff --git a/pages/restake/join_a_pool/images/lst-join.png b/pages/restake/join_a_pool/images/lst-join.png
deleted file mode 100644
index 9129d0ee..00000000
Binary files a/pages/restake/join_a_pool/images/lst-join.png and /dev/null differ
diff --git a/pages/restake/join_a_pool/images/sign.png b/pages/restake/join_a_pool/images/sign.png
deleted file mode 100644
index dcb9a306..00000000
Binary files a/pages/restake/join_a_pool/images/sign.png and /dev/null differ
diff --git a/pages/restake/join_a_pool/images/success.png b/pages/restake/join_a_pool/images/success.png
deleted file mode 100644
index b83e3a02..00000000
Binary files a/pages/restake/join_a_pool/images/success.png and /dev/null differ
diff --git a/pages/restake/join_a_pool/polkadotjs.mdx b/pages/restake/join_a_pool/polkadotjs.mdx
index 2eb4108e..eb531df2 100644
--- a/pages/restake/join_a_pool/polkadotjs.mdx
+++ b/pages/restake/join_a_pool/polkadotjs.mdx
@@ -1,54 +1,52 @@
## How to Join a Liquid Staking Pool Using PolkadotJS
-Joining a liquid staking pool on the Tangle Network using PolkadotJS is a simple process. Follow these steps:
-
### Step 1: Access the PolkadotJS Interface
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via direct link:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Navigate to LST Tab
-- Click on the **Extrinsics** tab from the top menu.
+- Click on the **Developer** → **Extrinsics** tab from the top menu.
-![PolkadotJS Extrinsics](./images/extrinsic.png)
+![PolkadotJS Extrinsics](/images/extrinsic.png)
-- Scroll down to the **Lst** section where you will see the `join` option.
+- Select the **lst** section where you will see the `join` option.
-![PolkadotJS Join](./images/join.png)
+![PolkadotJS Join](/images/liquid-staking/join-pool-polkadotjs/join.png)
### Step 3: Choose a Pool
- Review the list of available staking pools, including details such as performance, commission rates, and validator selections.
- Select a pool that suits your preferences based on performance, operator reputation, and commission fees.
-You can view all pools by clicking on the **ChainState** tab and navigating to the **Lst** section and selecting **bondedPools**.
+You can view all pools by clicking on the **Developer** → **Chain state** tab and navigating to the **lst** section and selecting **bondedPools**.
-![PolkadotJS Bonded Pools](./images/bondedpools.png)
+![PolkadotJS Bonded Pools](/images/liquid-staking/join-pool-polkadotjs/bondedpools.png)
### Step 4: Join the Pool
- Enter the amount of tokens you wish to stake in the pool and the pool ID.
-![PolkadotJS Join Pool](./images/lst-join.png)
+![PolkadotJS Join Pool](/images/liquid-staking/join-pool-polkadotjs/lst-join.png)
- Confirm the transaction by signing it with your wallet, and your tokens will be bonded to the pool.
-![PolkadotJS Sign](./images/sign.png)
+![PolkadotJS Sign](/images/liquid-staking/join-pool-polkadotjs/sign.png)
### Step 5: Confirmation
-- If successful, you should see the following screen:
+- If successful, you should see the following confirmation toast notification:
-![PolkadotJS Pool Joined](./images/success.png)
+![PolkadotJS Pool Joined](/images/liquid-staking/join-pool-polkadotjs/success.png)
- You can navigate to the **Network** tab to view the events.
-![PolkadotJS Events](./images/events.png)
+![PolkadotJS Events](/images/liquid-staking/join-pool-polkadotjs/events.png)
-- Finally, you should have the `LST` tokens in your account.
+- Finally, you should have the LST tokens in your account.
diff --git a/pages/restake/join_a_pool/tangle.mdx b/pages/restake/join_a_pool/tangle.mdx
index fefda569..6bcb7fe6 100644
--- a/pages/restake/join_a_pool/tangle.mdx
+++ b/pages/restake/join_a_pool/tangle.mdx
@@ -1,3 +1,32 @@
## How to Join a Liquid Staking Pool Using Tangle DApp
-TBD
+### Step 1: Access Tangle DApp & Connect Wallet
+
+- Open [Tangle DApp's Liquid Staking page](https://app.tangle.tools/liquid-staking).
+- Connect your wallet to the DApp by clicking on the **Connect Wallet** button on the top right and selecting your preferred wallet provider.
+- Connect to the desired Tangle network by selecting the appropriate network from the dropdown list. Note that liquid staking pools are only available on the networks in which they are created--If you don't see a specific pool that you're looking for, make sure you're connected to the correct network.
+
+![Selecting a Liquid Staking Network](/images/liquid-staking/select-ls-network.png)
+
+### Step 2: Enter a Deposit Amount & Select a Pool
+
+- Enter the amount of tokens you wish to deposit into the pool. You can view your available balance next to the wallet icon.
+
+![Entering Deposit Amount](/images/liquid-staking/input-amount-select-tab.png)
+
+- Select a pool by clicking on the **All Pools** tab, clicking on a protocol to expand its list of pools.
+- The table also lists key details such as APY and Total Value Locked (TVL) for each pool. These metrics can help you evaluate the pool's performance and popularity.
+
+### Step 3: Join Pool & Stake
+
+- The lower input field displays the total amount of the selected pool's tokens that you'll receive from your deposit. This amount is calculated using the exchange rate and also includes the liquid staking fee, if applicable.
+- Once you've double-checked all the transaction details, click on the **Join Pool & Stake** button to deposit your tokens into the selected pool, and proceed to confirm the transaction with your wallet.
+
+![Select a Pool and Click Stake](/images/liquid-staking/select-pool-and-click-stake.png)
+
+### Step 4: Monitor Your Stake
+
+- Use the **My Pools** tab to manage & monitor the pools and stake in which you're participating. Here, you can view your staked amount, rewards, and the pool's performance.
+- You can also increase your stake and unstake a portion of your tokens.
+
+![My Pools Tab](/images/liquid-staking/my-pools.png)
diff --git a/pages/restake/join_operator/join.mdx b/pages/restake/join_operator/join.mdx
index 994c3507..5a2bd4ee 100644
--- a/pages/restake/join_operator/join.mdx
+++ b/pages/restake/join_operator/join.mdx
@@ -11,14 +11,14 @@ To participate in restaking, a user can join as an operator by providing a bond
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Join as an Operator
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
@@ -30,7 +30,7 @@ Sign and submit the transaction. Make sure the account you are using has enough
![PolkadotJS Transaction](./images/sign.png)
-If successful, you should see the following screen:
+If successful, you should see the following confirmation toast notification:
![PolkadotJS Operator Joined](./images/success.png)
diff --git a/pages/restake/join_operator/leave.mdx b/pages/restake/join_operator/leave.mdx
index 5de5a048..b040a100 100644
--- a/pages/restake/join_operator/leave.mdx
+++ b/pages/restake/join_operator/leave.mdx
@@ -10,16 +10,16 @@ and then you execute the leave operation after the leave delay period has passed
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The tangle mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Schedule Operator Leave
Ensure you have joined as an operator first, see [Join as an Operator](./join.mdx).
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
@@ -38,16 +38,16 @@ If successful, your leave will be scheduled.
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Cancel Operator Unstake
Ensure you have joined as an operator first, see [Join as an Operator](./join.mdx) and have scheduled an leave.
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
@@ -66,16 +66,16 @@ If successful, your unstake will be canceled.
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Execute Operator Leave
Ensure you have joined as an operator first, see [Join as an Operator](./join.mdx) and have scheduled a leave, also ensure the leave delay period has passed.
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
diff --git a/pages/restake/join_operator/stake.mdx b/pages/restake/join_operator/stake.mdx
index f6faf85f..675b5096 100644
--- a/pages/restake/join_operator/stake.mdx
+++ b/pages/restake/join_operator/stake.mdx
@@ -9,16 +9,16 @@ Operators can increase their stake to participate to increase their chances of b
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Bond More as an Operator
Ensure you have joined as an operator first, see [Join as an Operator](./join.mdx).
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
@@ -30,7 +30,7 @@ Sign and submit the transaction. Make sure the account you are using has enough
![PolkadotJS Transaction](./images/signstake.png)
-If successful, you should see the following screen:
+If successful, you should see the following confirmation toast notification:
![PolkadotJS Operator Joined](./images/successstake.png)
@@ -41,16 +41,16 @@ If successful, you should see the following screen:
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The tangle mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Schedule Operator Unstake
Ensure you have joined as an operator first, see [Join as an Operator](./join.mdx).
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
@@ -71,16 +71,16 @@ If successful, your tokens will be unlocked after the unstake delay period.
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Cancel Operator Unstake
Ensure you have joined as an operator first, see [Join as an Operator](./join.mdx) and have scheduled an unstake.
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
@@ -101,16 +101,16 @@ If successful, your unstake will be canceled.
- Open [PolkadotJS Apps](https://polkadot.js.org/apps/).
- Connect to the Tangle Network by selecting the appropriate network from the dropdown list.
-Alternatively, you can access it via the tangle explorer:
+For convenience, here are the PolkadotJS direct links for Tangle Testnet and Mainnet:
-- The Tangle Testnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
-- The Tangle Mainnet is available at: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
+- Tangle Testnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet-rpc.tangle.tools#/explorer
+- Tangle Mainnet: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.tangle.tools#/explorer
### Step 2: Execute Operator Unstake
Ensure you have joined as an operator first, see [Join as an Operator](./join.mdx) and have scheduled an unstake, also ensure the unstake delay period has passed.
-- Navigate to the **Extrinsics** tab on PolkadotJS.
+- Navigate to the **Developer** → **Extrinsics** tab on PolkadotJS.
![PolkadotJS Extrinsics](./images/extrinsic.png)
diff --git a/pages/restake/lst-assets.mdx b/pages/restake/lst-assets.mdx
index c867c3d0..a4449e60 100644
--- a/pages/restake/lst-assets.mdx
+++ b/pages/restake/lst-assets.mdx
@@ -1,11 +1,21 @@
-# Tangle LST Assets
+import Callout from "/components/Callout";
-### Assets supported on Tangle Chain:
+# Supported Liquid Staking Assets
+
+
+When performing liquid staking operations, ensure that you are using the correct network for the asset you are working with.
+
+
+There are various assets supported for liquid staking operations. The important thing is that each asset may only be available on a specific network. For example, TNT is available on the Tangle Mainnet, while DOT will be available on the Tangle Parachain.
+
+Support for additional assets may be added through on-chain governance, so join our Discord and Telegram channels to stay tuned for updates. If you happen to have suggestions for new assets, feel free to reach out!
+
+### Supported assets on Tangle Mainnet:
- TNT
-### Assets supported on Tangle Parachain (Coming Soon):
+### Supported assets on Tangle Parachain (Coming Soon):
-- DOT
-- BFC
-- PHA
+- DOT (Polkadot)
+- BFC (Bifrost)
+- PHA (Phala)
diff --git a/pages/restake/lst-concepts.mdx b/pages/restake/lst-concepts.mdx
index f5890767..dc22ff21 100644
--- a/pages/restake/lst-concepts.mdx
+++ b/pages/restake/lst-concepts.mdx
@@ -2,23 +2,23 @@
## Introduction
-Liquid staking on Tangle Network allows users to participate in staking while still maintaining liquidity of their staked assets. This mechanism is implemented via delegation pools, enabling participants to stake their tokens in a pool, earn rewards, and retain the ability to unbond or transfer staked assets without waiting for the traditional staking lock-up periods.
+Liquid staking on Tangle allows users to participate in staking while still maintaining liquidity of their staked assets. This mechanism is implemented via delegation pools, enabling participants to stake their tokens in a pool, earn rewards, and retain the ability to unbond or transfer staked assets _without_ waiting for the traditional staking lock-up periods.
-![Liquid Staking Introduction](/images/lst-intro.png)
+![Liquid Staking Introduction](/images/liquid-staking/lst-intro.png)
## Key Components of Liquid Staking
### 1. **Pools and Roles**
-- **Pools** are the fundamental unit of staking on Tangle. Pools are managed by specific roles:
+- **Pools**: The fundamental unit of liquid staking on Tangle. Pools are managed by specific roles:
- **Root**: The administrator who has full control over the pool and can update roles.
- **Nominator**: An account responsible for nominating validators on behalf of the pool.
-- **Bouncer**: An account that can change the state of the pool.
+- **Bouncer**: An account that can change the state of the pool (eg. open or close it, limiting whether new users can join the pool).
- **Depositor**: The user who creates the pool and deposits the initial bond.
### 2. **Bonding and Staking**
-- Users can **bond** their assets to a pool using the `join` function, effectively staking their tokens in exchange for pool rewards. The bond amount is transferred to the pool's account and increases the pool's total bond and the user receives pool tokens (LST) in return.
+- Users can **bond** their assets to a pool using the `join` function, effectively staking their tokens in exchange for pool rewards. The bond amount is transferred to the pool's account increasing the pool's total bond and the user receives pool tokens (LST) in return.
- Additional funds can be **bonded** using the `bond_extra` function. This allows users to add more tokens to their existing stake, either from free balance or pending rewards.
### 3. **Unbonding**
diff --git a/pages/restake/lst-rewards.mdx b/pages/restake/lst-rewards.mdx
index f4dc596b..86bf9c44 100644
--- a/pages/restake/lst-rewards.mdx
+++ b/pages/restake/lst-rewards.mdx
@@ -1,7 +1,5 @@
# Tangle Liquid Staking Rewards
-## Key Incentives of Liquid Staking
-
### 1. **Earning Staking Rewards with Liquidity**
- **Benefit:** Liquid staking allows participants to earn staking rewards without locking their assets for extended periods. Users can continue to receive rewards while maintaining the ability to transfer or utilize their staked tokens elsewhere in the ecosystem.
diff --git a/pages/restake/lst-working.mdx b/pages/restake/lst-working.mdx
index 1cb8b636..ba7531cc 100644
--- a/pages/restake/lst-working.mdx
+++ b/pages/restake/lst-working.mdx
@@ -4,43 +4,48 @@ import ExpandableImage from "../../components/ExpandableImage";
## Liquid Staking Workflow
-
+
### **Creating a Pool**
-The inital step is to create a pool, this is permissionless and can be done by anyone. The pool is created with an initial deposit, this can be any amount of tokens, but must be greater than the minimum bond amount.
-If you are simply looking to liquid stake your assets, you dont have to create a pool, you can use the pool id of an existing pool when bonding.
+The first step is to create a pool, this is permissionless and can be done by anyone. The pool is created with an initial deposit, which can be any amount of tokens, but must be greater than the minimum bond amount.
+
+If you are simply looking to liquid stake your assets, you don't have to create a pool. Instead, you can join an existing pool by using its unique id when bonding.
+
+More detailed instructions can be found at the [How to Create a Liquid Staking Pool](./create_a_pool/lst-pool-create-tangle.mdx) page.
#### Who can create a pool?
-Pool creation is a permissionless process, anyone can create a pool. The only requirement is that the initial deposit must be greater than the minimum bond amount.
+Pool creation is a permissionless process, which means that anyone can create a pool. The only requirement is that the initial deposit must be greater than the minimum bond amount.
-#### Why do I create a pool?
+#### Why should I create my own pool?
-You can create a pool to nominate validators on behalf of your users. By creating a pool, you are responsible for the rewards of the assets in the pool.
-You will need to nominate validators and ensure that the pool users are getting the best possible returns. In return for this service, you can set a commission rate for the pool.
-If you are providing the best reward rates of all pools, you will be able to attract more users to your pool, and earn a higher commission.
+- **Choose Your Own Validators**: You can create a pool to nominate validators on behalf of your users. By creating a pool, you are responsible for the rewards of the assets in the pool. Always remember to always do due diligence on the validators you nominate.
+- **Ongoing Maintenance**: You will need to nominate validators and ensure that the pool users are getting the best possible returns. In return for this service, you can set a commission rate for the pool. This means that you may need to regularly monitor the performance of the validators and update nominations.
+- **Earn Commission**: If your pool is providing competitive reward rates, it will naturally attract more users, leading to higher liquidity, and thus increasing your commission earnings.
### **Joining a Pool**
A user initiates liquid staking by joining an open pool using the `join` function. This transfers the specified bond amount to the pool and allows the user to start earning rewards.
-When you join a pool, you receive LST tokens in return. The amount of LST tokens you receive is based on the pool's reward rate and the amount of tokens you bond.
+
+When you join a pool, you receive liquid staking tokens (LSTs) in return. The amount of LST tokens you receive is based on the pool's reward rate and the amount of tokens you bond.
#### Are all LST tokens the same?
-No, all LST tokens are not the same. Each pool is a separate entity, and the LST token of a pool is only valid for the pool it was created in. This means that the LST token of one pool is not accepted by another pool.
+No, all LST tokens are not the same. Each pool is a separate entity with an associated LST, and the LST token of a pool is only valid for the pool it was created in. This means that the LST token of one pool is not accepted by another pool.
+
This also means rewards are captured by the pool, and are not shared with other pools.
### **Bonding Extra**
-Users can add additional tokens to their stake using the `bond_extra` function. This can be done from free balance or from pending rewards.
+Users can add additional tokens to their stake using the `bond_extra` function. The amount to be bonded can originate from free balance or from pending rewards.
### **Unbonding and Withdrawing**
When a user wants to exit the pool or reduce their stake, they can use the `unbond` function to unbond a portion of their stake.
-At the time of unbonding, the LST tokens are burned. There is a 28 day unbonding period for all unbonds.
-At the end of the unbonding period, you can withdraw your unbonded tokens. This is done using the `withdraw_unbonded` function.
-Learn more about how to execute these functions in [Join a Liquid Staking Pool](./join_a_pool/polkadotjs.mdx).
+At the time of unbonding, the LST tokens are burned. There is a 28 day unbonding period for all unbonds. During this period, the unbonding tokens are locked and will not earn rewards.
+
+At the end of the unbonding period, you can withdraw your unbonded tokens. This is done using the `withdraw_unbonded` function.
-For detailed instructions on creating a pool, visit the [Creating a Liquid Staking Pool](./create_a_pool/lst-pool-create.mdx).
+Learn more about how to execute these functions at the [Join a Liquid Staking Pool](./join_a_pool/tangle.mdx) page.
diff --git a/pages/restake/lst_developers/intro.mdx b/pages/restake/lst_developers/intro.mdx
index 4599a2a6..2d595b26 100644
--- a/pages/restake/lst_developers/intro.mdx
+++ b/pages/restake/lst_developers/intro.mdx
@@ -14,7 +14,7 @@ You can import the precompile in your Solidity project like this:
import "LSTPrecompile.sol";
```
-To then deposit tokens into the precompile, you can use the `deposit` function:
+Then, to deposit tokens into the precompile, you can use the `deposit` function:
```solidity
function join(uint256 amount, uint256 poolId) external;
diff --git a/pages/restake/create_a_pool/images/extrinsic.png b/public/images/extrinsic.png
similarity index 100%
rename from pages/restake/create_a_pool/images/extrinsic.png
rename to public/images/extrinsic.png
diff --git a/public/images/liquid-staking/create-pool-polkadotjs/check-min-create-bond.png b/public/images/liquid-staking/create-pool-polkadotjs/check-min-create-bond.png
new file mode 100644
index 00000000..672c4b14
Binary files /dev/null and b/public/images/liquid-staking/create-pool-polkadotjs/check-min-create-bond.png differ
diff --git a/public/images/liquid-staking/create-pool-polkadotjs/commission.png b/public/images/liquid-staking/create-pool-polkadotjs/commission.png
new file mode 100644
index 00000000..e58193e0
Binary files /dev/null and b/public/images/liquid-staking/create-pool-polkadotjs/commission.png differ
diff --git a/public/images/liquid-staking/create-pool-polkadotjs/create.png b/public/images/liquid-staking/create-pool-polkadotjs/create.png
new file mode 100644
index 00000000..7bc8d397
Binary files /dev/null and b/public/images/liquid-staking/create-pool-polkadotjs/create.png differ
diff --git a/public/images/liquid-staking/create-pool-polkadotjs/events.png b/public/images/liquid-staking/create-pool-polkadotjs/events.png
new file mode 100644
index 00000000..84cb5256
Binary files /dev/null and b/public/images/liquid-staking/create-pool-polkadotjs/events.png differ
diff --git a/public/images/liquid-staking/create-pool-polkadotjs/extrinsic.png b/public/images/liquid-staking/create-pool-polkadotjs/extrinsic.png
new file mode 100644
index 00000000..8f826ebb
Binary files /dev/null and b/public/images/liquid-staking/create-pool-polkadotjs/extrinsic.png differ
diff --git a/public/images/liquid-staking/create-pool-polkadotjs/inblock.png b/public/images/liquid-staking/create-pool-polkadotjs/inblock.png
new file mode 100644
index 00000000..6c2b7b70
Binary files /dev/null and b/public/images/liquid-staking/create-pool-polkadotjs/inblock.png differ
diff --git a/public/images/liquid-staking/create-pool-polkadotjs/sign.png b/public/images/liquid-staking/create-pool-polkadotjs/sign.png
new file mode 100644
index 00000000..1a8f2a35
Binary files /dev/null and b/public/images/liquid-staking/create-pool-polkadotjs/sign.png differ
diff --git a/public/images/liquid-staking/create-pool-tangle/create-pool-btn.png b/public/images/liquid-staking/create-pool-tangle/create-pool-btn.png
new file mode 100644
index 00000000..45b7cd28
Binary files /dev/null and b/public/images/liquid-staking/create-pool-tangle/create-pool-btn.png differ
diff --git a/public/images/liquid-staking/create-pool-tangle/create-pool-form.png b/public/images/liquid-staking/create-pool-tangle/create-pool-form.png
new file mode 100644
index 00000000..cc9d5372
Binary files /dev/null and b/public/images/liquid-staking/create-pool-tangle/create-pool-form.png differ
diff --git a/public/images/liquid-staking/input-amount-select-tab.png b/public/images/liquid-staking/input-amount-select-tab.png
new file mode 100644
index 00000000..ba55ade6
Binary files /dev/null and b/public/images/liquid-staking/input-amount-select-tab.png differ
diff --git a/public/images/liquid-staking/join-pool-polkadotjs/bondedpools.png b/public/images/liquid-staking/join-pool-polkadotjs/bondedpools.png
new file mode 100644
index 00000000..7411f984
Binary files /dev/null and b/public/images/liquid-staking/join-pool-polkadotjs/bondedpools.png differ
diff --git a/public/images/liquid-staking/join-pool-polkadotjs/events.png b/public/images/liquid-staking/join-pool-polkadotjs/events.png
new file mode 100644
index 00000000..e4270576
Binary files /dev/null and b/public/images/liquid-staking/join-pool-polkadotjs/events.png differ
diff --git a/public/images/liquid-staking/join-pool-polkadotjs/join.png b/public/images/liquid-staking/join-pool-polkadotjs/join.png
new file mode 100644
index 00000000..f7b79d82
Binary files /dev/null and b/public/images/liquid-staking/join-pool-polkadotjs/join.png differ
diff --git a/public/images/liquid-staking/join-pool-polkadotjs/lst-join.png b/public/images/liquid-staking/join-pool-polkadotjs/lst-join.png
new file mode 100644
index 00000000..e9611955
Binary files /dev/null and b/public/images/liquid-staking/join-pool-polkadotjs/lst-join.png differ
diff --git a/public/images/liquid-staking/join-pool-polkadotjs/sign.png b/public/images/liquid-staking/join-pool-polkadotjs/sign.png
new file mode 100644
index 00000000..22b35a1e
Binary files /dev/null and b/public/images/liquid-staking/join-pool-polkadotjs/sign.png differ
diff --git a/public/images/liquid-staking/join-pool-polkadotjs/success.png b/public/images/liquid-staking/join-pool-polkadotjs/success.png
new file mode 100644
index 00000000..ace42404
Binary files /dev/null and b/public/images/liquid-staking/join-pool-polkadotjs/success.png differ
diff --git a/public/images/lst-intro.png b/public/images/liquid-staking/lst-intro.png
similarity index 100%
rename from public/images/lst-intro.png
rename to public/images/liquid-staking/lst-intro.png
diff --git a/public/images/lst-workflow.png b/public/images/liquid-staking/lst-workflow.png
similarity index 100%
rename from public/images/lst-workflow.png
rename to public/images/liquid-staking/lst-workflow.png
diff --git a/public/images/liquid-staking/my-pools.png b/public/images/liquid-staking/my-pools.png
new file mode 100644
index 00000000..24139e5d
Binary files /dev/null and b/public/images/liquid-staking/my-pools.png differ
diff --git a/public/images/liquid-staking/select-ls-network.png b/public/images/liquid-staking/select-ls-network.png
new file mode 100644
index 00000000..1c642f4a
Binary files /dev/null and b/public/images/liquid-staking/select-ls-network.png differ
diff --git a/public/images/liquid-staking/select-pool-and-click-stake.png b/public/images/liquid-staking/select-pool-and-click-stake.png
new file mode 100644
index 00000000..610d9fc1
Binary files /dev/null and b/public/images/liquid-staking/select-pool-and-click-stake.png differ
diff --git a/public/images/restake/bridge/confirmation.png b/public/images/restake/bridge/confirmation.png
new file mode 100644
index 00000000..3dad17b6
Binary files /dev/null and b/public/images/restake/bridge/confirmation.png differ
diff --git a/public/images/restake/bridge/form.png b/public/images/restake/bridge/form.png
new file mode 100644
index 00000000..48ffefe5
Binary files /dev/null and b/public/images/restake/bridge/form.png differ
diff --git a/public/images/restake/bridge/metamask-tx-1.png b/public/images/restake/bridge/metamask-tx-1.png
new file mode 100644
index 00000000..75afeee7
Binary files /dev/null and b/public/images/restake/bridge/metamask-tx-1.png differ
diff --git a/public/images/restake/bridge/metamask-tx-2.png b/public/images/restake/bridge/metamask-tx-2.png
new file mode 100644
index 00000000..a2a4f28b
Binary files /dev/null and b/public/images/restake/bridge/metamask-tx-2.png differ
diff --git a/public/images/restake/bridge/select-networks.png b/public/images/restake/bridge/select-networks.png
new file mode 100644
index 00000000..8c0a9741
Binary files /dev/null and b/public/images/restake/bridge/select-networks.png differ
diff --git a/public/images/restake/bridge/tx-status-toast.png b/public/images/restake/bridge/tx-status-toast.png
new file mode 100644
index 00000000..02f293b8
Binary files /dev/null and b/public/images/restake/bridge/tx-status-toast.png differ
diff --git a/public/images/restake/delegate/canceldelegatorunstake.png b/public/images/restake/delegate/canceldelegatorunstake.png
new file mode 100644
index 00000000..cbcffc89
Binary files /dev/null and b/public/images/restake/delegate/canceldelegatorunstake.png differ
diff --git a/public/images/restake/delegate/dapp-steps.png b/public/images/restake/delegate/dapp-steps.png
new file mode 100644
index 00000000..1ebbd80c
Binary files /dev/null and b/public/images/restake/delegate/dapp-steps.png differ
diff --git a/public/images/restake/delegate/delegate-tx-confirmation.png b/public/images/restake/delegate/delegate-tx-confirmation.png
new file mode 100644
index 00000000..fe06549e
Binary files /dev/null and b/public/images/restake/delegate/delegate-tx-confirmation.png differ
diff --git a/public/images/restake/delegate/delegate.png b/public/images/restake/delegate/delegate.png
new file mode 100644
index 00000000..71ac630c
Binary files /dev/null and b/public/images/restake/delegate/delegate.png differ
diff --git a/public/images/restake/delegate/delegateinblock.png b/public/images/restake/delegate/delegateinblock.png
new file mode 100644
index 00000000..b77c244f
Binary files /dev/null and b/public/images/restake/delegate/delegateinblock.png differ
diff --git a/public/images/restake/delegate/delegatesign.png b/public/images/restake/delegate/delegatesign.png
new file mode 100644
index 00000000..e5c4b271
Binary files /dev/null and b/public/images/restake/delegate/delegatesign.png differ
diff --git a/public/images/restake/delegate/executedelegatorUnstake.png b/public/images/restake/delegate/executedelegatorUnstake.png
new file mode 100644
index 00000000..0b972c9d
Binary files /dev/null and b/public/images/restake/delegate/executedelegatorUnstake.png differ
diff --git a/public/images/restake/delegate/scheduleunstake.png b/public/images/restake/delegate/scheduleunstake.png
new file mode 100644
index 00000000..bc46b7f5
Binary files /dev/null and b/public/images/restake/delegate/scheduleunstake.png differ
diff --git a/public/images/restake/deposit/dapp-steps.png b/public/images/restake/deposit/dapp-steps.png
new file mode 100644
index 00000000..6423788b
Binary files /dev/null and b/public/images/restake/deposit/dapp-steps.png differ
diff --git a/public/images/restake/deposit/deposit-tx-confirmation.png b/public/images/restake/deposit/deposit-tx-confirmation.png
new file mode 100644
index 00000000..baefcd4b
Binary files /dev/null and b/public/images/restake/deposit/deposit-tx-confirmation.png differ
diff --git a/public/images/restake/deposit/deposit.png b/public/images/restake/deposit/deposit.png
new file mode 100644
index 00000000..585a09a3
Binary files /dev/null and b/public/images/restake/deposit/deposit.png differ
diff --git a/public/images/restake/deposit/depositinblock.png b/public/images/restake/deposit/depositinblock.png
new file mode 100644
index 00000000..508761d0
Binary files /dev/null and b/public/images/restake/deposit/depositinblock.png differ
diff --git a/public/images/restake/deposit/depositsign.png b/public/images/restake/deposit/depositsign.png
new file mode 100644
index 00000000..13bdd370
Binary files /dev/null and b/public/images/restake/deposit/depositsign.png differ
diff --git a/public/images/restake/how-to-restake-polkadotjs/executewithdraw.png b/public/images/restake/how-to-restake-polkadotjs/executewithdraw.png
new file mode 100644
index 00000000..c1698ff1
Binary files /dev/null and b/public/images/restake/how-to-restake-polkadotjs/executewithdraw.png differ
diff --git a/public/images/restake/how-to-restake-polkadotjs/schedulewithdraw.png b/public/images/restake/how-to-restake-polkadotjs/schedulewithdraw.png
new file mode 100644
index 00000000..160bd7dc
Binary files /dev/null and b/public/images/restake/how-to-restake-polkadotjs/schedulewithdraw.png differ
diff --git a/public/images/restake/unstake/cancel-unstake.png b/public/images/restake/unstake/cancel-unstake.png
new file mode 100644
index 00000000..72d802f5
Binary files /dev/null and b/public/images/restake/unstake/cancel-unstake.png differ
diff --git a/public/images/restake/unstake/steps.png b/public/images/restake/unstake/steps.png
new file mode 100644
index 00000000..a77a4159
Binary files /dev/null and b/public/images/restake/unstake/steps.png differ
diff --git a/public/images/restake/unstake/unstake-requests-table.png b/public/images/restake/unstake/unstake-requests-table.png
new file mode 100644
index 00000000..a59ea79f
Binary files /dev/null and b/public/images/restake/unstake/unstake-requests-table.png differ
diff --git a/public/images/restake/unstake/unstake-tx-confirmation.png b/public/images/restake/unstake/unstake-tx-confirmation.png
new file mode 100644
index 00000000..1542f2a0
Binary files /dev/null and b/public/images/restake/unstake/unstake-tx-confirmation.png differ
diff --git a/public/images/restake/withdraw/cancel-withdraw.png b/public/images/restake/withdraw/cancel-withdraw.png
new file mode 100644
index 00000000..1d456c89
Binary files /dev/null and b/public/images/restake/withdraw/cancel-withdraw.png differ
diff --git a/public/images/restake/withdraw/steps.png b/public/images/restake/withdraw/steps.png
new file mode 100644
index 00000000..a02db40e
Binary files /dev/null and b/public/images/restake/withdraw/steps.png differ
diff --git a/public/images/restake/withdraw/withdraw-tx-confirmation.png b/public/images/restake/withdraw/withdraw-tx-confirmation.png
new file mode 100644
index 00000000..d44c5562
Binary files /dev/null and b/public/images/restake/withdraw/withdraw-tx-confirmation.png differ