# What is Bifrost

{% embed url="<https://www.youtube.com/watch?t=2s&v=DeWBzIs1oNg>" %}

Bifrost is a **staking yield layer** that establishes a standardized multi-chain liquid staking rewards infrastructure, delivering composable crypto-native yields for stablecoins, RWAs, and DeFi across various blockchains. Its modular design allows developers to tap into multi-chain staking rewards with one integration, greatly lowering development costs and enhancing user simplicity.

<figure><img src="/files/vbuOXA9nOYbO09WKx1Cd" alt=""><figcaption><p>Bifrost's vision</p></figcaption></figure>

The easiest way to understand Bifrost is to see it as a derivative issuer that provides liquidity for all pledged assets, issuing corresponding shadow assets during the bonding period of the original assets. At the same time, the shadow asset is a fungible Token that can be circulated in different DEXs, pools, protocols and across chains.

As a DeFi protocol, Bifrost is aiming to solve the following issues in PoS ecosystems:

* [x] The paradox between **staking** rewards and **DeFi** yields
* [x] The balance between **staking/circulating tokens** and **security** of PoS chains
* [x] **Staking** rewards in **cross-chain** scenario

According to the questions above, Bifrost's solution **vToken** (liquid staking **voucher Token**) enables users to convert their PoS tokens into vTokens in order to obtain staking liquidity and staking rewards synchronously, without barriers in cross-chain scenarios.

<figure><img src="/files/iTJm415bTSrQIMuOj7Sz" alt=""><figcaption></figcaption></figure>

### Why Bifrost?

{% hint style="info" %}
Have a look to the blog article: [A Deep Dive into Bifrost App Chain Liquid Staking Strategy](https://bifrost.io/blog/article-9)
{% endhint %}

#### **Liquid-Staking**

Mint vTokens on Bifrost (equals stake through Bifrost), you can control your underlying staking assets during the locked period.

#### **Automatic Staking Management**

Bifrost Staking protocols run under the Bifrost pallets, earning staking rewards every era, without centralized risks.

#### Reduced Unstaking Period

Bifrost SLP helps users to realize the possibility of early redemption by matching the real-time staking quantity with the redemption quantity at the protocol layer in the form of a queue. Theoretically, it can achieve faster redemption.

#### **Extra Staking Returns + DeFi Yields**

Bifrost offers delegate staking for users by selecting a set of validators and rebalancing the rewards to give more profitable solutions. By holding vTokens, you will have chances to head into a world of yield scenarios.


# Bifrost vs Others

> Read the blog article: [The Feedback and Growth Potential of Bifrost](https://bifrost.io/blog/the-feedback-and-growth-potential-of-bifrost)

### Bifrost's LST Advantages

Unlike most liquid staking protocols that are deployed as contracts on individual chains, Bifrost is an **app chain** (Polkadot/Kusama parachain). This architectural choice delivers unique advantages:

<table><thead><tr><th width="506.28515625">Feature</th><th>Bifrost</th><th>Traditional LSTs</th></tr></thead><tbody><tr><td>Standardized RPC for multiple consensus systems</td><td>✅</td><td>❌</td></tr><tr><td>Concentrated liquidity on a single spot for omni-chain apps</td><td>✅</td><td>❌</td></tr><tr><td>Retain governance rights of underlying assets</td><td>✅</td><td>❌ </td></tr><tr><td>All token types stakeable through one DApp</td><td>✅</td><td>❌</td></tr><tr><td>LST usable as Gas Fee</td><td>✅</td><td>❌</td></tr><tr><td>Native leverage staking</td><td>✅</td><td>❌</td></tr></tbody></table>

### Why Build a Chain?

Most liquid staking protocols deploy contracts on the original chain:

* Lido's stETH is an Ethereum ERC-20 contract (Solidity)
* Lido's stSOL is a Solana SPL contract (Rust)

This means each LST is natively limited to its home chain.

Bifrost's vTokens use a **cross-chain minting scheme**: all vTokens are minted on the Bifrost chain. Since Bifrost is a Polkadot parachain, vTokens are native assets of the Polkadot ecosystem and can be transported across chains via XCM — without bridges.

> **The future is omni-chain.** Cross-chain applications will be the dominant form of dApps, and cross-chain calls between applications on different chains will be the norm. Bifrost is designed for this reality.

### Intelligent Validator Selection

Bifrost uses an algorithm to select validators based on:

* Downtime history
* Commission rates
* Self-stake ratio (leverage ratio)
* Historical credibility / slash history

This delivers a base APY that is more competitive than most single-chain LST protocols.

### Unique Features Summary

* **Standardized omni-chain adaptation** — one SLP integration, multiple chains
* **Unified liquidity** — no fragmented liquidity pools per chain
* **Cross-chain composability** — DeFi projects integrate once, work everywhere
* **vDOT vs Polkadot Nomination Pools** — vDOT provides liquidity; Nomination Pools do not


# Bifrost cross-chain architecture

### Overview

Unlike Ethereum's liquid staking protocols, Bifrost has supported Polkadot's omni-chain ecosystem from day one. This strategic choice allows Bifrost to address the cross-chain friction users face when minting and using vTokens across chains.

### The Problem Without Cross-Chain Architecture

Consider a user who wants to mint vETH:

1. Transfer ETH from Ethereum → Bifrost-Polkadot chain
2. Mint vETH on Bifrost
3. Transfer vETH back to Ethereum

This 3-step process requires multiple transactions and a non-trivial understanding of cross-chain mechanics.

### The Solution: SLPx + Cross-Chain Architecture

<figure><img src="/files/bKoeai5fJpqn5PXBVYyi" alt=""><figcaption></figcaption></figure>

Bifrost's cross-chain architecture and **SLPx module** compress this into a single transaction from the user's perspective:

1. User initiates a mint request on Ethereum
2. The SLPx remote call module cross-chain transfers ETH to Bifrost-Polkadot automatically
3. vETH is minted on Bifrost
4. vETH is transferred back to Ethereum

**The user only sees one transaction.** The cross-chain operations are abstracted away.

> Analogy: Like a **"headquarters + branch"** franchise. Users interact with branches (other chains). Branches communicate with HQ (Bifrost chain). Users are unaware of the underlying cross-chain operations.

### Advantages

#### Unified Liquidity

Instead of bootstrapping separate vToken liquidity pools on every chain, Bifrost concentrates all liquidity on a single chain. When users swap vETH → ETH on Ethereum, they access the unified liquidity pool on Bifrost-Polkadot via remote call — resulting in better prices and lower fees.

#### Cross-Chain Composability

DeFi projects integrating vTokens only need to connect to the primary SLP protocol on Bifrost-Polkadot — not to separate SLP modules on each chain. This dramatically reduces integration complexity.

### SLPx

SLPx is the module that powers cross-chain minting and redemption. It allows users to:

* Mint vTokens on any supported chain without leaving that chain's UI
* Redeem vTokens cross-chain
* Transfer vTokens across chains

**Supported chains:** Polkadot, Kusama, Moonbeam, Astar, Manta, Ethereum, Base, Arbitrum, Optimism, BSC


# Bifrost security model

### Overview

Bifrost's security model is built on multiple complementary layers, protecting both staked assets and network integrity.

### 1. Polkadot Shared Security

Bifrost-Polkadot and Bifrost-Kusama are parachains. Their security and resistance to reorganization are guaranteed by the relay chain.

How it works:

* Polkadot randomly assigns validators to parachains and verifies their blocks
* Parachain blocks are included in relay chain blocks, providing data availability
* Parachains do not need their own validator sets — they inherit security from Polkadot

Bifrost-Polkadot currently has **8+ collator nodes**, which is more than sufficient for network availability and censorship resistance.

### 2. Cross-Chain Communication: XCM

All cross-chain communication within Polkadot uses XCM — a native, trustless protocol.

**How XCM works:**

1. Cross-chain messages enter the **Egress** (exit queue) of the sending chain
2. Collators of the target chain collect messages from other chains' Egress and place them in their **Ingress** (entry queue)
3. Messages are included in relay chain blocks and finalized, then executed by the target chain

This provides fast, secure, ordered, and cost-effective cross-chain message delivery — without external bridges.

> Note: Snowbridge is used for Ethereum and L2 connections where XCM is not available. Bifrost acknowledges this infrastructure is maturing and retains SLP modules on Ethereum and Kusama as a precaution.

### 3. Non-Custodial + Open Source

* All staking processes are executed through **decentralized on-chain contracts and runtime** — no human intervention required
* No third party, including the Bifrost team, can control user funds
* All on-chain code is **open source** and publicly auditable
* Code has been audited by: **Beosin, SlowMist, TokenInsight, Common Prefix, BlockDeep**
* Since inception in 2019, Bifrost has maintained a **flawless security record**

See [Audit Reports](/resources/audit-report) for all reports.

### 4. Secure Validator Set + Slash Protection

**Validator Selection:** Bifrost evaluates validators on:

* Profitability
* Self-stake ratio (leverage ratio)
* Historical credibility and slash history
* Commission rate
* Nominator slot availability

**Proactive Node Switching:** In the event of a slash risk, Bifrost can immediately switch to a different validator — a capability individual stakers typically lack.

**vToken Vault (Insurance Pool):**

* 5% of protocol revenue is automatically allocated to the vToken Vault (slash insurance pool)
* If slashing occurs, this pool compensates vToken holders for losses
* If no slashing occurs, the pool accumulates over time, increasing coverage

**What happens if a slash occurs?**

1. The public insurance treasury (funded by 20% of all vToken commission fees) is used first
2. If insufficient, the protocol reserve (4,000,000 BNC) is tapped
3. If both are insufficient, the vToken exchange rate is adjusted downward, socializing the loss across all vToken holders

### 5. Governance Security

* **No Sudo key** — Bifrost removed the superadmin key from day one (unlike some parachains)
* All token-related functions require **Root origin**, which can only be called through:
  * **Root Track**: \~14-day voting period
  * **Whitelisted Caller Track**: requires positive approval from ≥2/3 of rank-3+ fellowship members
* Even if an attacker controlled all fellowship members' keys, BNC holders could still oppose a malicious referendum
* A Whitelisted Caller proposal requires 100–50% positive votes with 50–2% of total BNC participating

This makes governance attacks practically impossible.


# Tokenomics 2.0

{% embed url="<https://youtu.be/mLvLXPvjVXM>" %}

In order to further expand Bifrost's market share in the liquidity staking track and make BNC holders more closely bound to the Bifrost protocol, this new BNC economic model is now proposed to stimulate the start of Bifrost's growth flywheel by binding the Bifrost protocol revenue sharing with BNC governance and staking functions.

### Core Engine - Buy Back & Revenue Sharing

<figure><img src="/files/HeYX8DgAKROLS1h4oHjc" alt=""><figcaption></figcaption></figure>

**100% of Bifrost protocol revenue** is used for BNC buybacks:

* **90%** → distributed to bbBNC holders
* **10%** → burned (deflationary)

#### Growth Flywheel

<figure><img src="/files/92LvXCPs1aHr3PiTkUBz" alt=""><figcaption></figcaption></figure>

```
BNC value ↑
    → More LST use cases ↑
    → vToken yields ↑
    → Minting volume ↑
    → Protocol revenue ↑
    → bbBNC returns ↑
    → More BNC locked
    → Reduced BNC supply
    → Further BNC value capture ↑
```


# Core - bbBNC

<mark style="color:orange;">**bbBNC**</mark> is a Bifrost **revenue-sharing representation voucher** that enables holders to **maximize their yield through $BNC buyback, yield of vBNC, protocol revenue and boosted farming**.

### What is bbBNC?

bbBNC is an ultimate version evolves from BNC and vBNC by following with protocol revenue.

**1. Native Coin (**<mark style="color:purple;">**$BNC**</mark>**)**

BNC is Bifrost Native Coin, the governance Token of Bifrost. It is commonly used in the Bifrost network for transaction fee payments, treasury spending, and liquidity incentives.

**2. Liquid-staked Native Coin (**<mark style="color:purple;">**$vBNC**</mark>**)**

The liquid-staked version of $BNC, staking rewards appriciating in the value of $vBNC.

#### <mark style="color:orange;">**bbBNC**</mark>**&#x20;= $BNC + $vBNC + Revenue Sharing**&#x20;

Users can obtain bbBNC by liquid staking BNC to acquire vBNC and then locking this vBNC to receive bbBNC. **The amount of bbBNC a user gets depends on the quantity of vBNC locked and the duration of the locking period**.

**bbBNC is non-transferable** and can be redeemed for locked vBNC upon maturity. However, bbBNC can be redeemed before maturity, but users may face a slash for redeeming earlier than the set date. Slash will be fully counted as protocol revenue and will participate in BNC buybacks, burns, and bbBNC incentives.

<figure><img src="/files/GGK1Cot658gWSHEMNwkv" alt=""><figcaption></figcaption></figure>

### Why holding bbBNC?

* **Profit Distribution**: bbBNC holders will share protocol profits. The distribution proportion depends on the amount of bbBNC held and the length of the locking period. The larger the holding and the longer the lock-up period, the higher the share of the profit distribution.
* **Staking Rewards**: bbBNC, obtained by locking vBNC, integrates the staking rewards from Bifrost liquid staking token vBNC.
* **Governance Rights**: bbBNC inherits the governance rights of BNC, allowing holders to participate in the governance of the Bifrost protocol.
* **Boosted farming**: bbBNC holders can receive additional incentives when participating in vToken farming.

### Sources of Bifrost protocol revenue allocates to bbBNC

* **vToken Commission**: The protocol earns a commission from staking rewards through its liquid staking services, which are then transferred to the protocol treasury. This is a significant part of Bifrost's revenue.
* **System Staking**: This is generated by staking assets within the Bifrost system account.
* **Tx Fee**: As an independent app chain, Bifrost charges gas fees for transactions on the Bifrost chain. A percentage of these fees is allocated to the Bifrost treasury.
* **vToken Swap Fees**: Bifrost has established a dedicated LST Stable Swap Pool for vTokens. Users can swap vTokens in this pool, and the Tx fees paid will largely go to liquidity providers (LPs), while a portion will also be shared with bbBNC holders.
* **Expanded Application Revenue**: Bifrost will also launch various extension application services centered around liquid staking, including LST leverage staking (Loop Stake). Users utilizing these services will generate revenue for the Bifrost protocol, thereby providing returns for bbBNC holders.
* **bbBNC Early Redemption Slash**: If bbBNC is redeemed before maturity, a certain slash will be incurred, and the slash will be fully allocated to protocol revenue.


# How to maximize your bbBNC yield?

{% hint style="success" %}
The principle of maximizing bbBNC returns is simple:

The larger **your proportion of bbBNC holdings is in the total supply**, the **more protocol revenue sharing** you will receive, thus increasing your APY.
{% endhint %}

There are three ways to maximize your bbBNC returns

* Extend BNC & vBNC locking
* Deposit vToken & vDOT-BNC LP for an additional boosting
* **DO NOT** unlock your position too early

{% stepper %}
{% step %}

### Extend your BNC & vBNC locking is the most efficient way to amplify your bbBNC APY.

If you have an existing bbBNC position, go to "manage" and click "Extend" to view the effects of extending.

<figure><img src="/files/UWRE6vJaXsUcBXkdKQQ6" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/wS7LvgpYSS960RGZHt2S" alt=""><figcaption></figcaption></figure>

As shown in the table below, the amount of bbBNC received correlates directly with the lock-up duration. Locking one vBNC for four years (with locked BNC automatically converting to bbBNC at the vBNC exchange rate) provides the maximum bbBNC amount. However, a 3-month lock-up would require about 3.3 times more principal to achieve the same results as a four-year lock.

| Locking Duration (per vBNC) | bbBNC received |
| --------------------------- | -------------- |
| 3 months                    | 0.296875       |
| 6 months                    | 0.3424         |
| 1 year                      | 0.4375         |
| 4 years                     | 1              |

{% endstep %}

{% step %}

### Boost your bbBNC value with LP & vTokens

{% hint style="success" %}
In general, you can deposit vToken or BNC-vDOT LP to amplify your existing bbBNC amount, similar to a power-up buff. However, this boost will disappear when you withdraw your staked assets.
{% endhint %}

<figure><img src="/files/ThKZQAQbZjqBsaFHwPzE" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Depositing your vToken is separate from joining farming pools. Instead, depositing vToken increases your bbBNC amount, which in turn enhances your farming yield. Check how bbBNC boosts on Farming page at [here](https://app.bifrost.io/farming?network=polkadot) and discover those pools tagged with "bbBNC boost pool".
{% endhint %}

Two key indicators determine the boost weight:

* The proportion of staked LP & vToken in total supply
* The proportion of staked LP & vToken in total staked amount

To achieve a higher weight, both ratios need to reach certain levels. The following example will demonstrate different weight scenarios for users A, B, and C:

<figure><img src="/files/usHF0y7GlmcsbXFkjIbn" alt=""><figcaption></figcaption></figure>

In this example, although User B has deposited a considerable amount of vTokens, their boost coefficient has not reached the maximum value due to the large total supply of vTokens. As for Users A and C, who have locked different amounts of LP, their boost coefficients vary significantly with changes in locked amounts due to the smaller total LP supply

{% endstep %}

{% step %}

### DO NOT unlock your position too early

{% hint style="danger" %}
Early unlocking will not only result in the loss of existing bbBNC but also incur corresponding penalties. This approach is highly unfavorable for maximizing returns.
{% endhint %}

<figure><img src="/files/tHpTb6RhC8g6a6kjyKLJ" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}


# How to get or redeem?

### How to get bbBNC:

Lock vBNC and receive bbBNC. The bbBNC value is proportional to the amount and duration staked (up to a maximum of 4 years). Each address is associated with a single bbBNC expiry date, and bbBNC can't transfer.

*BNC -> vBNC -> bbBNC*

> The bbBNC value is a key indicator for participating in dividends. Simply put, the higher the proportion of bbBNC value in the overall, the more you might get in various bbBNC holdings benefits.

> Your bbBNC value will decrease over time and will reach zero once the lock duration ends. At this point, your staked vBNC will be unlocked.

| Locking Duration (per vBNC) | bbBNC received |
| --------------------------- | -------------- |
| 3 months                    | 0.296875       |
| 6 months                    | 0.3424         |
| 1 year                      | 0.4375         |
| 4 years                     | 1              |

<figure><img src="/files/Vg20w9PI3o4vS5bVhTfi" alt=""><figcaption></figcaption></figure>

### Redeem bbBNC to unlock vBNC in advance:

For users who need to unlock bbBNC immediately to retrieve locked vBNC in advance, Bifrost offers a method of early unlocking. However, this comes with a certain slash, <mark style="color:red;">you may LOSE YOUR vBNC PRINCIPLE by early redemption</mark>. The relevant formula is as follows:

> Redemption Slash % = `((Remaining locked blocks + 5,256,000) / 26,280,000)^2`
>
> The vBNC that users can get by unlocking in advance = `Locked vBNC * (1 - Redemption Slash %)`

| Unlock Time left | Unlock Block left | Redeem Immediately Slash |
| ---------------- | ----------------- | ------------------------ |
| 3 Months         | 1,314,000         | 6.25%                    |
| 6 Months         | 2,628,000         | 9.00%                    |
| 1 Year           | 5,256,000         | 16.00%                   |
| 2 Year           | 10,512,000        | 36.00%                   |
| 3 Year           | 15,768,000        | 64.00%                   |
| 4 Year           | 21,024,000        | 100.00%                  |


# BNC - Bifrost Native Coin

## Overview

**Bifrost Native Coin (BNC)** is the core token behind the Bifrost protocol. Coordination between governance token holders and protocol stakeholders is critical to successful decentralized governance, and BNC is the vehicle that facilitates this coordination. BNC or veBNC can be used to participate in Bifrost's OpenGov voting.

**Total Supply**: <mark style="color:purple;">80,000,000 BNC with no inflation</mark>.

BNC allocation has different proportions of vesting, as shown below:

| Distribution of Tokens      | Share | Tokens     | Vesting                                                           |
| --------------------------- | ----- | ---------- | ----------------------------------------------------------------- |
| Ecosystem                   | 50%   | 40,000,000 | Locked for governance                                             |
| Initial Dev Team            | 20%   | 16,000,000 | Start vesting at 6 months after TGE, linearly vested in 24 months |
| Seed Round I                | 6%    | 4,800,000  | Vesting 25% at TGE, 75% linearly vested in 10 months              |
| Seed Round II               | 4%    | 3,200,000  | Vesting 25% at TGE, 75% linearly vested in 10 months              |
| Strategic Round             | 2%    | 1,600,000  | Vesting 30% at TGE, 70% linearly vested in 10 months              |
| Private Round               | 3%    | 2,400,000  | Vesting 30% at TGE, 70% linearly vested in 10 months              |
| Marketing & Community Build | 3%    | 2,400,000  | No Locked                                                         |
| Mint Drop                   | 2%    | 1,600,000  | No Locked                                                         |
| Foundation                  | 10%   | 8,000,000  | Locked for governance                                             |

## Vesting

<figure><img src="/files/ADNxm1Hl0BqZseiJ4U85" alt=""><figcaption></figcaption></figure>

## Ecosystem Fund

<mark style="color:purple;">40,000,000 BNC</mark> allocates to the Ecosystem Fund.

<table><thead><tr><th width="278.3333333333333">Distribution of Tokens</th><th width="199">Share</th><th>Tokens</th></tr></thead><tbody><tr><td>Kusama Crowdloan</td><td>3.75%</td><td>3,000,000</td></tr><tr><td>Polkadot Crowdloan</td><td>13.75%</td><td>11,000,000</td></tr><tr><td>vToken &#x26; Protocol Incentive</td><td>22.50%</td><td>18,000,000</td></tr><tr><td>Collator Incentive</td><td>5%</td><td>4,000,000</td></tr><tr><td>Slash Insurance Fund</td><td>5%</td><td>4,000,000</td></tr></tbody></table>

### **Kusama Crowdloan**

<mark style="color:purple;">3,000,000 BNC</mark> allocates for the Kusama Crowdloan, incentivized BNC as reward for Kusama parachain Crwodloan and auction.

Check historical Crowdloan detials on Kusama: <https://kusama.subscan.io/crowdloan>

### **Polkadot Crowdloan**

<mark style="color:purple;">11,000,000 BNC</mark> allocates for the Polkadot Crowdloan, incentivized BNC as reward for Polkadot parachain Crwodloan and auction.

Check historical Crowdloan detials on Polkadot: <https://polkadot.subscan.io/crowdloan>

### **vToken & Protocol Incentive**

<mark style="color:purple;">18,000,000 BNC</mark> allocates for the vToken & protocol Incentive.

The distribution is mainly in the following forms:

* vToken LP Farming
* vToken Single Token Farming
* [bbBNC Boost Farming](/tokenomics-2.0/core-bbbnc/how-to-maximize-your-bbbnc-yield#boost-your-bbbnc-value-with-lp-and-vtokens)

The incentive proposal takes place in Bifrost OpenGov.

### **Collator Incentive**

<mark style="color:purple;">4,000,000 BNC</mark> were allocated for the Collator Incentive. Parachain collators maintain parachains by aggregating parachain transactions into parachain block candidates and producing state transition proofs (Proof-of-Validity, PoV) for validators. When the reserved BNC incentives are drained, the subsequent incentive will be allocated by governance, from the Treasury income.

### **Slash Insurance Fund**

<mark style="color:purple;">4,000,000 BNC</mark> were allocated for the Slash Insurance Fund.

#### What happens if a slash occurs?

Slash—when a validator’s misbehavior or technical failure causes staked assets to be penalized—is a critical concern in liquid staking. Bifrost has established a comprehensive slashing risk-sharing mechanism:

* 20% of all vToken commission fees are automatically allocated to a public insurance treasury.
* **An additional 5% -** <mark style="color:purple;">4,000,000 BNC</mark> **tokens are reserved as a protocol-level insurance fund.**
* In the event of a slash, the public fund is used first for compensation. If insufficient, the protocol reserve is tapped.
* If both funds are inadequate, the vToken exchange rate is adjusted downward, effectively socializing the loss across all vToken holders.

<figure><img src="/files/Vnqi2nozOl7iMmi8AJCD" alt=""><figcaption></figcaption></figure>

### Initial Development Team

<mark style="color:purple;">16,000,000 BNC</mark> were allocated for the initial development team. The allocation for the initial development team was started linerly unlocking for 2 years since 180 days (half of a year) after TGE (circulation day).

### Mint Drop

<mark style="color:purple;">1,600,000 BNC</mark> were allocated for Mint Drop. "Mint Drop" is a series of campaigns launched by Bifrost to stimulate vToken minting. The BNC incentives for Mint Drop have no vesting.

Bifrost vETH Mintdrop #1: <https://bifrost-finance.medium.com/bifrost-activates-mint-drop-program-today-mint-veth-for-bnc-airdrop-17e07583b4cc>

Bifrost vETH Mintdrop #2: <https://medium.com/bifrost-finance/2nd-veth-mint-drop-is-about-to-begin-f650ba308a78>

Bifrost vsKSM Mintdrop: <https://medium.com/bifrost-finance/bifrost-ksm-slot-bidding-preview-vsksm-mint-drop-is-coming-185be1ecd329>

### Treasury

<mark style="color:purple;">8,000,000 BNC</mark> were allocated for the Treasury. BNC in the treasury can be spent on any relevant use cases of Bifrost ecosystem construction through governance, including but not limited to: Grant, Hackathon, Integration, Marketing Campaign and etc


# vBNC - Liquid Staked BNC

## Overview

vBNC is a liquid-staking derivative of BNC. As one of Bifrost vTokens, it has the same attributes as other vTokens, that is, holding vBNC can automatically obtain Staking rewards.

Youtube tutorial:

{% embed url="<https://www.youtube.com/watch?v=TSgTShtOxPw>" %}

Get vBNC: <https://bifrost.app/vstaking/vBNC>

vBNC holders can participate in Bifrost governance by converting vBNC into veBNC. At the same time, holding veBNC can also receive revenue sharing from the Bifrost protocol.


# Treasury

The Bifrost Treasury manages protocol funds through on-chain governance. Anyone can apply for treasury funds via a governance proposal.

#### Treasury Income

* Staking commission fees (10% reward fee from each vToken)
* Transaction fees (% of Bifrost chain gas fees)
* System Staking income (60% of SST revenue)
* vToken Swap fees (portion)
* LoopStake fees

#### Treasury Expenditures (via Governance)

* Slash insurance / anti-risk measures
* Bifrost ecosystem grants
* System arbitrage
* BNC buybacks
* Marketing & events
* Liquidity provision for trading pairs

{% hint style="info" %}
System Staking allows idle Bifrost tokens that have not participated in Staking to be cross-chain staked, thereby increasing the overall revenue of the protocol and vTokens.
{% endhint %}

***

## System Staking

System Staking allows idle Bifrost parachain tokens (treasury reserves, LP tokens, etc.) to be cross-chain staked, increasing overall protocol revenue without user action.

#### How It Works

1. SST DAO evaluates idle assets on-chain and submits configuration proposals to SST Track
2. Community votes pass the configuration
3. SST Pallet receives and executes the configuration
4. SST automatically:
   * Temporarily issues tokens based on configured amounts
   * Stakes them as vTokens
   * Executes periodic payouts to distribute vToken appreciation

<figure><img src="/files/906jyGGDHzIvrXXCDXBF" alt=""><figcaption></figcaption></figure>

### Composition and Mechanism

#### System composition

The chain-level functional modules and decentralized governance DAO jointly form the basis for the operation and development of System Staking, mainly including the following parts:

| Part                  | Info                                                                                                                                                                                                                              |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| System Staking Pallet | The main chain-level functional logic module, which implements and operates the core logic of System Staking                                                                                                                      |
| System Staking Track  | Based on OpenGov, a referendum governance track specially designed for efficient governance to execute System Staking related management operations                                                                               |
| System Staking DAO    | Composed of core contributors and active members of the community, responsible for managing and initiating governance related to System Staking operations and continuously maintaining and updating the System Staking mechanism |

#### Operating mechanism

1. SST DAO statistics and evaluates the situation of idle assets on the chain, and initiates relevant configuration governance referendum on SST Track.
2. Bifrost community participates in SST Track governance referendum and passes it.
3. SST Pallet receives and executes the parameter configuration passed by the referendum.
4. SST automatically executes the corresponding chain logic, the main logic is:
   * Temporarily issue tokens according to the number of tokens that can be executed by SST.
   * Cast the temporarily issued tokens into vTokens.
   * Regularly execute Payout to distribute the extra value of vTokens to each module (refer to [Income Distribution](#income-distribution)).
   * When the number of available tokens of SST decreases, vTokens will be redeemed automatically as tokens, and the temporarily issued tokens will be destroyed to keep it equal to the SST setting value.

#### Tokens that can be used for SST

* Bifrost Treasury Token Reserve
* Bifrost Treasury LP Corresponding Token Reserve
* vToken Arbitrage Module Token Reserve
* SALP Token Buyback Reserve (for DOT and KSM)
* Token Deposited in Farming Pallet in the Long Term
* Token Reserve of the Parachain Sovereignty Address when Asset Reserve Risk is Low

#### Income Distribution

<table><thead><tr><th width="191">Item</th><th width="94.33333333333331">Ratio</th><th>Info</th></tr></thead><tbody><tr><td>Treasury</td><td>60%</td><td>This portion of the revenue will be entered into the Bifrost Treasury and homogenized with other treasury assets, and subsequent secondary distribution will be more reasonable and flexible through treasury governance</td></tr><tr><td>vToken MEV</td><td>20%</td><td>This portion of the revenue will be shared with all vToken holders by directly increasing the exchange rate of vToken-Token through the direct destruction of the corresponding revenue vToken</td></tr><tr><td>veBNC Incentive</td><td>20%</td><td>This part of the profits will be directly entered into the veBNC incentive pool, following the veBNC incentive distribution principle, and incentivizing long-term holders of BNC.</td></tr></tbody></table>

#### Risk Management

**Asset Reserve Ratio:**

```
User Asset Reserve Ratio =
  Available Tokens in Bifrost parachain /
  (Total Issued Tokens - SALP Redeem Pool - Bifrost Treasury & System tokens)
```

| Risk Level | Reserve Ratio |
| ---------- | ------------- |
| Low        | > 90%         |
| Medium     | 60–90%        |
| High       | < 60%         |

**Risk disposal mechanisms:**

1. Issue high-interest token bonds to attract liquidity
2. Enable single-token farming to attract tokens
3. Launch vToken minting incentives
4. Initiate short-term treasury loans to fill reserve gaps


# FAQ

Frequently Asked Questions

Our FAQ aims to answer every basic question we've been asked on Bifrost/Omni LS and vTokens. You can find our most detailed [FAQ](https://www.notion.so/bifrost-io/FAQ-3406126f8bc843a9840f2ab5533e3577) in our Bifrost Lab support.

### BNC Transparency <a href="#general-questions" id="general-questions"></a>

<details>

<summary>Is the Bifrost Team Going to Launch Any Additional Tokens or Increase BNC inflation? </summary>

The team will not launch any future tokens or increase BNC inflations. However, if Bifrost referedum has such requests, which may voted though on-chain Open Governance.

</details>

### Liquid Staking, rewards issue method and "Peg" <a href="#general-questions" id="general-questions"></a>

<details>

<summary><em><strong>What are the</strong></em><strong> rewards issue methods</strong><em><strong>? Why is it important ?</strong></em></summary>

All our vTokens are **yield-bearing**.

Yield-bearing (or reward-bearing) refers to the inclusion of yield and interest earned by LST assets. This method breaks the 1:1 swap rate between LST assets and their underlying assets, allowing the rate to change in real-time as income increases.

The reward-bearing tokens model converts staking rewards and token slashes into changes in swap rates. With this mechanism, **LST represents the sum of the principal and the income accumulated from the start of staking to the present.**

<img src="/files/It2t029aKKXEiMCqgYmX" alt="" data-size="original">

Unlike tokens following the Rebase model, such as stETH, vTokens do not mint new receipt tokens for Tokens network rewards. Instead, vToken’s conversion rate increases to represent Tokens network rewards earned.&#x20;

\
You can can a full explanation about the rewards issuing methods by reading this [Medium article](https://bifrost-finance.medium.com/how-lsd-projects-issue-staking-rewards-c899c4ce1d01).

<img src="/files/it4cT9IXjPRGp9MG6xoK" alt="" data-size="original">

**Practical implications of the vToken model’s dynamic conversion rate**

vToken’s conversion mechanism has practical implications for stakers:

* Visibility of growth: You can see the growth of your stake directly in the value of vToken, not just in the number of tokens you hold.
* Simplified rewards management: Instead of managing separate reward payouts, everything is consolidated under your vToken holdings.
* DeFi and CeFi composability: vTokens are Substrate & Ethereum ERC-20 compliant, and are more widely adopted (and thus more useful) than other forms of receipt tokens in DeFi today, such as rebase Tokens. This is due in part between the challenges of accounting for dynamic balance updates when participating in DeFi protocols, which has led some to develop wrapped vToken versions of rebase Tokens for use in DeFi. The composability of vTokens, and their wider adoption, were factors in the selection of the vToken model for the design of Bifrost’s vTokens.
* Auto-staked rewards: Plus, with vToken, you don't have to manually claim and stake. Network rewards are automatically staked while holding vToken, so that opportunities to receive rewards are compounded with no action required.

</details>

<details>

<summary><em>Why isn’t vToken pegged to the value of Token?</em></summary>

As explained for the previous question. It's all about the reward issuing method.\
All our vTokens are pegged 1:1 the 1st day they are created, then the vToken:Token ratio keeps increasing over time.

vToken represent more than just staked Token. Because it is based on the vToken model, the rate at which vTokens can be redeemed for Tokens dynamically incorporates accrued rewards.

Because the conversion rate means that each vToken unit is redeemable for an amount of staked Token plus accrued Token network rewards, vTokens might seem to trade at a "premium" compared to Token in open markets. However, this perceived premium is more likely a reflection of vToken's value being greater than a single unit of Token, due to the included rewards.

**So, why isn’t vToken pegged 1:1 to Token?**

* Accruing rewards: The value of vToken changes over time because it includes the rewards earned from staking Token. As these rewards accumulate, the value of each vToken increases, representing a share of both the original staked Token and the earned rewards.
* Not a mirror: Unlike tokens that are designed to mirror the value of another asset (like stablecoins pegged to fiat currencies), vToken is meant to reflect the value of staked Token plus rewards. vToken is not a derivative. Hence, expecting a 1:1 peg with Token is a misunderstanding of vToken’s purpose and mechanics.
* Market dynamics: The native value redemption value of vToken (as defined by the Protocol Conversion Rate) is separate and independent from the rate at which vToken may trade on the open markets. The market value of vToken is also influenced by market conditions and overall demand and supply dynamics.

Minting ratios of all vTokens can been on [stats.bifrot.app](https://stats.bifrost.app)\
\
Ex1:\
stETH from Lido has a rebase model. \
Each new reward is minted into new issued tokens, stETH increases **in quantity**, so 1 stETH = 1 ETH over time.\
\
Ex2: \
vETH from Bifrost has a yield-bearing model.\
Each new reward is included in the minting ratio (price), vETH increases **in value**, so 1 vETH = more and more ETH over time.\
&#x20;

Here below vKSM example, we can see the minting ratio (green line) was 1:1 in June 2022, and now vKSM "peg" is 1:1.4, because in June 2024 vKSM includes 2 years of staking rewards.

<img src="/files/U8BGGnbuE4Xghnv1jd8q" alt="" data-size="original">

Because the redemption value of vToken represents staked Token plus Token network rewards earned, fees, and penalties, the value of vToken does not have an explicit ‘peg’ to the market value of Token. **The concept of vToken ‘depegging’ from the value of Token is unlikely given the opportunity for arbitrage between the price in the secondary market and the vToken/Token Protocol Conversion Rate.**

</details>

### Unstaking

<details>

<summary><em><strong>if i simulate the unstaking of 1 token using the dapp, why am i having less tokens afterwards  ?</strong></em></summary>

It's a common error to simulate with 1 Token the ouput after unstaking using the UI. This use case in not a real one, because you are simulating a dummy case where you don't keep staking to accumulate staking rewards.\
**We have bridge fees and a 0.1% unstaking fee**, so it impacts this dummy simulation. The less the value of the simulation, the greater the impact of these fees.\
\
Ex:\
You stake 1 MANTA, you get 0.79701 vMANTA.\
Simulating the unstake will give as a result, with fees, only 0.76639 MANTA, a 25% loss.

<img src="/files/46qlxGkPrWqHT7gYOQxg" alt="" data-size="original"><img src="/files/gvBlXa6Sysa70jvXpJ1F" alt="" data-size="original">

But this is normal because the impact of the fees in this scenario represents 25%, and you accumulated no rewards.\
\
Let's take the same example with 1000 MANTA now.\
You stake 1000 MANTA, you get 895.42109 vMANTA.\
Simulating the unstake will give as a result, with fees, 998.76739 MANTA, which represents the 0.1% as the bridge fee are negligible here.

<img src="/files/fOBEwsvD5289porgck0A" alt="" data-size="original"><img src="/files/79KdrliC9dHX1SI619Tk" alt="" data-size="original">

You can find a proper yield calculator on every vstaking page on the [Bifrost app](https://app.bifrost.io).

<img src="/files/LeQEZOXo6cuc5HTSBxhw" alt="" data-size="original">

</details>

### Staking rewards

<details>

<summary><em><strong>Why does my vToken balance remain the same ? How can i claim my pending staking rewards ?</strong></em></summary>

As explained in 1st question of the FAQ, all vTokens increases **in value, not in quantity. There is no claim as vTokens are auto-compounding.**\
\
If you want to take profit on your staking rewards, you have to sell a portion of your holding, the appreciation of vDOT part.

Ex1: vDOT as a 17% APY yield, so it means you can sell 17% of your vDOT holding every year. This part represents the accumulated staking rewards.<br>

Ex2: you can use a Yield DCA feature, like the one that exits on [Hydration](https://app.hydration.net/trade/yield-dca). You set a schedule to sell very 24h for 1 week/1month/6 months/1 year.

<img src="/files/v3x7Hm5rFwo9V3QqFuEX" alt="" data-size="original">

</details>

### Yield Explanation <a href="#yield-explanation" id="yield-explanation"></a>

<details>

<summary><em><strong>Where does the base yield come from  ?</strong></em></summary>

The vToken base yield comes from the implied appreciation of LSTs against holding the corresponding native Token.\
This base yield exclusively comes from the staking rewards from PoS chains (Polkadot, Ethereum, Moonbeam, Astar...), tokens are created to reward validators/collators for the service they provide to verify and produce blocks.

On top on the base yield, Bifrost can add its own incentives to boost temporarily the yield or the user can get extra yield using his vToken in Defi.\
\
**Global yield = Base Yield + Defi Yield**

Bifrost uses an algorithm to select the best validators/collators (downtime, commission...) to maximize users return and provide the best possible base yield.

</details>

### Leverage Staking - Loop Stake

<details>

<summary><em><strong>How does Loop Stake work ?</strong></em></summary>

Leveraged staking through Loop Stake performs recursive borrow/lend of DOT/KSM and liquid staking token (vDOT/vKSM) to amplify yields from the user’s initial deposit. Detailed explanation [here](https://docs.bifrost.finance/builders/loopstake#how-does-it-work).

Users can deposit LSTs like vDOT/vKSM and borrow DOT/KSM to multiply their returns.

<img src="/files/K71BX77d7SAUFvYiT5kv" alt="" data-size="original">

**Here’s an example of how leverage staking works:**

* Deposit an LST as collateral through Loop Stake
* The program uses the deposited LST to borrow DOT/KSM against the LST up to the user’s intended leverage ratio on Loop Stake
* This effectively gives users a larger notional position size of the LST, which multiplies the base yield for users.

If staking yields exceed the borrow costs, there is a premium from this Loop Stake.

</details>

### Security & Safety of the protocol <a href="#security-and-safety-of-protocol-backing" id="security-and-safety-of-protocol-backing"></a>

<details>

<summary><em><strong>How is the protocol kept safe from hacks or security failures?</strong></em></summary>

Bifrost has several layers of security. They are detailed in this [blog article](https://bifrost.io/blog/an-overview-of-bifrost-security-model).

1. Polkadot shared security

"Secured by Polkadot". Bifrost chain inherits its own security from the Polkadot relay-chain. That's the shared security provided from being a Polkadot parachain.

2. Audit reports

See our code audit reports [here](https://docs.bifrost.finance/resources/audit-report).

3. XCM

Bifrost utilizes [XCM](https://wiki.polkadot.network/docs/learn/xcm/overview-intro) (Cross Chain Messaging) protocol, the cross-consensus communication message format used inside Polkadot. It's a native and trustless feature. All tokens are moved and staked on-chain using this protocol, mitigating any risk of bridge hacks.

### Governance Upgradability

#### *Is vToken upgradable? If yes, who is authorised to make an upgrade?*

Yes, On-chain updates authorised by Bifrost [Opengov](https://bifrost.subsquare.io/), with root origin, all root origin calls have to pass through [referendums](https://bifrost.subsquare.io/referenda).

There is only Root Track and Whitelisted Caller Track has the root origin and an Runtime version upgrade should only be posted under [whitelisted caller track](https://bifrost.subsquare.io/referenda/tracks/1).

***Can Bifrost be manipulated by Gov attack?***

Here is a [case](https://polkadot.subsquare.io/referenda/1322), Parallel Parachain was under Gov attack.

1. Bifrost **has removed** Sudo key (super administrator, can call any function of a chain.) from day one, but Parallel still retained it, which explored a risk for gov attack.
2. If you search Sudo under the Bifrost chain, there is nothing.

***Is there any chance an attacker can quickly execute a proposal in a short time window without any team member or community spotting it?***

No chance. All token-related function origins are defined as root in Bifrost, and only Root Track and Whitelisted Caller Track have authority to call them. A [Root Track](https://docs.bifrost.io/for-the-community/governance/opengov-tracks#root) requires approximately 14 days to complete the voting period, and a [Whitelisted Caller Track](https://docs.bifrost.io/for-the-community/governance/opengov-tracks#whitelistedcaller) proposal can only be executed if it receives positive approval from two-thirds of rank 3 or higher fellowship members.

Even in the worst-case scenario, if an attacker were to control all fellowship members' private keys, their whitelisted referendum proposal could still be opposed by BNC holders.

<img src="/files/7126vSdm9c5HgAkU6beB" alt="" data-size="original">

The execution of a Whitelisted Caller proposal depends on voting thresholds and weight requirements. A proposal needs between 100-50% positive votes and 50-2% of total BNC participation over a 1-14 day period. For example, if a proposal needs execution on day one, it must receive positive votes from 100% of participants, with at least 50% of all BNC holders participating. When the voting period moves to day 14th, it needs at least 50% of positive voting with 2% of total BNC participation.

In summary, during the early stage of voting, it would be extremely difficult for an attacker to secure support from half of the BNC issuance. Additionally, both the core team and community would actively oppose such a malicious proposal during the voting period.

</details>

There are "Quick Answers" available throughout the documentation as well.

We would love to answer any unanswered questions. Join us in Telegram & Discord.


# Glossary

## Glossary

### Bifrost-Specific Terms

| Term                     | Definition                                                                                                                                                                        |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **vToken**               | Voucher Token — Bifrost's liquid staking token (LST). Minted through the SLP protocol. Yield-bearing: rewards accrue via exchange rate appreciation, not token quantity increase. |
| **SLP**                  | Staking Liquidity Protocol — the main on-chain pallet (module) used for staking logic.                                                                                            |
| **SLPx**                 | Extension of SLP enabling cross-chain minting and redemption of vTokens from other chains without requiring users to bridge manually.                                             |
| **SALP**                 | Slot Auction Liquidity Protocol — the main pallet used for parachain auction & crowdloan logic.                                                                                   |
| **BNC**                  | Bifrost Native Coin — the governance and utility token of Bifrost.                                                                                                                |
| **vBNC**                 | Liquid-staked BNC. Staking rewards accrue in vBNC's exchange rate.                                                                                                                |
| **bbBNC**                | Buy Back BNC — Bifrost's revenue-sharing escrow token. Obtained by locking vBNC. Non-transferable. Grants protocol revenue share, governance rights, and farming boosts.          |
| **vToken Vault**         | Bifrost's slash insurance pool, funded by 5% of protocol revenue.                                                                                                                 |
| **Ready Pool**           | An order pool that accumulates and matches mint and redeem orders for each vToken before executing cross-chain operations.                                                        |
| **Aggregator Module**    | A module that simulates arbitrage to maintain the DEX exchange rate of vToken close to the protocol conversion rate.                                                              |
| **System Staking (SST)** | A mechanism that stakes idle Bifrost parachain treasury tokens as vTokens to generate additional protocol revenue.                                                                |
| **Loop Stake**           | Bifrost's leverage staking product — performs recursive borrow/lend operations with DOT/KSM and vDOT/vKSM to amplify staking yields.                                              |
| **Omni LS**              | Bifrost's cross-chain liquid staking interface — allows users to stake from EVM chains (Ethereum, Base, Arbitrum, etc.) without manually bridging.                                |
| **RSP**                  | Reward-Share Program — Bifrost's partner revenue sharing program.                                                                                                                 |
| **VBL**                  | Validator Boost List — a governance-curated list of prioritized validators.                                                                                                       |

### Polkadot Ecosystem Terms

| Term                     | Definition                                                                                                                                                                                                                 |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Collator**             | A node that maintains a parachain by collecting transactions and producing state transition proofs for validators.                                                                                                         |
| **Crowdloan**            | A mechanism for parachains to temporarily source tokens for winning a parachain slot auction. Tokens are returned after the lease period. *(Note: Polkadot parachain auctions have been replaced by Coretime as of 2024.)* |
| **Era**                  | A period (typically 24 hours on Polkadot, 6 hours on Kusama) at the end of which validator sets are recalculated and staking rewards are distributed.                                                                      |
| **Governance / OpenGov** | Polkadot's on-chain governance system. Stakeholders vote on network changes.                                                                                                                                               |
| **Interoperability**     | The ability for systems to exchange and use information — often used to mean "cross-chain".                                                                                                                                |
| **Liquid Staking**       | Staking tokens while retaining liquidity via a derivative token.                                                                                                                                                           |
| **LST**                  | Liquid Staked Token — the derivative received when staking via a liquid staking protocol.                                                                                                                                  |
| **NPoS**                 | Nominated Proof-of-Stake — Polkadot's consensus system. Nominators back validators; both can be slashed for misbehavior.                                                                                                   |
| **Pallet**               | A Substrate runtime module — the building block of Polkadot parachain logic.                                                                                                                                               |
| **PoS**                  | Proof of Stake — a consensus mechanism where participants are chosen based on their token stake.                                                                                                                           |
| **Runtime**              | The state transition function of a blockchain — defines how the state changes from block to block.                                                                                                                         |
| **Shared Security**      | Polkadot's model where all parachains are equally secured by the relay chain validators.                                                                                                                                   |
| **Slashing**             | The removal of a percentage of staked tokens as a penalty for validator misbehavior.                                                                                                                                       |
| **Validator**            | A node that secures the Polkadot relay chain by staking DOT, validating parachain blocks, and participating in consensus.                                                                                                  |
| **XCM**                  | Cross-Consensus Message — the communication format used inside the Polkadot ecosystem to transfer tokens and send messages in a trustless and safe manner.                                                                 |
| **XCMP**                 | Cross-Chain Message Passing — the protocol for delivering XCM messages between Polkadot parachains.                                                                                                                        |
| **HRMP**                 | Horizontal Relay-routed Message Passing — a simpler, currently-deployed version of XCMP.                                                                                                                                   |
| **DKG**                  | Distributed Key Generation — a cryptographic technique used in vETH's SSV integration to shard validator keys across multiple operators.                                                                                   |
| **MPC**                  | Multi-Party Computation — used alongside DKG in vETH to eliminate single points of failure in validator key management.                                                                                                    |

### Yield & Finance Terms

| Term                         | Definition                                                                                                                                         |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Yield-Bearing**            | A token model where rewards increase the token's *exchange rate* (value per token), not the token quantity. All Bifrost vTokens are yield-bearing. |
| **Rebase Model**             | An alternative token model (used by stETH) where rewards mint new tokens, keeping the exchange rate at \~1:1. Bifrost does NOT use this model.     |
| **Protocol Conversion Rate** | The on-chain exchange rate between a vToken and its underlying token, calculated as: `Total Staked Tokens / Total vToken Supply`.                  |
| **APY**                      | Annual Percentage Yield — total yield earned over a year, including compounding.                                                                   |
| **TVL**                      | Total Value Locked — the total value of assets deposited in a protocol.                                                                            |
| **DEX**                      | Decentralized Exchange.                                                                                                                            |
| **AMM**                      | Automated Market Maker — a type of DEX that uses liquidity pools and a pricing formula instead of an order book.                                   |
| **LP**                       | Liquidity Provider / Liquidity Pool token.                                                                                                         |


# What are vTokens?

vToken (Voucher Token) is Bifrost's liquid staking token (LST), which is minted through Bifrost's Liquid Staking Module (SLP).

For detailed information about each vToken and their resilience, please refer to the following sections.


# vETH

## What is vETH?

Bifrost's non-custodial liquid staking solution allows users to **stake their ETH and receive vETH (voucher ETH) in exchange, with staking rewards reflected in vETH's value**.

By using the bridge between Ethereum, L2s and Polkadot, **vETH can exist in both EVM and Substrate environment**.

{% hint style="info" %}
Staking rewards automatically add to the vETH exchange price, no manual claim. The longer vETH postion holding, the greater amount of ETH can be exchanged back while redemption.
{% endhint %}

### vETH vs ETH LSTs in EVM?

vETH can operate (mint, hold, and transfer) simultaneously across both EVM and Substrate environments, enabling EVM users to access better yield opportunities within the Polkadot ecosystem.

## Why vETH?

{% hint style="success" %}
**Liquidity and capital efficiency**
{% endhint %}

vETH as a liquid staked ETH has enough liquidity to provide users an option to hedge risk during unforeseen market conditions (price decline during locking period), allowing holders the capability to manage their exposures and funds.

{% hint style="success" %}
**Automatically Staking rewards capturing without scenario limitations**
{% endhint %}

Staking reward apprecates the value of vETH. vETH Value = SLP pledged ETH(SUM) / vETH Total Issuance. Thus, vETH automatically appreciating the value with staking rewards wherever it is.

{% hint style="success" %}
**No Technical Background Needed**
{% endhint %}

Minting ETH to vETH which represents holding a representation in-locking ETH with staking rewards, requires no technical knowledge for users in running with Ethereum validators.

{% hint style="success" %}
**Extra yield senarios**
{% endhint %}

vETH represents staked ETH, but simultaneously is also a yield bearing liquid-derivative, which means it can be used in various DeFi scenarios such as liquidity provision and farming on DEXs, as well as in borrowing and lending use cases. Specifically, vETH can be deposited as a collateral asset for yield leveraging on money markets.

{% hint style="success" %}
**Cross-chain**
{% endhint %}

By leveraging SLPx, vETH can easily mint/redeem/trasnfer across Polkadot, Ethereum, L2s via Snowbridge and Hyperbridge.

## FAQ

**What is the minimum stake (as known as Deposit)?**

*It’s 0.001 ETH.*

**What is the maximum stake (as known as Deposit)?**

*It’s unlimited.*

**How does the protocol protect the value of vETH?**

*All staked ETH and the insurance of vETH are storaged in Bifrost Chain, protected by Bifrost OpenGov and Polkadot shared security.*

**How can I access my deposit and rewards?**

*vETH is a yield-bearing token where staking rewards increase the token's value. When you redeem your vETH, you'll receive both your initial deposit and accumulated rewards.*

[**How does vETH works on Bifrost?**](#minting-redeeming-veth-on-bifrost)

*vETH is issued or burned on Bifrost chain, ETH is bridged between Bifrost and Ethereum via Snowbridge.*

[**What is&#x20;*****Snowbridge*****?**](https://docs.snowbridge.network/)

*In the Polkadot ecosystem, Snowbridge is a crucial cross-chain communication protocol designed to enable trustless bidirectional bridging between Polkadot and Ethereum.*

[**How does vETH works on Ethereum?**](#minting-redeeming-veth-on-ethereum)

*SLPx allows users to directly mint and redeem vETH on Ethereum.*

[**What is SLPx?**](broken://pages/4hfpnO8tCPjDXQK7UI10)

Bifrost SLPx streamlined the complex process of bridging funds to destination chain, allowing users to liquid stake on any chain without leaving UI to interact with bridges.

[**How does vETH works on L2s?**](#minting-redeeming-veth-on-l2)

*SLPx allows users to directly mint and redeem vETH on Base, Arbitrum, BSC Chain and OP. The asset bridging is backed by Hyperbridge.*

[**What is&#x20;*****Hyperbridge?***](https://docs.hyperbridge.network/)

*HyperBridge leverages **advanced cryptographic proofs** (such as zk-SNARKs or Merkle proofs) and **Polkadot’s shared security model** to create a **trustless, scalable, and gas-efficient** cross-chain infrastructure.*

## How does it works?

### Minting/Redeeming vETH on Bifrost

#### Minting Process

1. Mint on Bifrost using `ETH`, users immediately receive `vETH`
2. `ETH` is bridged through `Snowbridge` to the SLP contract on Ethereum
3. The SLP contract on Ethereum combines with SSV to perform wrapped staking of `ETH`
4. Bifrost vETH Oracle periodically fetches ETH Staking rewards and synchronizes to the Bifrost network for exchange rate adjustment

#### Redemption Process

1. Use `vETH` on Bifrost for redemption, `vETH` is burned and corresponding redemption request orders are created
2. Bifrost calculates the number of exit nodes needed through Oracle, and Oracle sends exit node requests to the SLP protocol on Ethereum
3. SLP protocol executes node exit operations through SSV and waits for the exit node `ETH` to arrive
4. The redeemed `ETH` is bridged through `Snowbridge` to the Bifrost SLP protocol
5. SLP protocol executes redemption according to the redemption request queue, users finally receive `ETH`

### Minting/Redeeming vETH on Ethereum

#### Minting Process

1. Call the SLPx contract to deposit `ETH` for minting
2. SLPx contract sends `ETH` and minting request to Bifrost SLPx through `Snowbridge`
3. SLPx executes minting and bridges `vETH` and `ETH` to the SLP contract on Ethereum through `Snowbridge`
4. User receives `vETH`

#### Redemption Process

1. Call the SLPx contract to deposit `vETH` for redemption
2. `vETH` and redemption request are bridged to Bifrost SLPx through `Snowbridge`
3. SLPx executes redemption, and after redemption is credited, `ETH` is bridged to the Ethereum user address through `Snowbridge`

### Minting/Redeeming vETH on L2

#### Minting Process

1. Call the SLPx contract to deposit `ETH` for minting
2. SLPx contract sends `ETH` and minting request to Bifrost SLPx through `Hyperbridge`
3. SLPx executes minting and bridges `vETH` to the SLP contract on Ethereum through `Hyperbridge`
4. SLP contract bridges `vETH` to the L2 user

#### Redemption Process

1. Transfer `vETH` to SLPx contract to send redemption request
2. `vETH` and redemption request are bridged to Bifrost SLPx through `Hyperbridge`
3. SLPx executes redemption, and after redemption is credited, bridges to the L2 user address through `Hyperbridge`

## SSV and DKG in vETH

vETH 3.0 uses the SSV network to implement a trustless staking pool.

After users stake ETH, they receive vETH, while the operation of the underlying ETH validators is maintained by the SSV Cluster - **different unique groups of operators running by various parties.**

<figure><img src="/files/595s8WAc1u39OrvALquh" alt=""><figcaption></figcaption></figure>

In conclusion, SSV uses distributed key sharing (DKG) and multi-party computation (MPC) to shard validator keys across multiple node operators, avoiding single points of failure and enhancing the security and censorship resistance of vETH staking.

## vETH Contracts

| **DefaultProxyAdmin** | **`0x6e2BA9C11ac4e6F3dFA1053c4f9dc1a3B7135c21`** |
| --------------------- | ------------------------------------------------ |
| **BondVault**         | **`0xaBd7c408E41c6Fa896Fba089939487bd42b6bf5E`** |
| **BridgeVault**       | **`0x19803E29c045024bc73AeC3d292C4B5EC1281a30`** |
| **SlpProxy**          | **`0x4B014Ea4b2a60BF03Ed6743f821Ee8d66BD3cF09`** |
| **SlpSsvManager**     | **`0x8C831C7A2Bf0a19FC7aD29A14018aaEC193A2488`** |
| **WithdrawalVault**   | **`0x700623D1241d8fd8eB0a6a655a62E264E3DB6072`** |

## Appendix

### ETH 2.0 Deposit Records

vETH minting refers to the process in which users invest any amount of ETH to participate in Ethereum 2.0 staking and obtain the corresponding certificate vETH. After minting, users can sell vETH at any time to gain liquidity. [vETH minting](https://bifrost.app/vstaking/vETH).

vETH minting vETH will be divided into four stages to achieve complete decentralization, and is currently in the second stage of development. The ETH invested by users will be put into the official Ethereum 2.0 Deposit contract to complete the staking operation. This operation process is transparent and open, but the smart contract calling process is more complicated. The contract calls involved are 4 levels of concatenated calls:

> Multisig Management Contract » BatchDeposit Contract » vETH Mint Contract » ETH 2.0 Official Deposit Contract

The BatchDeposit contract is upgradeable, and a layer of proxy contract is encapsulated on it. There is a Worker account in the BatchDeposit contract, which can be replaced by multi-signature operations, and is specially used to store the Deposit parameters on the chain. This Worker role is currently played by Bifrost. After the Worker fills in the parameters, it can initiate another transaction that triggers Deposit. After multiple partners have signed and approved it, the ETH invested by the user will be deposited into the Ethereum 2.0 official Deposit contract.

The parameters filled in by Bifrost are currently provided by [InfStones](https://infstones.com/) and [Ankr](https://www.ankr.com/) respectively, and are double-checked by InfStones and Ankr before multi-signature approval. After each multi-signature operation is completed, the Deposit transaction information will be publicly displayed in the community, and users can check the corresponding parameter information through Etherscan. Through these parameter information, the actual staking income can be queried and counted. Before the launch of the Bifrost mainnet, staking rewards are distributed in the form of ERC20-vETH. After the Bifrost mainnet goes online, all ERC20-vETH will be mapped to the Bifrost mainnet, and the subsequent staking income will be reflected in the minting price adjustment formula. Check [how Bifrost vToken works](https://wiki.bifrost.finance/getting-started/understanding-bifrost/liquid-staking-derivative).

**Multisig Parties**

<table data-header-hidden><thead><tr><th width="568">地址</th><th>参与方</th></tr></thead><tbody><tr><td>Address</td><td>Parties</td></tr><tr><td>0x4882328c14bb1a9a5c4F5E2B21bE345A72A1f638</td><td>InfStones</td></tr><tr><td>0x0620Ca0ca30c917aB62d119E5d91A9a954d31604</td><td>LongHash</td></tr><tr><td>0x146eE71e057e6B10eFB93AEdf631Fde6CbAED5E2</td><td>Ankr</td></tr><tr><td>0x4f62839ccD37c9a41999ceDB71cc9B4E8B2eBB97</td><td>DFG</td></tr><tr><td>0xdd4bB59E9088987CbEe31cC5a8e63cD8FEC12065</td><td>Bifrost</td></tr></tbody></table>

The current parameter configuration is that any 3 of the 5 participants sign the Deposit operation to take effect.

**Check Multisig**

<https://gnosis-safe.io/app/#/safes/0x7c7FCb39BAA90f2FDef625e7B0b0e858D579CD8E/transactions>

**MintDrop Contract**

<https://etherscan.io/address/0xec1d6163e05b3f5d0fb8f354881f6c8b793ad612>

**vETH Contract**&#x20;

<https://etherscan.io/address/0xc3d088842dcf02c13699f936bb83dfbbc6f721ab>

<https://etherscan.io/token/0xc3d088842dcf02c13699f936bb83dfbbc6f721ab>

**vETH Minting Records** (Updated on 2021-02-18, Deposit total 162 x 32 = 5184 ETH)

1 Deposit (InfStones first test) <https://etherscan.io/tx/0xb2387953eb774cfc9744b2fdb92ef4fb59f51df4efeff5ce8f583be5bc223061#eventlog>&#x20;

9 Deposit (InfStones)\
<https://etherscan.io/tx/0x57b76faf452a57301c6cdbb9fdebd8b549f42cac826cf22d9d1d3b19401f5940#eventlog>&#x20;

10 Deposit (InfStones) <https://etherscan.io/tx/0x8aa70ff63a5a1819a165cb558b3ed2597cd13ee39ef0abf7008386ca78656424#eventlog>&#x20;

27 Deposit (InfStones) <https://etherscan.io/tx/0x8c87a2fce07a98a09a37ded12a460cb2c3868950392b369941c6a8fa63ea4a99#eventlog>&#x20;

1 Deposit (Ankr first test)  <https://etherscan.io/tx/0x046647b4e948e5a6a89bdb5da7c40d73564669a61d0b8a516bd2bd42adb46967#eventlog>&#x20;

14 Deposit (Ankr)  <https://etherscan.io/tx/0x9153c1f2db67a650bf1a2c6607311633abac06c5434ae819d864e3b3e1c34acd#eventlog>&#x20;

50 Deposit (InfStones) <https://etherscan.io/tx/0x45f9f2ce3f6f74333b5e6e88fba0f97e315f24473f9218ccd36ebea43e9cc3e0#eventlog>&#x20;

50 Deposit (InfStones)  <https://etherscan.io/tx/0x6aa751437e978f1323c75f7c954c8dad5287d9d131cead625e00be3f3f1fe065#eventlog>

**Updated on 2021-03-11, Deposit total 200 x 32 = 6400 ETH**

50 Deposit (InfStones) <https://etherscan.io/tx/0x15db182214e0d88f27953cbddc587aa4b28a191aa6800c8a01366dc5b0aed450#eventlog>&#x20;

50 Deposit (InfStones) <https://etherscan.io/tx/0x171683982ddcf4ab1f0a6e2770e46cb0eccf843a9a67fed872127c1ff89f27dd#eventlog>&#x20;

50 Deposit (Ankr) <https://etherscan.io/tx/0x3efacae16c2a95c0be67f202044de7e7706e9c9db69789a9d71490c732091162#eventlog>&#x20;

50 Deposit (Ankr) <https://etherscan.io/tx/0xabbf2fc950e384e250479fbcd4837a53b2f1de07a6b1b539b6aca1c979906e3b#eventlog>

**Updated on 2021-03-25, Deposit total 100 x 32 = 3200 ETH**

50 Deposit (InfStones) <https://etherscan.io/tx/0xcd60dd1daa8b7b6566f7d156a9bc573c85908bb5dd0a3cc6e3e2635beafc17aa#eventlog>&#x20;

50 Deposit (InfStones)  <https://etherscan.io/tx/0x61d0f288118d56f1de975609df0850c4c22c0918f03db51af6ea3b7642a512ad#eventlog>

**Updated on 2021-04-12, Deposit total 100 x 32 = 3200 ETH**

50 Deposit (Ankr) <https://etherscan.io/tx/0x811ea4c01284b9c04f81df3867693e9d675888f955cf0f883ec7df959b8cb5ae#eventlog>

50 Deposit (Ankr) <https://etherscan.io/tx/0x7a6bacb0c17fd7ec3da220850a4a8b271bc4c785e76f60905f74a00bfc6d4d1b#eventlog>

**The total amount of ETH deposited in the Deposit contract: 5184 + 6400 + 3200 = 17984 ETH**

Continue to update...


# vKSM

## **What is vKSM?**

**vKSM (voucher KSM) is a shadow token of staked KSM, with fully underlying KSM reserve and yield-bearing feature of KSM staking reward.** Users can deposit KSM into Bifrost SLP protocol and get vKSM as return, vKSM can be traded in the open market or be redeemed back to KSM. Holding vKSM equals to holding the KSM staking position, staking rewards appreciate the exchange price of vKSM.

{% hint style="info" %}
Staking rewards automatically add to the vKSM exchange price, no manual claim. The longer vKSM postion holding, the greater amount of KSM will be exchanged back for redemption.
{% endhint %}

## Why vKSM?

{% hint style="success" %}
**Liquid Staking**
{% endhint %}

The product allows users to stake KSM for liquid vToken, (vKSM). vKSM will keep receiving **staking rewards** and can continue to be used in Bifrost and Kusama-based DeFi for additional rewards.

{% hint style="success" %}
**Automatically Staking rewards capturing without scenario limitations**
{% endhint %}

SLP will issue Staking rewards to vKSM by adjusting the price of vKSM / KSM upwards. vKSM Rate = SLP Staking KSM (SUM) / vKSM Total Issuance.

{% hint style="success" %}
**Floating redemption period, vKSM redemption ≤ 7 days**
{% endhint %}

While Kusama’s original chain Staking has a **fixed 7-day redemption period**, Bifrost SLP helps users to realize the possibility of early vKSM redemption by matching the real-time vKSM minting quantity with the redemption quantity at the protocol layer in the form of a queue. Theoretically, it can achieve second-level redemption.

{% hint style="success" %}
**Higher Staking Yield**
{% endhint %}

In the SLP protocol, the protocol screens more than **10 verified nodes** through governance (subsequently increasing with the overall staking volume) and adds multiple filters such as the **number of nominees**, **commission ratio**, and **history of blocks out to maximize the return of this verifier portfolio** while ensuring that none of the nodes have experienced slashes.

{% hint style="success" %}
**Multi-environment Compatibility**
{% endhint %}

vKSM is one of Substrate assets in Bifrost parachain, by using the [HRMP](https://wiki.polkadot.network/docs/learn-crosschain#xcmp-cross-chain-message-passing) channels between Bifrost and others, it can be easily utilized in EVM, WASM and Substarte competiable parachains.

## How it works?

vKSM is minted by Bifrost SLP pallet, so firstly users have to call XCM cross chain transfer KSM from Kusama Relay to Bifrost Parachain.

<figure><img src="/files/4oOqW6gWxnRtHdkxurWl" alt=""><figcaption></figcaption></figure>

### Mint vKSM

1. Users initiate a vKSM mint order, SLP protocol transfers KSM to KSM Ready Pool (which is an order pool accumulates all mint and redeem orders), SLP mints vKSM for users;
2. KSM Ready Pool matches Mint amount and Redeem amount;
3. Oracle monitor matching results from KSM Ready Pool and send messages to Kusama Bifrost parachain sub-addresses;
4. Parachain sub-addresses execute Staking to SLP Kusama validators set, Oracle queries the successful messages and send them back to Bifrost KSM Ready Pool, get ready for the next matching.

### Redeem vKSM

1. Users initiate a vKSM redeem orders to KSM Ready Pool;
2. KSM Ready Pool matches Redeem amount and Mint amount, and dispatches the remaining KSMs to vKSM redeem orders, SLP destroys the redeemed vKSM amount;
3. Oracle monitor redeem orders from Bifrost chain and send messages to Kusama Bifrost parachain sub-addresses;
4. Parachain sub-addresses execute Redeem to SLP Kusama validators set and send redeemed KSM back to Bifrost parachain, Oracle queries all these messages and send them back to Bifrost KSM Ready Pool, get ready for the next matching.

### KSM Reward

The KSM reward will be reinvested on the relay chain, and the Oracle will transmit the reward data to the KSM Ready Pool to adjust the vKSM exchange rate.

$$
vKSMrate=(StakedKSM+StakingReward)/vKSM Allocation
$$

💡 Read more detailed info in the following sections.

***

## SLP-vKSM Architecture

### **Glossary**

#### KSM Ready Pool

The operation of staking and the settlement of related operations are generally not subject to real-time settlement, and there will be a cycle, which is [Era in Kusama](https://wiki.polkadot.network/docs/kusama-parameters#periods-of-common-actions-and-attributes). In order to improve resource efficiency and utilization, the **KSM Mint and Redeem requirements with related requirements are stored through the KSM Ready Poo**l. Wait until the appropriate time for unified processing.

#### Multi-sign Oracle

What actions are performed by the SLP module on the Bifrost chain, the settlement of exchange rates, etc., all need to obtain accurate relay chain data. Through multisig oracles, Kusama's on-chain data can be fed to the Bifrost chain on a regular basis or under certain circumstances, so as to keep the SLP module running normally. The accuracy and authenticity of the data is the key to the security of the SLP protocol. In the future, **this part of the function should be implemented through XCM query**. At present, a more mature multi-signature scheme is used for the time being.

<details>

<summary>Oracle Multisig Address</summary>

1. bjbwPTJoPdtF96S2FEquuHoNv72T6KPzhayntu17Cr5g4BX
2. cEDk5LZS5UQtEEJnv1Sm1pDoTCDvv6rmChyF4A81sT9eCUZ
3. djJJCvG3s2Y4qZeTDS6RmmWdFSBHvcfTyJEDb2ARZKma9zA
4. eznovZYddE1KAvMc3ooBhvSS3JY6xFbii3QUCqpVEdnx5eg
5. gQCMN389RSi4gZwbG25agpyMPp1KQfPetteRU8TRd8tiQHu

Multisig synthetic address: emmdmYNhx3PMyuaQZi98ZSNPw6PhFnhGnXyX2NqLwWazck2

</details>

#### Aggregator Module

In order to improve the user experience of Redeem (more use of Swap for lightning swaps), this module is used to AMM (automatic market-maker) behavior and **simulate arbitrage to lower vKSM's Swap discount rate to a level similar to Redeem**. The profits generated in the process continue to carry out relevant market making operations/return to users. Through this module, the system can generate additional value to promote the healthy development of the SLP module.

#### Kusama Staking Era

The settlement cycle of Kusama staking operation is every 6 hours. At the end of the cycle, the **bonding / Unbonding operation** performed in the current cycle will be confirmed, and the **staking reward will be settled**. Committing operations at the end of the cycle is most efficient because the efficient execution of most operations in the cycle is processed uniformly at the end of the cycle.

#### Bifrost SLP Address

The KSM pledged by SLP and the related state are managed through the **sub-account of the parachain address**. Since there is an upper limit on the amount of KSM that can be pledged by an address under the condition of maximizing revenue, it should have the ability to configure multiple sub-addresses through on-chain governance.

#### vKSM Rate

SLP needs to issue Staking rewards to vKSM by raising the price of vKSM / KSM, **vKSM Rate = Staking total KSM / vKSM total issuance**. This exchange rate is the basis for a large number of operations of the system.

### How KSM Ready Pool works? (Adjusting vKSM Ratio)

KSM Ready Pool communicate with Oracle by receiving update status and data on Kusama relay-chain in each Era.

#### In a New Era

When a new Era message is received by SLP, the system mainly performs the following operations:

* Send the cross-chain message withdraw Unbonded KSM and cross-chain transfer it to the KSM Ready Pool
* Get the new staking reward data in current era, a part of which is directly transferred to the Aggregator module across the chain according to the Bifrost service commission rate.
* After confirming that all current operations are successful, end the operation and issue a completion event

#### In the End of an Era

After receiving the Era End message, the system performs the following operations in sequence:

* Match Redeem demand orders one by one for KSM redemption in the order of submission, delete the redeemed demand orders, and transfer KSM back to the corresponding address (Redeem orders support partial redemption)
* When the Redeem match is over, judge the current KSM Ready Pool status:

{% hint style="info" %}
**Redeem:** vKSM revoking request on Bifrost side. \
**Unbond:** KSM revoking request on Kusama side. \
**Rebond:** cancel KSM unbonding.
{% endhint %}

| KSM has leftovers                                                                                   | Initiate a cross-chain request to bond more funds with the remaining KSM on the relay chain          |
| --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| All KSMs have been matched, and the relay chain Unbonding state KSM ≥ Redeem demand order KSM total | Initiate a cross-chain request to Rebond funds (Unbonding state KSM - Redeem demand list sum KSM )   |
| All KSMs have been matched, and the relay chain Unbonding state KSM < Redeem demand order KSM total | Initiate a cross-chain request to Unbond funds (Redeem demand list total KSM - Unbonding status KSM) |

* Calculate the current vKSM Rate = Staking KSM (SUM) / vKSM total issuance and update the record
* After confirming that the above operations are successfully executed, end the current Era operation and wait for the next cycle to start

### The Workflow of Aggregator Module

<figure><img src="/files/EFBLkPjgRzgH9AXPiUqk" alt=""><figcaption></figcaption></figure>

#### 1. Check the KSM/vKSM exchange rate in Zenlink DEX

Get the exchange rate of KSM/vKSM in the DEX by query between modules at the end of the block.

#### 2. Calculate and construct the transaction

Based on the comparison between the queried DEX exchange rate and vKSM Rate, when the exchange rate in DEX < vKSM Rate, a transaction is triggered, and the transaction is constructed based on the number of KSMs existing in the current Aggregator Module, so that the DEX exchange rate after the transaction ≈ vKSM Rate. Initiate a transaction to get a discounted vKSM.

#### 3. Determine whether to redeem vKSM

The remaining KSM in the current module + the Redeem value requested by the current module < the set arbitrage loop maximum value (the arbitrage loop maximum value can be set and modified by governance). Then perform the Redeem operation on the newly acquired vKSM in the module (KSM Ready Pool will immediately process the Redeem order submitted by the Aggregator first)

#### 4. Excess vKSM is flushed into the liquidity pool

When the remaining KSM in the current module + the Redeem value requested by the current module > the set arbitrage cycle maximum value, vKSM will no longer be redeemed, but half of the balance of vKSM and KSM will be directly flushed into DEX's KSM - vKSM In the liquidity pool of the trading pair, obtain LP Token.

## vKSM Validator Set

## Selecting Conditions

There are several filters to select vKSM Validators:

* Validator address with on-chain identity
* No experienced Slashes
* Low commission
* Total Stake below average number
* Average Return Rate in 7 days
* Available nominator slot

## Selecting Organization

The selecting organization will evolute in 3 stages:

1. Bifrost Team&#x20;
2. Bifrost Council&#x20;
3. SLP automatic selection (current stage)

Validator selecting or replacement is a automatic process, it depends on a score ranking which is socred by a script:

[**Validator Score Ranking**](https://docs.google.com/spreadsheets/d/13YdCMc_bVdmy5My22mWRTC5ITwVEaRZQi4fIZGr8tSw/edit#gid=628365504)

[**The Script**](https://bifrost-api-test.vercel.app/api/dapp/staking/_refresh)

## Current Validator Set

Check for live Validator Set:

vKSM: <https://bifrost.app/vstaking/vKSM?tab=validators>


# vDOT

## **What is v**DO&#x54;**?**

**vDOT (voucher DOT) is a shadow token of staked DOT, with fully underlying DOT reserve and yield-bearing feature of DOT staking reward.** Users can deposit DOT into Bifrost SLP protocol and get vDOT as return, vDOT can be traded in the open market or be redeemed back to DOT. Holding vDOT equals to holding the DOT staking position, staking rewards appreciate the exchange price of vDOT.

{% hint style="info" %}
Staking rewards automatically add to the vDOT exchange price, no manual claim. The longer vDOT postion holding, the greater amount of DOT will be exchanged back for redemption.
{% endhint %}

## Why vDOT?

{% hint style="success" %}
**Liquid Staking**
{% endhint %}

The product allows users to stake DOT for liquid vToken, (vDOT). vDOT will keep receiving **staking rewards** and can continue to be used in Bifrost and Polkadot-based DeFi for additional rewards.

{% hint style="success" %}
**Automatically Staking rewards capturing without scenario limitations**
{% endhint %}

SLP will issue Staking rewards to vDOT by adjusting the price of vDOT / DOT upwards. vDOT Rate = SLP Staking DOT (SUM) / vDOT Total Allocation.

{% hint style="success" %}
**Floating redemption period, vDOT redemption ≤ 28 days**
{% endhint %}

While Polkadot’s original chain Staking has a **fixed 28-day redemption period**, Bifrost SLP helps users to realize the possibility of early vDOT redemption by matching the real-time vDOT minting quantity with the redemption quantity at the protocol layer in the form of a queue. Theoretically, it can achieve second-level redemption.

{% hint style="success" %}
**Higher Staking Yield**
{% endhint %}

In the SLP protocol, the protocol screens more than **10 verified nodes** through governance (subsequently increasing with the overall staking volume) and adds multiple filters such as the **number of nominees**, **commission ratio**, and **history of blocks out to maximize the return of this verifier portfolio** while ensuring that none of the nodes have experienced slashes.

{% hint style="success" %}
**Multi-environment Compatibility**
{% endhint %}

vDOT is one of Substrate assets in Bifrost parachain, by using the [HRMP](https://wiki.polkadot.network/docs/learn-crosschain#xcmp-cross-chain-message-passing) channels between Bifrost and others, it can be easily utilized in EVM, WASM and Substarte competiable parachains.

## How it works?

vDOT is minted by Bifrost SLP pallet, so firstly users have to call XCM cross chain transfer DOT from Polkadot Relay to Bifrost Parachain.

<figure><img src="/files/zCyu7XBMg8V2qRFvpUg9" alt=""><figcaption></figcaption></figure>

### Mint vDOT

1. Users initiate a vDOT mint order, SLP protocol transfers DOT to DOT Ready Pool (which is an order pool accumulates all mint and redeem orders), SLP mints vDOT for users;
2. DOT Ready Pool matches Mint amount and Redeem amount;
3. Oracle monitor matching results from DOT Ready Pool and send messages to Polkadot Bifrost parachain sub-addresses;
4. Parachain sub-addresses execute Staking to SLP Polkadot validators set, Oracle queries the successful messages and send them back to Bifrost DOT Ready Pool, get ready for the next matching.

### Redeem vDOT

1. Users initiate a vDOT redeem orders to DOT Ready Pool;
2. DOT Ready Pool matches Redeem amount and Mint amount, and dispatches the remaining DOTs to vDOT redeem orders, SLP destroys the redeemed vDOT amount;
3. Oracle monitor redeem orders from Bifrost chain and send messages to Polkadot Bifrost parachain sub-addresses;
4. Parachain sub-addresses execute Redeem to SLP Polkadot validators set and send redeemed DOT back to Bifrost parachain, Oracle queries all these messages and send them back to Bifrost DOT Ready Pool, get ready for the next matching.

### DOT Reward

The DOT reward will be reinvested on the relay chain, and the Oracle will transmit the reward data to the DOT Ready Pool to adjust the vDOT exchange rate.

$$
vDOTrate=(StakedDOT+Staking Reward)/vDOT Allocation
$$

💡 Read more detailed info in the following sections.

***

## SLP-vDOT Architecture

### **Glossary**

#### DOT Ready Pool

The operation of staking and the settlement of related operations are generally not subject to real-time settlement, and there will be a cycle, which is [Era in Polkadot](https://wiki.polkadot.network/docs/maintain-polkadot-parameters). In order to improve resource efficiency and utilization, the **DOT Mint and Redeem requirements with related requirements are stored through the DOT Ready Poo**l. Wait until the appropriate time for unified processing.

#### Multi-sign Oracle

What actions are performed by the SLP module on the Bifrost chain, the settlement of exchange rates, etc., all need to obtain accurate relay chain data. Through multisig oracles, Polkadot's on-chain data can be fed to the Bifrost chain on a regular basis or under certain circumstances, so as to keep the SLP module running normally. The accuracy and authenticity of the data is the key to the security of the SLP protocol. In the future, **this part of the function should be implemented through XCM query**. At present, a more mature multi-signature scheme is used for the time being.

<details>

<summary>Oracle Multisig Address</summary>

1. bjbwPTJoPdtF96S2FEquuHoNv72T6KPzhayntu17Cr5g4BX
2. cEDk5LZS5UQtEEJnv1Sm1pDoTCDvv6rmChyF4A81sT9eCUZ
3. djJJCvG3s2Y4qZeTDS6RmmWdFSBHvcfTyJEDb2ARZKma9zA
4. eznovZYddE1KAvMc3ooBhvSS3JY6xFbii3QUCqpVEdnx5eg
5. gQCMN389RSi4gZwbG25agpyMPp1KQfPetteRU8TRd8tiQHu

Multisig synthetic address: emmdmYNhx3PMyuaQZi98ZSNPw6PhFnhGnXyX2NqLwWazck2

</details>

#### Aggregator Module

In order to improve the user experience of Redeem (more use of Swap for lightning swaps), this module is used to AMM (automatic market-maker) behavior and **simulate arbitrage to lower vDOT's Swap discount rate to a level similar to Redeem**. The profits generated in the process continue to carry out relevant market making operations/return to users. Through this module, the system can generate additional value to promote the healthy development of the SLP module.

#### Polkadot Staking Era

The settlement cycle of Polkadot staking operation is every 24 hours. At the end of the cycle, the **bonding / Unbonding operation** performed in the current cycle will be confirmed, and the **staking reward will be settled**. Committing operations at the end of the cycle is most efficient because the efficient execution of most operations in the cycle is processed uniformly at the end of the cycle.

#### Bifrost SLP Address

The DOT pledged by SLP and the related state are managed through the **sub-account of the parachain address**. Since there is an upper limit on the amount of DOT that can be pledged by an address under the condition of maximizing revenue, it should have the ability to configure multiple sub-addresses through on-chain governance.

#### vDOT Rate

SLP needs to issue Staking rewards to vDOT by raising the price of vDOT / DOT, **vDOT Rate = Staking total DOT / vDOT total issuance**. This exchange rate is the basis for a large number of operations of the system.

### How DOT Ready Pool works? (Adjusting vDOT Ratio)

DOT Ready Pool communicate with Oracle by receiving update status and data on Polkadot relay-chain in each Era.

#### In a New Era

When a new Era message is received by SLP, the system mainly performs the following operations:

* Send the cross-chain message withdraw Unbonded DOT and cross-chain transfer it to the DOT Ready Pool
* Get the new staking reward data in current era, a part of which is directly transferred to the Aggregator module across the chain according to the Bifrost service commission rate.
* After confirming that all current operations are successful, end the operation and issue a completion event

#### At the End of an Era

After receiving the Era End message, the system performs the following operations in sequence:

* Match Redeem demand orders one by one for DOT redemption in the order of submission, delete the redeemed demand orders, and transfer DOT back to the corresponding address (Redeem orders support partial redemption)
* When the Redeem match is over, judge the current DOT Ready Pool status:

{% hint style="info" %}
**Redeem:** vDOT revoking request on Bifrost side. \
**Unbond:** DOT revoking request on Polkadot side. \
**Rebond:** cancel DOT unbonding.
{% endhint %}

| DOT has leftovers                                                                                   | Initiate a cross-chain request to bond more funds with the remaining DOT on the relay chain          |
| --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| All DOT have been matched, and the relay chain Unbonding state DOT ≥ Redeem demand order DOT total  | Initiate a cross-chain request to Rebond funds (Unbonding state DOT - Redeem demand list sum DOT)    |
| All DOTs have been matched, and the relay chain Unbonding state DOT < Redeem demand order DOT total | Initiate a cross-chain request to Unbond funds (Redeem demand list total DOT - Unbonding status DOT) |

* Calculate the current vDOT Rate = Staking DOT (SUM) / vDOT total issuance and update the record
* After confirming that the above operations are successfully executed, end the current Era operation and wait for the next cycle to start

### The Workflow of Aggregator Module

<figure><img src="/files/ix2GsvApwep5ikfnI3Pl" alt=""><figcaption></figcaption></figure>

#### 1. Check the DOT/vDOT exchange rate in Zenlink DEX

Get the exchange rate of DOT/vDOTin the DEX by query between modules at the end of the block.

#### 2. Calculate and construct the transaction

Based on the comparison between the queried DEX exchange rate and vDOT Rate, when the exchange rate in DEX < vDOT Rate, a transaction is triggered, and the transaction is constructed based on the number of DOTs existing in the current Aggregator Module, so that the DEX exchange rate after the transaction ≈ vDOT Rate. Initiate a transaction to get a discounted vDOT.

#### 3. Determine whether to redeem vDOT

The remaining DOT in the current module + the Redeem value requested by the current module < the set arbitrage loop maximum value (the arbitrage loop maximum value can be set and modified by governance). Then perform the Redeem operation on the newly acquired vDOT in the module (DOT Ready Pool will immediately process the Redeem order submitted by the Aggregator first)

#### 4. Excess vDOT is flushed into the liquidity pool

When the remaining DOT in the current module + the Redeem value requested by the current module > the set arbitrage cycle maximum value, vDOT will no longer be redeemed, but half of the balance of vDOT and DOT will be directly flushed into DEX's DOT - vDOT In the liquidity pool of the trading pair, obtain LP Token.

## vDOT Validator Set

## Selecting Conditions

There are several filters to select vDOT Validators:

* Validator address with on-chain identity
* No experienced Slashes
* Low commission
* Total Stake below average number
* Average Return Rate in 28 days
* Available nominator slot

## Selecting Organization

The selecting organization will evolute in 3 stages:

1. Bifrost Team&#x20;
2. Bifrost Council&#x20;
3. SLP automatic selection (current stage)

Validator selecting or replacement is a automatic process, it depends on a score ranking which is socred by a script:

[**Validator Score Ranking**](https://docs.google.com/spreadsheets/d/13YdCMc_bVdmy5My22mWRTC5ITwVEaRZQi4fIZGr8tSw/edit#gid=628365504)

[**The Script**](https://bifrost-api-test.vercel.app/api/dapp/staking/_refresh)

## Current Validator Set

Check for live Validator Set:

vDOT: <https://bifrost.app/vstaking/vDOT?tab=validators>


# vMANTA

**What is vMANTA?**

vMANTA (voucher MANTA) is a shadow token of staked MANTA, with fully underlying MANTA reserve and yield-bearing feature of MANTA staking reward. Users can deposit MANTA into Bifrost SLP protocol and get vMANTA as return, vMANTA can be traded in the open market or be redeemed back to MANTA. Holding vMANTA equals to holding the MANTA staking position, staking rewards appreciate the exchange price of vMANTA.

{% hint style="info" %}
Staking rewards automatically add to the vMANTA exchange price, no manual claim. The longer vMANTA postion holding, the greater amount of MANTA will be exchanged back when redemption.
{% endhint %}

## Why vMANTA?

{% hint style="success" %}
**Liquid Staking**
{% endhint %}

The product allows users to delegate MANTA for liquid vToken, (vMANTA). vMANTA will keep receiving staking rewards and can continue to be used in Bifrost and Polkadot-based DeFi for additional rewards.

{% hint style="success" %}
**Automatically Staking rewards capturing without scenario limitations**
{% endhint %}

SLP will issue Staking rewards to vMANTA by adjusting the price of vMANTA / MANTA upwards. vMANTA Rate = SLP Staking MANTA (SUM) / vMANTA Total Issuance.

{% hint style="success" %}
**Floating redemption period, vMANTA ≤ 168 hours**
{% endhint %}

While Manta’s original chain Staking has a fixed revoke period, Bifrost SLP helps users to realize the possibility of **early vMANTA redemption** by matching the real-time vMANTA minting quantity with the redemption quantity at the protocol layer in form of a queue.

{% hint style="success" %}
**Higher Staking Yield**
{% endhint %}

In the SLP protocol, the protocol screens **verified nodes** through governance (subsequently increasing with the overall staking volume) and adds multiple filters such as the **number of nominees and** **history of blocks out to maximize the return of this verifier portfolio** while ensuring that none of the nodes have experienced slashes.

{% hint style="success" %}
**Multi-environment Compatibility**
{% endhint %}

vMANTA is one of Substrate assets in Bifrost parachain, by using the [HRMP](https://wiki.polkadot.network/docs/learn-crosschain#xcmp-cross-chain-message-passing) channels between Bifrost and others, it can be easily utilized in EVM, WASM and Substarte competiable parachains.

## How it works?

vMANTA is issued on Bifrost chain, but it can be directlyminted on Ethereum - powered by SLPx 2.0.

<figure><img src="/files/5gE1dMKRBcADPuXntnaO" alt=""><figcaption></figcaption></figure>

### Mint vMANTA

1. User mints vMANTA by interact with vMANTA Vault contract;
2. Bifrost receives MANTA and bridge to Ethereum mainnet Vault contract;
3. The Vault contract stakes MANTA to Symbiotic.

### Redeem vMANTA

1. User bridges vMANTA back to Ethereum mainnet and interact with vMANTA Vault contract;
2. The Vault contract unstakes MANTA from Symbiotic;
3. User receives redeemed MANTA.

### MANTA Reward

The MANTA reward will be reinvested on Manta, and the Oracle will transmit the reward data to the MANTA Ready Pool to adjust the vMANTA exchange rate.

$$
vMANTA rate=(StakedMANTA+StakingReward)/vMANTA Allocation
$$

💡 Read more detailed info in the following sections.

***


# vASTR

**What is vASTR?**

vASTR (voucher ASTR) is a shadow token of staked ASTR, with fully underlying ASTR reserve and yield-bearing feature of ASTR staking reward. Users can deposit ASTR into Bifrost SLP protocol and get vASTR as return, vASTR can be traded in the open market or be redeemed back to ASTR. Holding vASTR equals to holding the ASTR staking position, staking rewards appreciate the exchange price of vASTR.

{% hint style="info" %}
Staking rewards automatically add to the vASTR exchange price, no manual claim. The longer vASTR postion holding, the greater amount of ASTR will be exchanged back when redemption.
{% endhint %}

## Why vASTR?

{% hint style="success" %}
**Liquid Staking**
{% endhint %}

The product allows users to delegate ASTR for liquid vToken, (vASTR). vASTR will keep receiving staking rewards and can continue to be used in Bifrost and Polkadot-based DeFi for additional rewards.

{% hint style="success" %}
**Automatically Staking rewards capturing without scenario limitations**
{% endhint %}

SLP will issue Staking rewards to vASTR by adjusting the price of vASTR / ASTR upwards. vASTR Rate = SLP Staking ASTR (SUM) / vASTR Total Issuance.

{% hint style="success" %}
**Floating redemption period, vASTR ≤ 240 hours**
{% endhint %}

While ASTR’s original chain Staking has a fixed revoke period, Bifrost SLP helps users to realize the possibility of **early vASTR redemption** by matching the real-time vASTR minting quantity with the redemption quantity at the protocol layer in form of a queue.

{% hint style="success" %}
**Multi-environment Compatibility**
{% endhint %}

vASTR is one of Substrate assets in Bifrost parachain, by using the [HRMP](https://wiki.polkadot.network/docs/learn-crosschain#xcmp-cross-chain-message-passing) channels between Bifrost and others, it can be easily utilized in EVM, WASM and Substarte competiable parachains.

## How it works?

vASTR is minted by Bifrost SLP pallet, so firstly users have to call XCM cross chain transfer ASTR from Astar to Bifrost Parachain.

<figure><img src="/files/AwVu0nvHKAzrHdSwmcTq" alt=""><figcaption></figcaption></figure>

### Mint vASTR

1. Users initiate a vASTR mint order, SLP protocol transfers ASTR to ASTR Ready Pool (which is an order pool accumulates all mint and redeem orders), SLP mints vASTR for users;
2. ASTR Ready Pool matches Mint amount and Redeem amount;
3. Oracle monitor matching results from ASTR Ready Pool and send messages to ASTR-Bifrost SLP addresses;
4. Bifrost SLP addresses execute Staking to SLP ASTR DApp staking set, Oracle queries the successful messages and send them back to Bifrost ASTR Ready Pool, get ready for the next matching.

About SLP Oracle/backend service: The SLP backend service is using ⅘ multisig nodes, responsible for adjusting the exchange rate in each round, returning the due amount to the current redeem due user, checking the ledger, summarizing the pledge amount in a new round, and calling the corresponding SLP module function. In order to more flexibly handle the increase or decrease of users' pledge in each round, we will adopt a decentralized delegation relationship and a small-amount pledge strategy to increase the efficiency of the use of funds.

### Redeem vASTR

1. Users initiate a vASTR redeem orders to ASTR Ready Pool;
2. ASTR Ready Pool matches Redeem amount and Mint amount, and dispatches the remaining ASTR to vASTR redeem orders, SLP destroys the redeemed vASTR amount;
3. Oracle monitor redeem orders from Bifrost chain and send messages to ASTR-Bifrost SLP addresses;
4. Bifrost SLP addresses execute Redeem to SLP ASTR DApp staking set and send redeemed ASTR back to Bifrost parachain, Oracle queries all these messages and send them back to Bifrost ASTR Ready Pool, get ready for the next round matching.

### ASTR Reward

The ASTR reward will be reinvested on ASTR, and the Oracle will transmit the reward data to the ASTR Ready Pool to adjust the vASTR exchange rate.

$$
vASTR rate=(StakedASTR+StakingReward)/vASTR Allocation
$$

💡 Read more detailed info in the following sections.

***

## SLP-vASTR Technology Implementation

### Overall operation process

The entire SLP protocol includes three parts, the Vtoken-Minting module, the SLP module, and the backend service.

The user can call the mint/redeem/rebond method of the VtokenMinting module through the front end to mint ASTR into vASTR, or exchange vASTR back to ASTR. During the period of holding vASTR, users can enjoy staking benefits, which are reflected in the exchange rate of vASTR to ASTR. If the user has new pledge amounts in the pool during the redeem period, the user will be able to experience the process of fast redemption, and the new pledge amount will be returned to the users in front of the redeem queue first.

The SLP module of Bifrost is responsible for communicating with the ParachainStaking module of the ASTR chain by sending cross-chain messages to perform operations such as delegate, delegate\_bond\_more, schedule\_delegator\_bond\_less, schedule\_revoke\_delegation, execute\_delegation\_request, cancel\_delegation\_request, schedule\_leave\_delegators, execute\_leave\_delegators, cancel\_leave\_delegators. The delegator account is generated by Bifrost's parachain address on the ASTR chain, and the corresponding sub-account is generated by calling the as\_derivative function of the utility module. All delegator and validator addresses are stored and used in the format of MultiLocation in the module.

### Backend service function

The SLP backend service is responsible for adjusting the exchange rate in each round, returning the due amount to the current redeem due user, checking the ledger, summarizing the pledge amount in a new round, and calling the corresponding SLP module function. In order to more flexibly handle the increase or decrease of users' pledge in each round, we will adopt a decentralized delegation relationship and a small-amount pledge strategy to increase the efficiency of the use of funds.

#### At the start of Round

1. Update round numbers
2. Charge the custody fee, add interest (according to the dividend event, dividends before n+1 period), modify the exchange rate, and transfer the interest amount back to the exit account.
3. Withdrawal of redemption due amount
4. Repay the current due debt and transfer the remaining amount to the entry account for quick redemption.
5. Query and compensate the reserve amount of handling fees for each operating account.

#### Before Round ends

1. Transfer the excess amount in the entry account to a different delegate, and perform the pledge operation. When pledging, pay attention to check if the ranking is in the bottom delegation. If so, add the delegating amount, or transfer the amount to another DApp Staking.
2. Check the ledger, warn and adjust accordingly if there are discrepancies.

#### Attention for staking operations:

1. The staking amount is distributed among multiple delegation relationships of multiple delegates in a relatively even manner to facilitate each round of bond and redeem fund operations and improve the efficiency of fund use.
2. Don't let the delegates fall into the bottom delegation group of DApp Stakings. It is necessary to maintain a real-time top lowest value of DApp Staking. In theory, each account should try to keep a certain percentage higher than this value, such as 15%.
3. When comparing the difference in the number of redeems between the Bifrost chain and the ASTR chain, the number on the ASTR side should be greater than or equal to the number on the Bifrost side

## Vtoken-Minting module

The user can call the mint/redeem/rebond method of the VtokenMinting module through the front end to mint ASTR into vASTR, or exchange vASTR back to ASTR. During the period of holding vASTR, users can enjoy staking benefits, which are reflected in the exchange rate of vASTR to ASTR. If the user has new pledge amounts in the pool during the redeem period, the user will be able to experience the process of fast redemption, and the new pledge amount will be returned to the users in front of the redeem queue first.

### Data Structure

```rust
#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
pub struct SubstrateLedger<Balance> {
  /// The delegator account Id
  pub account: MultiLocation,
  /// The total amount of the delegator's balance that we are currently accounting for.
  /// It's just `active` plus all the `unlocking` balances.
  #[codec(compact)]
  pub total: Balance,
  /// The total amount of the delegator's balance that will be at stake in any forthcoming
  /// rounds.
  #[codec(compact)]
  pub active: Balance,
  /// Any balance that is becoming free, which may eventually be transferred out
  /// of the delegator (assuming it doesn't get slashed first).
  pub unlocking: Vec<UnlockChunk<Balance>>,
}

/// A type for substrate ledger updating entries
#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
pub struct SubstrateLedgerUpdateEntry<Balance> {
  /// The currency id of the delegator that needs to be update
  pub currency_id: CurrencyId,
  /// The delegator id that needs to be update
  pub delegator_id: MultiLocation,
  /// Update operation type
  pub update_operation: SubstrateLedgerUpdateOperation,
  /// The unlocking/bonding amount.
  #[codec(compact)]
  pub amount: Balance,
  /// If this entry is an unlocking entry, it should have unlock_time value. If it is a bonding
  /// entry, this field should be None. If it is a liquidize entry, this filed is the ongoing
  /// timeunit when the xcm message is sent.
  pub unlock_time: Option<TimeUnit>,
}
```

### Storages

* Delegator index ⇒ delegator multilocaition

```rust
pub type DelegatorsIndex2Multilocation<T> = StorageDoubleMap<CurrencyId, u16, MultiLocation>
```

* Delegator multilocaition ⇒ delegator index

```rust
pub type DelegatorsMultilocation2Index<T> = StorageDoubleMap<CurrencyId, MultiLocation, u16>
```

* The next delegator index of current CurrencyId

```rust
pub type DelegatorNextIndex<T> = StorageMap<CurrencyId, u16>
```

* The detailed leager informaiton of each vASTR parachain sub-accont.

```rust
pub type DelegatorLedgers<T> = StorageDoubleMap<CurrencyId, MultiLocation, Ledger<MultiLocation, BalanceOf<T>, MultiLocation>>
```

* After waiting for the cross-chain message receipt to be obtained,the message queue to the Delegator ledger needs to be updated.

```rust
pub type DelegatorLedgerXcmUpdateQueue<T> = StorageMap<QueryId， (LedgerUpdateEntry<BalanceOf<T>, MultiLocation, MultiLocation>, BlockNumberFor<T>)>
```

### Functions

* Initialize the Delegator sub-account

```rust
fn initialize_delegator(origin: OriginFor<T>,currency_id: CurrencyId)
```

* Add one delegator

```rust
fn add_delegator( origin: OriginFor<T>, currency_id: CurrencyId, index: u16, who: MultiLocation )
```

* Reduce one delegator

```rust
fn remove_delegator( origin: OriginFor<T>, currency_id: CurrencyId, who: MultiLocation )
```

* Turn ASTR from the ASTR chain and call the pallet-xcm module on ASTR across the chain.

```rust
fn transfer_back( origin: OriginFor<T>, currency_id: CurrencyId, from: Box<MultiLocation>, to: Box<MultiLocation>,  amount: BalanceOf<T> )
```

* Transfer the ASTR from the designated account in Bifrost to the delegator on the ASTR chain, and call the xToken module on the Bifrost chain

```rust
fn transfer_to( origin: OriginFor<T>, currency_id: CurrencyId, from: Box<MultiLocation>, to: Box<MultiLocation>, amount: BalanceOf<T> )
```

* Synchronize the era information on the ASTR chain

```rust
fn update_ongoing_time_unit( origin: OriginFor<T>, currency_id: CurrencyId, time_unit: TimeUnit)
```

* Redeem users who repay the current ERA expiration

```rust
fn refund_currency_due_unbond( origin: OriginFor<T>, currency_id: CurrencyId )
```

* Replenish the fee reserve of the operating account

```rust
fn supplement_fee_reserve( origin: OriginFor<T>, currency_id: CurrencyId, dest: MultiLocation )
```

* Staking custody fees are collected from the interest, as well as adjusting the exchange rate of vASTR to ASTR

```rust
fn charge_host_fee_and_tune_vtoken_exchange_rate( origin: OriginFor<T>, currency_id: CurrencyId, value: BalanceOf<T>, who: MultiLocation )
```

* Upon receipt of an acknowledgement that the cross-chain message was executed successfully, this function is called to change the ledger of the corresponding delegator and delete the changed information in the staging queue.

```rust
pub fn confirm_delegator_ledger(
      origin: OriginFor<T>,
      query_id: QueryId,
      response: Response,
    )
```

* Calling bond\_and\_stake on an ASTR chain using delegator

```rust
pub fn bond_and_stake(
      origin: OriginFor<T>,
      who: MultiLocation,
      contract_id: T::SmartContract,
      #[pallet::compact] value: BalanceOf<T>,
    )
```

* Calling unbond\_and\_unstake on an ASTR chain using delegator

```rust
pub fn unbond_and_unstake(
  origin: OriginFor<T>,
  who: MultiLocation,
  contract_id: T::SmartContract,
  #[pallet::compact] value: BalanceOf<T>,
)
```

* Calling unbond\_and\_unstake on an ASTR chain using delegator

```rust
pub fn withdraw_unbonded(origin: OriginFor<T>,who: MultiLocation,)
```

* Calling nomination\_transfer on an ASTR chain using delegator

```rust
pub fn nomination_transfer(
  origin: OriginFor<T>,
  who: MultiLocation,
  origin_contract_id: T::SmartContract,
  #[pallet::compact] value: BalanceOf<T>,
  target_contract_id: T::SmartContract,
)
```

* Calling claim\_staker on an ASTR chain using delegator

```rust
pub fn claim_staker(
  origin: OriginFor<T>,
  who: MultiLocation,
  contract_id: T::SmartContract,
)
```


# Validator Governance

## Conpects

The SLP protocol manages the delegation set by integrating on-chain logic, and off-chain governance. The main goals and directions are the following:

* [x] Ensure the security of PoS networks
* [x] Ensure low risk of the SLP protocol
* [x] Improve the yield of SLP vTokens
* [x] Expand the TVM and influence of the SLP protocol

<mark style="color:purple;">**How to varify Bifrost delegators are keyless accounts?**</mark>\ <mark style="color:purple;">**-**</mark> [<mark style="color:purple;">**\[Bifrost Polkadot\]**</mark>](https://www.notion.so/bifrost-io/Verification-of-Bifrost-DOT-Staked-Addresses-f7c7a2897d314c90b1e90246ec4b79ba)\ <mark style="color:purple;">**-**</mark> [<mark style="color:purple;">**\[Bifrost Kusama\]**</mark>](https://www.notion.so/bifrost-io/Verification-of-Bifrost-KSM-Staking-Addresses-119bc3b88a8480a7afccce71183f1a1c)

### Validator Election Track (VET)

An independent governance track of Polkadot Gov2 module for SLP protocol’s Validators selection. This track has the right to modify the parameters related to node selection through a referendum.

Validator selecting or replacement is a automatic process, it depends on a score ranking which is socred by a script, example:

[<mark style="color:purple;">**Validator Score Ranking (vBNC)**</mark>](https://docs.google.com/spreadsheets/d/13YdCMc_bVdmy5My22mWRTC5ITwVEaRZQi4fIZGr8tSw/edit#gid=628365504)

[<mark style="color:purple;">**Score Script**</mark>](https://github.com/bifrost-finance/slp-mark)

### Validator Boost List (VBL)

Validator Boost List is a special mark for nodes, which is part of Validator White List (VWL), and nodes added to Validator Boost List will have a fixed delegation set in VWL. The mechanism of the SLP protocol and the stable delegating amount will ensure that the nodes in the delegation set are continuously in the active state. **The Validator Boost List can ONLY be added or removed by referendum on the Validator Election Track.** Considering the long-term sustainability of the SLP protocol, the Validator added to the Validator Boost List has a default expiration time (6 months). After the expiration, the corresponding Validator will automatically withdraw from the Validator Boost List and become an White List Validator and keep following the selection rules in Validator White List.

### Delegation Set

The collection of selected Validators who will actually be delegated from SLP, the number of Validators in it is determined by the governance of the Validator Election Track. The final selection is automatically selected through the Validators scoring system.

### Validators Scoring System

The automated scoring system based on the relevant attributes of the vToken PoS chain is currently executed by off-chain scripts, and will be deployed on Polkadot Off-chain Workers in the future to achieve good decentralization. The scoring system customizes rules based on different PoS chain mechanisms and is completely open source, and the results will be subject to any external inspection. Scoring mainly refers to the following indicators:

* Profitability of nodes
* Historical operation of the node
* Authentication information of the node
* The degree of decentralization of the distribution of nodes

## Selection Process

If a node is selected by the SLP and is in the delegation set of the SLP, the following steps are required:

1. **The node is added to the Validator White List (VWL)**

> For the security of the SLP protocol, the logic of the Bifrost parachain runtime only allows the SLP protocol to assign the Token delegate to the nodes in the VWL. Therefore, nodes need to be added to the VWL of SLP to have a chance to be further selected into the delegation set of SLP. The selection and update of the Validator White List fully follow the conclusions of the Validators scoring system. Based on the results, the Bifrost community initiates referendum governance on the Validator Election Track to update.

2. **Node scoring in SLP VWL**

> The scoring system will give the latest score to the Validator White List every time the delegation set is updated.

3. **Make the current delegation set and vote**

> Based on the latest VWL score and the number of Validators required by the current delegation set, the system automatically adds the Validators in the Validator Boost List to the delegation set, and then fills in the corresponding Validator White List from high to low according to the latest score The Validator in the chain automatically initiates operations on the chain after completing the delegation set, and automatically adjusts the pledge allocation of the corresponding vToken.

#### Conditions for nodes to naturally participate in SLP

* [x] Already added to VWL
* [x] The node score is ranked within the total number of delegation sets


# Mint/Redeem vToken without Dapp

## Summary

This tutorial will guide you through vToken minting and redemption without using the Bifrost Dapp, or in case the Bifrost Dapp is temporarily unavailable.

## Where to do？

By using <mark style="color:purple;">Polkadot.JS</mark>, you can directly interact with Bifrost parachain, calling specific functions such vToken minting or redemption. Choose the environment below, depends on where your assets at:

#### <mark style="color:purple;">Bifrost-Polkadot</mark> (vDOT, vGLMR, vFIL, vASTR, vBNC)

{% embed url="<https://polkadot.js.org/apps/?rpc=wss://eu.bifrost-polkadot-rpc.liebi.com/ws#/extrinsics>" %}

#### <mark style="color:purple;">Bifrost-Kusama</mark> (vKSM, vMOVR)

{% embed url="<https://polkadot.js.org/apps/?rpc=wss://bifrost-rpc.liebi.com/ws#/extrinsics>" %}

## Token and vToken Index Library

### Token Indexes on <mark style="color:purple;">**Bifrost-Polkadot**</mark>

**NOTE**: Decimal means how many "0" follows 1 Token. E.g, DOT or vDOT decimal is 10, so 1 DOT = 10,000,000,000 which by followed up with ten "0".

| Token  | Token ID, U8 | Decimals | Redeem Period (day) |
| ------ | ------------ | -------- | ------------------- |
| DOT    | Token2, 0    | 10       | -                   |
| vDOT   | vToken2, 0   | 10       | 0-28                |
| GLMR   | Token2, 1    | 18       | -                   |
| vGLMR  | vToken2, 1   | 18       | 0-7                 |
| ASTR   | Token2, 3    | 18       | -                   |
| vASTR  | vToken2, 3   | 18       | 0-10                |
| FIL    | Token2, 4    | 18       | -                   |
| vFIL   | vToken2, 4   | 18       | 0-520               |
| MANTA  | Token2, 8    | 18       | -                   |
| vMANTA | vToken2, 8   | 18       | -                   |
| BNC    | Native, BNC  | 12       | -                   |
| vBNC   | vToken, BNC  | 12       | 0-7                 |

### Token Indexes on <mark style="color:purple;">**Bifrost-Kusama**</mark>

**NOTE**: Decimal means how many "0" follows 1 Token. E.g, KSM or vKSM decimal is 12, so 1 KSM = 1,000,000,000,000 which by followed up with twelve "0".

| Token | Token ID, U8 | Decimals | Redeem Period (day) |
| ----- | ------------ | -------- | ------------------- |
| KSM   | Token, KSM   | 12       | -                   |
| vKSM  | vToken, KSM  | 12       | 0-7                 |
| MOVR  | Token, MOVR  | 18       | -                   |
| vMOVR | vToken, MOVR | 18       | 0-2                 |

## Quick Calls

Quick calls can help you quickly construct the transactions, but overview the details of each step in tutorials is strongly suggested.

{% hint style="info" %}
All the quick calls below had constructed with right decimals with 1 Token as cases, so you can just replace the 1st number to how many acutal tokens that you want to mint or redeem , so it works.
{% endhint %}

For example, if the value is 10,000,000,000 in the case below, and you want to mint or redeem 15 tokens, simply replace 1 with 15 so that it becomes 150,000,000,000 with the correct decimals.

| Token  | Mint                                                                                                                                                               | Redeem                                                                                                                                                         |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| vDOT   | [1 vDOT](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x7300080000e40b540200000000000000000000000430)   | [1 vDOT](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x7301090000e40b54020000000000000000000000)   |
| vGLMR  | [1 vGLMR](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73000801000064a7b3b6e00d00000000000000000430)  | [1 vGLMR](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73010901000064a7b3b6e00d0000000000000000)  |
| vASTR  | [1 vASTR](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73000803000064a7b3b6e00d00000000000000000430)  | [1 vASTR](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73010903000064a7b3b6e00d0000000000000000)  |
| vBNC   | [1 vBNC](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhk.p.bifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x730000010010a5d4e80000000000000000000000043000)        | 1 [vBNC](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhk.p.bifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x730101010010a5d4e80000000000000000000000)          |
| vFIL   | [1 vFIL](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73000804000064a7b3b6e00d00000000000000000430)   | [1 vFIL](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73010904000064a7b3b6e00d0000000000000000)   |
| vMANTA | [1 vMANTA](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73000808000064a7b3b6e00d00000000000000000430) | [1 vMANTA](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x73010908000064a7b3b6e00d0000000000000000) |
| vKSM   | [1 vKSM](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x730002040010a5d4e800000000000000000000000430)               | [1 vKSM](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x730101040010a5d4e80000000000000000000000)               |
| vMOVR  | [1 vMOVR](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x7300020a000064a7b3b6e00d00000000000000000430)              | [1 vMOVR](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x7301010a000064a7b3b6e00d0000000000000000)              |

## How to mint vToken?

1. Please make sure you select the right **chain of Polkadot JS** before you follow up with the following process, it depends on what vToken you want to mint, check above section at [Where to do](#where-to-do)?.
2. Selet Extrinsics

<figure><img src="/files/y0RyVNR6YLgpsGaI2hxc" alt=""><figcaption></figcaption></figure>

3. Select which address that you want to mint vToken, and construct `vtokenminting`, `mint` as below. (make sure you have BNC in balance to pay for transaction fee)

<figure><img src="/files/l50eWznfW4FRekgsjz60" alt=""><figcaption></figcaption></figure>

4. Fill up what token that you want to mint for, we take an example as using 1 DOT for vDOT minting here. (Check [Token Index Chart](#token-and-vtoken-index-library) to find what to put here.)
   1. Since DOT index is Token2, 0, so we put Token2 in `tokenid`, and put 0 in `token2:u8`.
   2. Since DOT decimal is 10, so we put 10,000,000,000 in `tokenAmount`
   3. You can put anything in `remark`.
   4. Submit and sign transaction. (make sure you have [wallet extension](broken://pages/BiuqWFgrXphDRkGkWK9L) installed)
   5. Wait for transction processing and check the right corner, green means succeed, red means failed.

<figure><img src="/files/ViDd8oJvkcO6docsIxdY" alt=""><figcaption></figcaption></figure>

5. Check your balance by select Chain State

<figure><img src="/files/Oq3YppdUXsGLQwUJ6JXE" alt=""><figcaption></figcaption></figure>

6. Select `tokens`, `accounts,`and input what token balance that you are checking for. In the above case, we used DOT to mint vDOT, so we want to check my vDOT balance here.

<figure><img src="/files/lnPWNAVCfS6HSlEP6wLU" alt=""><figcaption></figcaption></figure>

## How to redeem vToken?

1. Please make sure you select the right **chain of Polkadot JS** before you follow up with the following process, it depends on what vToken you want to mint, check above section at [Where to do](#where-to-do)?.
2. Selet Extrinsics

<figure><img src="/files/eJA51aFBwCgQwoO0T015" alt=""><figcaption></figcaption></figure>

3. Select which address that you want to redeem vToken, and construct `vtokenminting`, `redeem`as below. (make sure you have BNC in balance to pay for transaction fee)

<figure><img src="/files/QVUJGciKKXrEOHTpjeI2" alt=""><figcaption></figcaption></figure>

4. Fill up what token that you want to redeem for, we take an example as using 0.4 vDOT redeeming DOT here. (Check [Token Index Chart](#token-and-vtoken-index-library) to find what to put here.)\
   **NOTE**: The minimum redeem for vDOT is 0.4 vDOT
   1. Since vDOT index is vToken2, 0, so we put vToken2 in`tokenid`, and put 0 in `vtoken2:u8`.
   2. Since vDOT decimal is 10, so we put 4,000,000,000 in `tokenAmount`
   3. Submit and sign transaction. (make sure you have [wallet extension](broken://pages/BiuqWFgrXphDRkGkWK9L) installed)
   4. Wait for transction processing and check the right corner, green means succeed, red means failed.

<figure><img src="/files/thKcPBFqTHRDDB1CyHDJ" alt=""><figcaption></figcaption></figure>

5. Wait for redemption period and receive Token back. Check corresponding redemption period of each vToken [above](#token-and-vtoken-index-library).


# What is LoopStake?

## What is LoopStake?

Loopstake refers to the strategy of amplifying yield earned from staking by leveraging liquid staking assets against the base asset, it can also be called Leveraged Staking. This approach allows users to potentially earn higher staking rewards than they would with just their own funds.

> For example, in DOT leveraged Staking, vDOT is supplied, and DOT is borrowed. If a user sets a 2x leveraged position, it means that this user will receive 2x staking rewards from vDOT base on his/her principle.

<figure><img src="/files/6HwIMVugpCiYZRELM1bW" alt=""><figcaption></figcaption></figure>

Unlike other loan protocols, loops in Bifrost's leveraged Staking are enabled only for the exchange between relevant vTokens and their underlying Tokens (e.g., vDOT/DOT, vGLMR/GLMR, and not vDOT/GLMR). As a result, Bifrost's lending Market specializes in offering services for leveraged Staking of vTokens, but **it does not offer the function of borrowing any Token for users**. This approach guarantees a stable liquidity flow between vTokens and Tokens.

### Where does the yield come from?

The leveraged Staking yield comes from three sources:

#### 1. Staking Yield

Exposure to the yield-bearing nature of Bifrost’s vTokens: vDOT, vGLMR, vASTR and others.

#### 2. Lending Interest

Usually, if lending supply is equal to borrowed liquidity, the borrowing Interest will be higher than the lending Interest. Therefore, users must establish a reasonable position based on real-time market conditions in order to maximize the leveraged Staking returns.

#### 3. Protocol Reward

Based on lending Interest, lending and Borrowing Markets can be incentivized with BNC through governance. In certain scenarios, Lending and Borrowing Interests may reverse, with Lending Interest approaching Borrowing Interest or even exceeding it. This situation can lead to Leveraged Staking generating higher profits than the normal interest situation.

### Leveraged Yield Example

Here is a simple example to understand how leveraged staking can amplify yield from vDOT.

> Assume User A has 1000 vDOT. The user deposits his vDOT for vDOT leveraged Staking, and sets a 4x leverage.

**Now, let's say:**

| vDOT/DOT exchange rate | 1 : 1.2 |
| ---------------------- | ------- |
| vDOT yield-bearing APY | 18%     |
| DOT borrowing rate     | 10%     |

**Thus, user's position is:**

User made a 1,000 vDOT deposit, with 4x leverage

* Total DOT Exposure: 1,000\* 1.2\* 4 = **4,800 collateralized DOT**&#x20;

(***Note: 1 vDOT equals to 1.2 DOT***)

* Total DOT Debt = Total Exposure - Initial Deposit = 4,800 - 1,200 = **3,600 DOT as debt**
* Loan To Value (LTV) : Debt / Collateral, LTV = 3,600 / 4,800= **75% LTV**

vDOT APY = 18% : 4,800 \* 18% = 864 DOT (Earned from staking APY)

Borrowing APY = 10% : 3,600 \* 10% = 360 DOT (Paid as borrowing Interest)

**Net DOT Earned** = **864 - 360 = 504 DOT**

Net APY = Net DOT Earned / Initial Deposit = 504 / 1,200 = **42%**

## How does it work?

The user simply needs to set the leverage in **“one click”** in order to open or close a position. The Bifrost Leveraged Staking module will borrow or repay funds in the lending Market through [Flash Loans](https://chain.link/education-hub/flash-loans) to meet the user's needs. The detailed process is as follows:

> Each of the following processes is completed in a single atomic transaction, where the failure of any step will cause the entire transaction to fail. (For the sake of quick understanding of the workflow, the following examples do not consider LTV calculations.)

#### Open position process

<figure><img src="/files/uvXkQouJvyEl1naBO5iy" alt=""><figcaption></figcaption></figure>

> *Let's say user A wishes to open a 4x Leveraged Staking position using 10 vDOT, with a vDOT:DOT exchange rate of 1:1.2.*

1. The Leveraged Staking module first checks if the user can establish 4x leverage based on the current Loan-to-Value (LTV). If it exceeds the user's safe LTV, the transaction can't be executed.
2. If step 1 is successful, the Leveraged Staking module will issue all necessary DOTs for the 4x leverage in one go. So, it's 30\*1.2 = 36 DOT.
3. Convert 36 DOT into 30 vDOT.
4. Both the user's principal 10 vDOT and the 30 vDOT from the previous step are jointly mortgaged into the lending Market.
5. Borrow 36 DOT and destroy (Flash Loan logic: 36 DOT were issued at step 2, so here we need to burn it).

User A's current position becomes:

| Debt   | Collateral |
| ------ | ---------- |
| 36 DOT | 40 vDOT    |

#### Close position process

<figure><img src="/files/RYwByTrNSfxYy0PYfCvG" alt=""><figcaption></figcaption></figure>

> *Based on the position already established by User A above, let's suppose User A wants to deleverage all his positions.*

1. The Leveraged Staking module issues the 36 DOT required for User A to repay his whole debt.
2. Repay the debt with 36 DOT.
3. Calculate the amount of vDOT needed to be withdrawn from the lending Market according to the the swap slippage, assuming the slippage is 0.1 vDOT.
4. Withdraw the user's collateral of 30.1 vDOT, and exchange 30.1 vDOT for 36 DOT in Bifrost Swap.
5. Destroy the 36 DOT (Flash Loan logic: 36 DOT were issued at step 1, so here we need to burn it.)

User A's current position becomes:

| Debt | Collateral |
| ---- | ---------- |
| 0    | 9.9 vDOT   |

#### Deleveraging Process

> *Assuming user A wants to deleverage to 2x leverages position.*

(\****Since there is swap slippage in between the repayment process, the final result will be slightly smaller than the target leverage position***）

1. The Leveraged Staking module issues 24 DOT.
2. Repay the debt with 24 DOT.
3. Calculate the amount of vDOT to be withdrawn from the lending Market according to the Swap slippage, assuming the slippage is 0.1 vDOT.
4. Withdraw 20.1 vDOT of user A's collateral and exchange 20.1 vDOT for 24 DOT in Bifrost Swap.
5. Destroy the 24 DOT.

User A's current position becomes:

| Debt   | Deposit   |
| ------ | --------- |
| 12 DOT | 19.9 vDOT |

> *You may be wondering, after deducting the slippage, will User A's LTV trigger a liquidation?*

In practice, the lending Market will judge whether the user's LTV will trigger a liquidation when the user is ready to withdraw collateral. If the answer is affirmative, then the transaction will not be able to be successfully executed.

In the 4th step of the above case, if the user's LTV has exceeded the liquidation mark when withdrawing 15.1 vDOT of collateral, then the whole process will fail. Therefore, in this situation, the user needs to manually add collateral to ensure the successful execution of the transaction.

### Risks

#### Liquidation

#### No Liquidation Risk

In Bifrost Loop Stake, only loans between related tokens are supported, such as in the vDOT Loop Stake, only the operation of mortgaging vDOT to borrow DOT is supported. Since their relative prices on the market are relatively stable, when the price of DOT rises or falls, vDOT will also change synchronously.

In extreme market conditions, if the price of vDOT deviates significantly from DOT, since Loop Stake only accepts vDOT or vKSM as collateral, the LTV of all mortgagors may exceed the liquidation threshold, but they will still remain in position (no liquidation), just waiting for the price of vDOT to return to his expected ratio.

#### Depeg Risk

1. **Depegging from exchange rate between vToken and Token**

If systemic risks occur in the Bifrost protocol, or malicious governance actions leading to a malicious issuance of vToken, this may cause a drastic fluctuation in the exchange rate between vToken and Token (check [Bifrost Financial Security](https://docs.bifrost.finance/resources/audit-report#bifrost-security-evaluation) for detailed statement), leading vToken system to crash.

However, compared to smart contracts, one of the characteristics of Bifrost as a Polkadot parachain is that it has [Shared Security](https://wiki.polkadot.network/docs/learn-parachains#shared-security), therefore high security guarantees are ensured.

2. **Oracle**

An incorrect price feed can lead to a misalignment between the vToken's value and the underlying asset. This can lead to depegging, where the vToken loses its intended value correlation with the underlying asset, potentially causing cascading liquidations and loss of confidence in the market.

Bifrost uses the [Oracle Module](https://github.com/open-web3-stack/open-runtime-module-library/tree/master/oracle) to obtain Token prices from 4 data sources, including DIA, Kraken, Coingecko and Gate. Bifrost will take the median of at least three of these data sources at given time intervals to calculate and post this result as the final on-chain price.

### Audit

{% embed url="<https://github.com/oak-security/audit-reports/blob/main/Bifrost/2024-03-11%20Audit%20Report%20-%20Bifrost%20Finance%20Leveraged%20Staking%20v1.0.pdf>" %}


# LoopStake Lending Parameters

All parameters listed on this page are based on parameters set in the formal environment. Therefore, when the parameters are adjusted online, this document will also be adjusted synchronously.

### Glossary

| collateralFactor     | The maximum proportion of the collateral’s value that can be borrowed.                                                                                                 |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| liquidationThreshold | The ratio of the loan amount to the value of the collateral, beyond which the collateral is considered insufficient to cover the loan, triggering a liquidation event. |
| reserveFactor        | The percentage of interest paid by borrowers.                                                                                                                          |
| closeFactor          | The maximum percentage of a borrower's total debt that can be repaid or "closed out" by a liquidator in a single liquidation event.                                    |
| rateModel            | The algorithm used to determine the interest rates.                                                                                                                    |
| baseRate             | The minimum rate charged to borrowers.                                                                                                                                 |
| jumpRate             | When the utilization of a fund surpasses a certain threshold, significantly increasing the borrowing cost to manage liquidity.                                         |
| fullRate             | The maximum rate that can be charged to borrowers.                                                                                                                     |
| jumpUtilization      | The interest rate jumps from the base rate to a significantly higher jump rate to manage liquidity and demand.                                                         |

### The Rate Curve of Lend Markets

When the utilization rate of the corresponding token in each lending market reaches 90%, the jump rate will be triggered, and the loan interest will significantly increase.&#x20;

Currently, all Lend Markets of Bifrost are configured to the following curve:

<figure><img src="/files/Shp9msCKlUoAKAfVuMT0" alt=""><figcaption></figcaption></figure>

### Bifrost Polkadot

#### DOT

| Factors              | Parameters |
| -------------------- | ---------- |
| collateralFactor     | 60%        |
| liquidationThreshold | 70%        |
| reserveFactor        | 3%         |
| closeFactor          | 50%        |

Rate Curve

| Factors         | Parameters              |
| --------------- | ----------------------- |
| rateModel       | Jump                    |
| baseRate        | 0                       |
| jumpRate        | 180,000,000,000,000,000 |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 90%                     |

#### vDOT

| Factors              | Parameters |
| -------------------- | ---------- |
| liquidationThreshold | 80%        |
| liquidationThreshold | 90%        |
| reserveFactor        | 3%         |
| closeFactor          | 50%        |

Rate Curve

| Factors         | Parameters              |
| --------------- | ----------------------- |
| rateModel       | Jump                    |
| baseRate        | 0                       |
| jumpRate        | 180,000,000,000,000,000 |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 90%                     |

#### BNC

| Factors              | Parameters |
| -------------------- | ---------- |
| collateralFactor     | 60%        |
| liquidationThreshold | 70%        |
| reserveFactor        | 3%         |
| closeFactor          | 50%        |

Rate Curve

| Factors         | Parameters              |
| --------------- | ----------------------- |
| rateModel       | Jump                    |
| baseRate        | 0                       |
| jumpRate        | 45,000,000,000,000,000  |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 60%                     |

#### vBNC

| Factors              | Parameters |
| -------------------- | ---------- |
| collateralFactor     | 80%        |
| liquidationThreshold | 90%        |
| reserveFactor        | 10%        |
| closeFactor          | 50%        |

Rate Curve

| Factors         | Parameters              |
| --------------- | ----------------------- |
| rateModel       | Jump                    |
| baseRate        | 0                       |
| jumpRate        | 45,000,000,000,000,000  |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 60%                     |

#### ETH

| Factors              | Parameters |
| -------------------- | ---------- |
| collateralFactor     | 60%        |
| liquidationThreshold | 70%        |
| reserveFactor        | 3%         |
| closeFactor          | 50%        |

Rate Curve

| Factors         | Parameters              |
| --------------- | ----------------------- |
| rateModel       | Jump                    |
| baseRate        | 0                       |
| jumpRate        | 45,000,000,000,000,000  |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 60%                     |

#### vETH

| Factors              | Parameters |
| -------------------- | ---------- |
| collateralFactor     | 80%        |
| liquidationThreshold | 90%        |
| reserveFactor        | 10%        |
| closeFactor          | 50%        |

Rate Curve

| Factors         | Parameters              |
| --------------- | ----------------------- |
| rateModel       | Jump                    |
| baseRate        | 0                       |
| jumpRate        | 20,000,000,000,000,000  |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 60%                     |

### Bifrost Kusama

#### KSM

| Factors              | Parameters |
| -------------------- | ---------- |
| collateralFactor     | 60%        |
| liquidationThreshold | 70%        |
| reserveFactor        | 3%         |
| closeFactor          | 50%        |

Rate Curve

| rateModel       | Jump                    |
| --------------- | ----------------------- |
| baseRate        | 0                       |
| jumpRate        | 180,000,000,000,000,000 |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 90%                     |

#### vKSM

| collateralFactor     | 80% |
| -------------------- | --- |
| liquidationThreshold | 90% |
| reserveFactor        | 3%  |
| closeFactor          | 50% |

Rate Curve

| rateModel       | Jump                    |
| --------------- | ----------------------- |
| baseRate        | 0                       |
| jumpRate        | 180,000,000,000,000,000 |
| fullRate        | 500,000,000,000,000,000 |
| jumpUtilization | 90%                     |


# What is LST Governance?

## Overview

vToken Voting is one of the features of Bifrost LST, which reserves the right for <mark style="color:purple;">**Bifrost LST holders to participate in on-chain governance**</mark>. Taking Polkadot as an example, users holding <mark style="color:purple;">**vDOT can use DOT to participate in Polkadot's governance voting**</mark>.

As a governance token for Polkadot, DOT holders can participate in Proposal voting while also participating in DOT staking. And vDOT, as a DOT Liquid Staking Token, retains the same rights as DOT. Using the Bifrost Dapp, you can automatically capture DOT staking rewards and also view proposals in Polkadot OpenGov and lock vDOT for voting participation.

{% hint style="info" %}
This also applies in the same manner for vKSM holders.
{% endhint %}

## Functionalities

#### vToken Voting covers the following features:

* View ongoing Proposals on the main chain
* Vote Aye/Nay/Abstain
* Choose conviction
* Lock vTokens and vote
* Unlock vTokens after the lock period ends

#### What is Conviction？

> “One of these mechanisms is called conviction voting, and imbues greater voting power to token holders who are willing to lock their tokens on the protocol for longer lengths of time. Longer lock-ups display ***conviction*** in a vote. Conviction voting could allow a highly determined minority to overrule the vote of an apathetic majority in certain situations.”\
> \- from Polkadot Wiki

Learn more details about conviction at [here](https://wiki.polkadot.network/docs/faq#what-prevents-polkadot-governance-from-becoming-plutocratic).

## How it works on Bifrost?

To better understand the principles of vToken Voting, we first need to understand the relationship between Bifrost LST and governance voting (using vDOT as an example):

1. Addresses that stake DOT on Polkadot have the right to participate in governance voting.
2. The DOT staked for vDOT is executed by derived addresses from Bifrost's sovereign address on Polkadot. Therefore, these addresses also have the right to participate in governance voting.
3. <mark style="color:purple;">**Bifrost's sovereign address**</mark> ([definition](https://substrate.stackexchange.com/questions/5845/what-is-a-sovereign-account-in-polkadot-substrate)) is the parachain address on Polkadot: [13YMK2eeopZtUNpeHnJ1Ws2HqMQG6Ts9PGCZYGyFbSYoZfcm](https://polkadot.subscan.io/account/13YMK2eeopZtUNpeHnJ1Ws2HqMQG6Ts9PGCZYGyFbSYoZfcm). The actual derived addresses used for DOT staking and voting are calculated based on the sovereign address and are also <mark style="color:purple;">**keyless addresses**</mark>.\
   (You can verify how derived address being calculated via [<mark style="color:purple;">**here**</mark>](https://notion.bifrost.io/Verification-of-Bifrost-DOT-Staked-Addresses-f7c7a2897d314c90b1e90246ec4b79ba?pvs=4).)
4. Bifrost executes governance voting on Polkadot by making XCM calls to the derived addresses.

#### vToken Governance Lock

When a user uses vToken for on-chain governance, the corresponding vToken will be locked based on the parameters chosen by the user. <mark style="color:purple;">**Locked vTokens cannot be transferred or redeemed**</mark>, but it does not affect the yield from exchange rate increases.

An increase in the exchange rate of vToken does not automatically increase the supply. When the governance lock ends, the corresponding vToken will be unlocked.

#### Governance Lock Amount

Since a user's vToken can participate in multiple different governance referendums simultaneously, the lock duration varies. Therefore, the governance lock amount is calculated based on the comprehensive data of all vTokens currently held by the user. As a result, vDOT can participate in multiple Referenda votes simultaneously.

Now, based on the above conditions, let's understand the operating principle of vToken Voting:

### vToken Voting Freamwork

<figure><img src="/files/DnBQ5JQJZF4YlQSWPpQH" alt=""><figcaption></figcaption></figure>

1. Assuming a Bifrost user locks 10 vDOT to vote in favor of Referenda 1 with a 3x Conviction.
2. The SLP module will first calculate the amount of vDOT equal to 12 DOT (assuming a vDOT-DOT exchange rate of 1:1.2). Then, based on the user's vote in favor and the Conviction multiplier, it will make an XCM call to the corresponding derivative address under the Bifrost Sovereign address.
3. The amount of staked DOT in the derivative address represents the maximum voting power of that address (as shown in the figure below). The address will vote in favor of Referenda 1 with 12 DOT and lock 3x Conviction.

<figure><img src="/files/OjfAI9QRBkTA46TQoRZL" alt=""><figcaption></figcaption></figure>

4. When Referenda 1 ends and the Conviction Lock is lifted, Bifrost users can call the Unlock function to unlock 10 vDOT. At the same time, Conviction unlocking will also be executed on Bifrost delegated address on the relay chain.

#### Derived Address Information (Continuously Updated)

#### Polkadot

| Derivative Address                               | Conviction | Attitude     |
| ------------------------------------------------ | ---------- | ------------ |
| 14vtfeKAVKh1Jzb3s7e43SqZ3zB5MLsdCxZPoKDxeoCFKLu5 | 0.1x-6x    | Any Attitude |

#### Kusama

| Derivative Address                              | Conviction | Attitude     |
| ----------------------------------------------- | ---------- | ------------ |
| EckcmXbCj4huvNLP5btMFmJz8SzEt5s8hgKcL6LM8BtZeAf | 0.1x-6x    | Any Attitude |

### For the subsequent optimization of Voting Conviction

In the relay chain, when changing Conviction through voting, the previous locked Conviction will be replaced by the new one. However, for Bifrost, since Bifrost uses multiple derivative addresses to vote, each individual derivative address represents only one Conviction multiplier. Therefore, we need an atomic transaction to switch Conviction:

1. Cancel the vote using address A, which has a Conviction of 3x.
2. Revote using address B, which has a Conviction of 0.1x.

To ensure the atomicity of this operation, we need to execute a batch\_all call on Polkadot. This functionality will be optimized in future versions of vToken Voting.


# What is LST Stable Swap?

## Overview

Bifrost Stable Pool is designed to facilitate related exchanges between vToken and Token that are expected to have similar values, such as vDOT-DOT, vETH-ETH, vKSM-KSM, etc. The Bifrost Stable Pool uses [Stable Math](#invariant) (based on StableSwap, widely promoted by Curve), which allows for large-scale exchanges to take place before encountering significant price impact, greatly improving the capital efficiency of vToken-Token exchanges.

### Why Bifrost Stable Swap is unique?

As vToken is a yield-bearing token, its value will gradually increase over time compared to the corresponding Token value. Therefore, the liquidity supply anchor of vToken and Token in AMM should change with the vToken exchange rate to avoid loss for liquidity providers. The following is a comparison between pegged stable swap and correllated stable swap.

* Pegged Stable Swap

Tokens that swap near 1:1, such as two stablecoins of the same currency

* <mark style="color:purple;">**Correllated stable swap**</mark>

Tokens that swap near 1: ***R*** with some slowly changing exchange rate ***R***, like vToken (eg: vDOT, DOT)

### Liquidity Efficiency Statement

In Stableswap, the size of function A determines the range of stable exchange rates supported in the Stable Curve. The larger the A value, the more liquidity is available to support constant prices. Conversely, the smaller the A value, the less liquidity is available to support constant prices. For mathematical details about the A value, please refer to Invariant.

<figure><img src="/files/hb4kve0Bc5vPepvPzOdY" alt=""><figcaption><p>Stable Curve Coefficient: from Understanding Stable Swap (Curve)</p></figcaption></figure>

<figure><img src="/files/5fGmS6zlOfEKP4vkcQQg" alt=""><figcaption><p>Bifrost Stable Swap</p></figcaption></figure>

To facilitate user understanding, we express the value of ***A*** in Stable Swap as an improvement in liquidity efficiency compared to Uniswap V2.

As shown in the above figure, **100 times** liquidity efficiency means:

> *"Exchanging 100 BNC in the stable pool with the same liquidity is equivalent to exchanging 1 BNC in the Uniswap V2 pool."*

***

Let's take an example. Suppose a liquidity pool has the following liquidity (assuming the exchange rate between vDOT and DOT is 1:1):

| vDOT | 501.1872 |
| ---- | -------- |
| DOT  | 501.1872 |

When a user exchanges 100 vDOT for DOT, the following results will be presented:

#### Uniswap V2

| Input         | 100 vDOT    |
| ------------- | ----------- |
| Output        | 90.8539 DOT |
| Swapped Price | 0.90854     |
| Slippage      | 9.146%      |

#### <mark style="color:purple;">Bifrost Stable Pool (with</mark> <mark style="color:purple;"></mark>*<mark style="color:purple;">A</mark>* <mark style="color:purple;"></mark><mark style="color:purple;">coefficient 5,000)</mark>

| Input         | 100 vDOT    |   |
| ------------- | ----------- | - |
| Output        | 99.9958 DOT |   |
| Swapped Price | 0.99996     |   |
| Slippage      | 0.004%      |   |

#### **Conclusion**

| Input         | 100 vDOT                                                         |
| ------------- | ---------------------------------------------------------------- |
| Output        | 90.8539 DOT ⇒ <mark style="color:purple;">**99.9958 DOT**</mark> |
| Swapped Price | 0.90854 ⇒ <mark style="color:purple;">**0.99996**</mark>         |
| Slippage      | 9.146% ⇒ <mark style="color:purple;">**0.004%**</mark>           |

### **Invariant**

Since the Stable Math equation is quite complex, determining the invariant, ***D*** is typically done iteratively. For an example of how to do this, please refer to: <https://miguelmota.com/blog/understanding-stableswap-curve/>

<figure><img src="/files/UQS9V5NvC8lU9pf6ogmA" alt=""><figcaption><p>Curve's StableSwap Invariant</p></figcaption></figure>

This invariant has the following properties:

* When the token prices are closed to equilibrium(1 to 1), it’s performing close to a constant sum curve;
* When the token prices are shifted away from the equilibrium, it’s performing close to a constant product curve.
* The further the token prices are shifted away, the more slippage the invariant produces. This ensures that the pool can always provide liquidity even at extreme prices.

<figure><img src="/files/Gfeq6EeV6NrkYNAUsDcQ" alt=""><figcaption><p>StableSwap's Curve, from StableSwap whitepaper</p></figcaption></figure>

## How to Swap

#### Basic Swap

1. Enter [bifrost.app](https://bifrost.app) and click "**Swap**" on the left main navigation menu to enter the swap page
2. Switch the token to the desired token through the token dropdown menu on the token name

<figure><img src="/files/yFUI63aicBpUYGf4Koom" alt=""><figcaption><p>Swap page</p></figcaption></figure>

3. Enter the number of tokens that need to be swapped, and verify the output of the transaction (price impact).
4. Click the "**Swap**" button to confirm the transaction and complete the signature


# What is vToken Delegation Voting?

## Overview

{% hint style="info" %}
Delegating voting power to a trusted community member can be an effective way to participate in the decision-making process of Bifrost OpenGov. It allows you to **empower others who share your values and vision for the ecosystem** to represent you and vote on your behalf.
{% endhint %}

Bifrost vToken Voting mimics similar functionality to DOT delegation voting. The features can be compared in the following table

|                     | Polkadot Delegation Voting | vToken Delegation Voting         |
| ------------------- | -------------------------- | -------------------------------- |
| Delegate to address | ✅                          | ✅                                |
| Conviction          | 0.1x - 6x                  | 0.1x - 6x                        |
| Track               | Track Selection            | Delegate to All Tracks (Default) |
| Delegation Removal  | ✅                          | ✅                                |

## FAQ

#### What are Capital and Votes?

**Capital**: The total amount of your tokens.

**Votes**: Your voting power, calculated by multiplying your token capital by the conviction multiplier.

#### What is “delegate to Bifrost OpenGov”?

<figure><img src="/files/JSz8pQKBB9OJGE1ECLzM" alt=""><figcaption></figcaption></figure>

We encourage vDOT holders to delegate their voting rights to the Bifrost Delegate Voting Track (DVT). DVT is one of the Bifrost OpenGov tracks, specifically responsible for governance voting on Polkadot proposals. Check how does it works [below](#how-does-bifrost-delegate-voting-track-dvt-works).

{% hint style="success" %}
If you want to delegate your vDOT voting rights to the entire Bifrost community for decision-making, this is an ideal choice.
{% endhint %}

#### How does Bifrost Delegated Voting Track (DVT) works?

<figure><img src="/files/fDApCo8A4uQE3sq1T9iu" alt=""><figcaption></figcaption></figure>

* This track allows anyone to apply for vDOT voting through Bifrost Opengov.
* The vDOT votes in this track come from vDOT that holders voluntarily delegate to the DVT system address.
* **All proposals in DVT are executed through BNC referendum.**
* If the democratic referendum passes, DVT will automatically call vTokenVoting to execute cross-chain DOT voting according to the applicant's voting intention, and **all delegators who delegate vDOT to DVT will automatically execute delegated voting**.

#### If someone delegates their voting power to me, how should I use the delegated voting power?

The delegated voting power will automatically follow your voting choices when you vote. For example, if your address has been delegated 10 vDOT, when you vote with your own vDOT balance, these 10 vDOT of delegated voting power will automatically vote according to the same choice.

#### Can I remove my delegation?

You can cancel your delegation at any time, and the associated locks will be automatically released.

* For ongoing referendums, you can unlock by modifying the vTokenVoting operation.
* For completed referendums, you can only wait for the conviction lock period to naturally expire.

#### How does Delegation Voting works?

Bifrost adds a delegate function to the [<mark style="color:purple;">vTokenVoting module</mark>](/faq/what-is-lst-governance), allowing users to delegate their voting rights to specified addresses. When the delegated address votes, the delegating address will automatically follow their voting choice.

This function involves two roles: the delegator and voter.

<figure><img src="/files/ohrTJEPLXL4mUjYXPpJ7" alt=""><figcaption></figcaption></figure>

Bob (delegator) delegates 10 vDOT to Alice (voter) with a conviction multiplier of 6x (lock period of 224 days).

* When Alice votes on a proposal (contributing 1 vDOT with a 0.1x conviction multiplier, voting AYE), Bob's delegated 60 vDOT (10 vDOT × 6) will automatically follow with a vote in Aye as well.
  * During this period, Bob can cancel the delegation at any time, and the voting rights will be returned to him.
  * If Bob cancels the delegation after the voting has ended, he will need to wait until the 224-day lock period expires before manually unlocking.


# Dapp Tutorials & use cases

{% hint style="info" %}
If you are already active in Polkadot and understand Staking principles, you'll be successful using our dapp right away! Follow the guidance and relevant links below to get going.\
\
***To view in the Bifrost Support Lab, visit*** [Support Lab](https://support.bifrost.io).
{% endhint %}

Bifrost is a dedicated modular Liquid Staking L1 secured by Polkadot and built with the Polkadot SDK. Over the past six months, Bifrost's TVL has grown fourfold, firmly establishing its position as the leading LST project within the Polkadot ecosystem.

Bifrost has made many notable innovations in the LST space, and its use of dedicative cross-chain architecture may provide significant competitive advantages in the future omni-chain landscape. Meanwhile, Bifrost continues to expand its support for more chains, providing liquid staking services to its ecosystem and beyond.

### Staking Liquidity Protocol (SLP) and vToken

vToken is an LST asset created by Bifrost, short for Voucher Token. Bifrost currently supports 9 chains and has launched 9 types of vTokens, as shown in the image below:

![](https://cdn.bifrost.finance/cms/Capture_d_ecran_2024_06_06_a_18_10_38_f473bf732b.png)

Among them, **vDOT, vKSM, vGLMR, vMANTA, vMOVR, vBNC, and vASTR** are all LST assets in the Polkadot ecosystem, with Bifrost's vToken enjoying an absolute dominant market share in the Polkadot ecosystem.

The module used by Bifrost to support vTokens is known as Staking Liquidity Provider (SLP). Bifrost has deployed the SLP module on Ethereum, Bifrost Polkadot, and Bifrost Kusama. The SLP module manifests as smart contracts on Ethereum to support the minting of vETH, while on Bifrost Polkadot and Bifrost Kusama, it takes the form of a runtime.&#x20;

Bifrost Kusama is the parachain of Polkadot's pioneer network, Kusama, supporting the minting of vKSM, vBNC, and vMOVR. On the other hand, Bifrost Polkadot functions as the parachain of Polkadot, facilitating the minting of vDOT, vGLMR, vASTR, vFIL, and vMANTA.

As cross-chain bridge infrastructure matures, Bifrost will consolidate all vToken minting and management on the Bifrost Polkadot parachain in the future.

The operation of the SLP module is straightforward: users deposit the original tokens into accounts managed by the SLP module. The SLP module then creates voucher/receipt certificates, or vTokens, for users and stakes the original tokens to the network.

SLPx is an extension module developed based on SLP, serving as a developer toolkit that enables the minting of vTokens on any chain. We aim to make it easier for more DeFi applications to integrate vTokens. For developers of DeFi applications on any chain, integrating SLPx requires only a few simple lines of code. After integration, developers can use remote calls to access the minting, redemption, and exchange services of vTokens on the Bifrost Polkadot chain..

### Redemption of vTokens

![](https://cdn.bifrost.finance/cms/Capture_d_ecran_2024_06_06_a_13_02_06_daecaeafa3.png)

Typically, when a user initiates the redemption of vTokens, the SLP module needs to request the corresponding amount of original tokens for unstaking and, after the unbonding period ends, return these original tokens to the user.

Unlike the unlock waiting periods of PoS chains, such as 28 days for Polkadot and 7 days for Kusama, Ethereum does not have a fixed unlock waiting period; it depends on the amount of ETH waiting to be unlocked in the queue. The unlock waiting period is a protective measure implemented by PoS chains to prevent long-range attacks.

Like most LST protocols, Bifrost's vTokens support users in achieving quick redemption through swapping. Bifrost provides a Stable Pool for vToken/Token pairs, adopting a Stable curve similar to Curve Finance to reduce the price impact caused by exchanging.

However, swapping inevitably results in slippage. Bifrost also offers another option for quick redemption. When a user initiates redemption, Bifrost first matches with minting orders in the current queue on a peer-to-peer basis. If the match is successful, the user's redemption will bypass the unlock waiting period and be cashed out immediately.

### The Yield of vToken

{% hint style="info" %}
Have a look to the blog article: [How Bifrost Maintain its Protocol Neutrality](https://bifrost.io/blog/how-bifrost-maintain-its-neutrality-and-governance)
{% endhint %}

Although Bifrost charges a 10% commission from the staking yield of vTokens, the yield of vTokens is often higher than that of competitors. This is because the yield of vTokens is diversified. In addition to the basic staking yield, Bifrost also shares the MEV (Miner Extractable Value) earnings of nodes with users. Periodic mint drop events enable vToken holders to receive BNC rewards.

As a neutral protocol layer, Bifrost ensures that users receive all other rights from the original tokens. For example, vDOT users enjoy the same governance rights in OpenGov as those holding DOT, as well as entitlements from PINK and VARCH airdrops. Bifrost strives to minimize any opportunity costs for vToken holders.

![](https://cdn.bifrost.finance/cms/G_Jm_Ha_FPXQAAYK_Zd_1_342ca61dc0.jpeg)

Moreover, Bifrost aims to enrich the use cases of vTokens, allowing users to access more diverse earnings and higher compounded yields in DeFi through vTokens. This aspect is crucial, and we will elaborate on it in the following sections.


# Liquid Staking on Bifrost

{% hint style="info" %}
***To view in the Bifrost Support Lab, visit*** [How to Liquid Stake on Bifrost and receive vTokens](https://page.bifrost.io/How-to-Liquid-Stake-on-Bifrost-and-receive-vTokens-a72aac5618ee4fcf8b0784ee84c7dc1a).
{% endhint %}

Currently you can mint all vTokens using the Bifrost dapp: <https://app.bifrost.io/>

They are available under the Bifrost chains (Bifrost-Polkadot and Bifrost-Kusama) which supports the Polkadot SDK (Substrate). vETH is directly available under the Ethereum chain.

If you are already familiar with Polkadot and understand staking principles, you can jump successfully on our app and using it right away! Follow the guidance and relevant links below to get going.

With Bifrost, you are now able to stake your tokens (DOT, KSM, ETH, MANTA, GLMR, ASTR, MOVR, FIL, BNC) in exchange for vTokens which you can deploy around the Polkadot ecosystem and beyond. In order to liquid stake your tokens, visit [app.bifrost.io](https://app.bifrost.io) and select “**vStaking**”.

**Youtube tutorial for vDOT**

{% embed url="<https://www.youtube.com/watch?t=9s&v=xdKq0m6LUSU>" %}

**Step-by-step tutorials**

{% tabs %}
{% tab title="vTokens (but vETH)" %}
*Example with vDOT below:*

### Get DOT on Bifrost

> Before minting and using vDOT **you first need to hold DOT in the Bifrost network**. \
> Prepare DOT on your wallet address on the relay chain: \
> \- Purchase DOT on CEX or DEX \
> \- Buy DOT with credit card with fiat on-ramp solutions (i.e Banxa)\
> \- Withdraw from other ecosystem parachains (HydraDX, Moonbeam, Astar, Interlay...)

1. Login to [app.bifrost.io](https://app.bifrost.io) and confirm the network in the upper right corner is **Polkadot**

<figure><img src="/files/s0qDaazSATV8xYK7DGqX" alt=""><figcaption><p>Polkadot network selected</p></figcaption></figure>

2. Click "**Cross chain**" in the main navigation menu on the left to enter the **cross chain** function

<figure><img src="/files/crx0qXCvBokkEFtW1xzN" alt="" width="173"><figcaption><p>Cross chain menu</p></figcaption></figure>

3. Click on the "From" option and select **Polkadot**

<figure><img src="/files/FvVdsp4ojR7jcwMgqwt4" alt="" width="375"><figcaption><p>Cross chain interface </p></figcaption></figure>

4. Enter the amount of DOT that needs to be crossed in into Bifrost, and click "**Cross in**" to complete the confirmation and sign the transaction. Finally wait for the transaction to be completed (6 to 12s).\
   **You successfully deposited DOT on Bifrost !**&#x20;

{% hint style="info" %}
You can also cross-chain DOT directly in the vDOT staking page, by clicking on the "Cross in" option, see next paragraph

<img src="/files/vrHNlkprqBx9QvUsPfVr" alt="" data-size="original">
{% endhint %}

### Stake DOT

1. Click on **vStaking** in the main navigation menu, then click vDOT to enter the vDOT page

<figure><img src="/files/ErE8vFiwbxxX9GfemQAS" alt=""><figcaption><p>vStaking menu with all LSTs</p></figcaption></figure>

2. Enter the amount of DOT to be minted into vDOT in the right panel (0.5 DOT is the minimum)

<figure><img src="/files/bv9U9LjxgForBJBJuoZh" alt=""><figcaption><p>vDOT staking page - Minting</p></figcaption></figure>

3. Click on "**Stake**" button, confirm and sign the transaction. Once vDOT are minted they are directly deposited in your [Bifrost wallet](https://app.bifrost.io/wallet).
   {% endtab %}

{% tab title="vETH specificity" %}

### Prerequisites

Open [app.bifrost.io/vstaking/vETH](https://app.bifrost.io/vstaking/vETH) page, connect your Ethereum wallet and switch to Ethereum mainnet

### Stake ETH

1. Click on **vStaking** in the main navigation menu, then click vETH to enter the vETH page

<figure><img src="/files/QHG42VmfpdI9RyHyeFNA" alt=""><figcaption><p>vStaking menu with all LSTs</p></figcaption></figure>

2. Connect your **Ethereum** wallet and switch to Ethereum mainnet

<figure><img src="/files/CCMl86uHIwOrMeY3t7wj" alt="" width="563"><figcaption><p>Connect your wallet</p></figcaption></figure>

3. Enter the amount of ETH to be minted into vETH in the left panel (0.01 ETH is the minimum)

<figure><img src="/files/k2XkTdAyQpEICqrMZVJD" alt=""><figcaption><p>vETH staking page - Staking</p></figcaption></figure>

4. Click on "**Stake**" button, confirm and sign the transaction. Once vETH are minted they are directly deposited in your wallet. You can add the token using the menu bar

<figure><img src="/files/RYWW9nz0uJVNs8yPnVS1" alt=""><figcaption><p>Add to wallet</p></figcaption></figure>
{% endtab %}
{% endtabs %}


# Liquid Staking on Omni LS

{% hint style="info" %}
***To view in the Bifrost Support Lab, visit*** [How to Liquid Stake on Omni LS and receive vTokens](https://page.bifrost.io/How-to-Liquid-Stake-on-Omni-LS-and-receive-vTokens-196925495d2241e8891c05b94951a838).
{% endhint %}

Currently you can mint a diversity of vTokens using the Omni LS dapp: <https://omni.ls>

They are available under distant chains, mostly the EVM chains. vETH is directly available under the Ethereum chain.

With Omni LS you can stake directly on Ethereum or the EVM chains without the need (we could say the pain!) to do multiple cross-chain transactions.

With Omni LS, you are now able to stake your tokens (DOT, KSM, ETH, MANTA, GLMR, ASTR, MOVR, FIL) on Moonbeam, Manta Pacific, Astar & Astar zkEVM, Moonriver and Ethereum.

In exchange for vTokens which you can deploy around the Polkadot ecosystem and beyond. In order to liquid stake your tokens, visit [Omni LS](https://omni.ls) and select the LST you want to mint.

**Youtube tutorial for vMANTA**

{% embed url="<https://youtu.be/I-D54ermJmE?si=x0dPAEiujLuiSkSn>" %}

*Example with vMANTA below:*

### Get ETH and MANTA on MANTA PACIFIC

Before minting and using vMANTA you first need **to hold ETH in the Manta Pacific network for the gas fees and MANTA**. Commonly used steps to obtain ETH & MANTA on the Manta Pacific network in your EVM wallet:

\- Purchase MANTA on CEX or DEX and send it to your decentralized wallet

\- Bridge ETH from any other L2s using a bridge ([Orbiter](https://www.orbiter.finance/)) or this powerful tool [gas.zip](https://www.gas.zip/)

\- Buy MANTA with credit card with fiat on-ramp solutions (i.e Banxa)

{% hint style="info" %}
You need an EVM wallet (Metamask, Talisman, Rabby...)
{% endhint %}

### Stake MANTA

1. Connect your wallet to the [omni.ls](https://omni.ls) dapp

<figure><img src="/files/ZoncKAQdTSE1saPoT6aW" alt=""><figcaption><p>Omni LS dapp</p></figcaption></figure>

2. Once connected, choose vMANTA, switch to Manta Pacific network if you are asked to do it.\
   At any moment you add a new network to your wallet using [chainlist.org](https://chainlist.org/).

<figure><img src="/files/hlNHrMMLtHJqirSkBA2I" alt=""><figcaption><p>vMANTA staking page</p></figcaption></figure>

3. Input the amount of MANTA you want to stake, click on "**Approve"** and sign the 1st transactio&#x6E;**,** then click on **"Stake now"** and sign the 2nd transaction to mint your vMANTA.

<figure><img src="/files/KY4Q4qg8ajs5PaqkIA7d" alt=""><figcaption><p>vMANTA staking page - Minting vMANTA</p></figcaption></figure>

4. Once vMANTA are minted, after 5 to 15min, they are directly deposited in your EVM wallet.

Be sure to have added the vMANTA token in your wallet in order to display it, click on "**Portfolio**" in the top menu and click on the Metamask "**Add**" button to process.

<figure><img src="/files/rNR7gVCul9b1j0aEcKSX" alt=""><figcaption><p>Add vMANTA to your EVM wallet</p></figcaption></figure>

5. Congrats, you minted vMANTA on Manta Pacific network using the bridging magic of Omni LS in 1-click !

### Unstake MANTA

There are 2 options to unstake MANTA from vMANTA.

* Full unstaking request (you retain full vMANTA value)
* Swap mode (you swap at market price, most of the time you won't get full value)

1. On the vMANTA staking page, click on "**Unstake**" in the top menu, input the amount of vMANTA you want to unstake, click on "**Approve"** and sign the 1st transactio&#x6E;**,** then click on **"Unstake now"** and sign the 2nd transaction to unstake your vMANTA.

<figure><img src="/files/4taKKWRODyMc4C2PW4lT" alt=""><figcaption><p>vMANTA unstaking page - Unstaking</p></figcaption></figure>

2. On the vMANTA page you can follow the latest progress of your unstaking request. Once executed, the MANTA are deposited directly in your wallet, there is nothing to claim.

<figure><img src="/files/IZ24axlj2fWDfxlN31Cw" alt=""><figcaption><p>Unstake page - Follow your pending unstaking request</p></figcaption></figure>

3. You can check your transactions and access to the explorer by clicking on your wallet address in the top menu

<figure><img src="/files/HAKEy2q35DqFQy8nwkTW" alt="" width="563"><figcaption><p>Wallet and transaction history</p></figcaption></figure>


# Loop Stake (Leverage Staking)

{% hint style="info" %}
***To view in the Bifrost Support Lab, visit*** [Loop Stake](https://page.bifrost.io/Loop-Stake-Leverage-Staking-ae70f7682b0b47da9cb70ca39de22cad).
{% endhint %}

## Loop Stake main characteristics

Main parameters are detailed [here](/faq/what-is-loopstake/loopstake-lending-parameters) where you can find the Rate Curve of lending Markets.

* vTokens: **vDOT & vKSM**
* Max Borrow APY: **50%**
* Borrow APY - Jump rate: **90%**

{% hint style="info" %}
**Leverage staking risk warning**\
\
Please note that using leveraged staking may have the following potential risks:

* <mark style="background-color:orange;">Manual redemption may require a long waiting cycle</mark>: depending on your current leverage position, when manually deleveraging by using “Redeem Mode”, the redemption of vToken may require waiting for several months.
* <mark style="background-color:orange;">High borrowing rates may lead to sustained losses</mark>: when the liquidity of the Token lending market is insufficient, the increase in borrowing rates may exceed the staking returns of your principal. In this case, your leveraged position will continue to generate losses.
* <mark style="background-color:orange;">Potential slippage loss when using “Swap Mode” for deleveraging</mark>: when you use “Swap Mode” to lower leverage, the system will automatically complete the exchange in the Bifrost Stable Pool. Therefore, depending on the current liquidity situation, Swap may cause unpredictable slippage losses.

Please note, by using this function, **you are acknowledging and accepting the aforementioned risks.**
{% endhint %}

Youtube tutorial:

{% embed url="<https://www.youtube.com/watch?v=vPxXkkegNZ0>" %}
How does Loop Stake work ?
{% endembed %}

Loop Stake can be accessed through the main [DOT vStaking](https://app.bifrost.io/vstaking/vDOT) & [KSM vStaking](https://app.bifrost.io/vstaking/vKSM) pages. Click on the "**Loop Stake**" tab.

<figure><img src="/files/LNWWtkfBjgWH3XHBIMS4" alt=""><figcaption><p>Loop Stake feature page</p></figcaption></figure>

The screen can be divided in 4 main parts:

* **The lending market**: showing the total supply of DOT in the lending market versus the total borrow supply.

<figure><img src="/files/wLf7JlFCecTyahT4F85H" alt="" width="563"><figcaption><p>Market history</p></figcaption></figure>

* **The collateral position:** the collateralized position is the position which you are allowed to borrow against.

<figure><img src="/files/4wDmhnduW2aBrya9Zfve" alt="" width="563"><figcaption><p>Collateralized position</p></figcaption></figure>

* **The Loop Stake leveraging feature**: you can leverage/deleverage your position from here

<figure><img src="/files/cnu4PH7r2LZuyo9QMIoY" alt="" width="563"><figcaption><p>Loop Stake leveraging feature</p></figcaption></figure>

* **Your position summary:** showing your LTV ratio, your collateral & debt amounts, and your Net value (the difference between your collateral value and your debt)

<figure><img src="/files/KxHDaGyiPkIXEBDyJavi" alt="" width="563"><figcaption><p>Loop Stake summary</p></figcaption></figure>

***

## Leveraging & Deleveraging

{% tabs %}
{% tab title="How to ? Leveraging " %}

* **Leveraging your vDOT position**

1\. Deposit your vDOT collateral. Click on "**Deposit**" and enter the vDOT amount you want to borrow against.\
If you have not borrowed any DOT yet: leverage will be 1x.

<figure><img src="/files/I7QtQF4CbGrw0vTe9YEx" alt="" width="563"><figcaption><p>Depositing vDOT as collateral to set up the loop</p></figcaption></figure>

\
If you already have a leveraged position: depositing more collateral will decrease your leverage (so as your LTV), reducing the risk.

<figure><img src="/files/Bbxb2CwFHKkUEnh5G8Qk" alt="" width="563"><figcaption><p>Depositing vDOT as collateral to reduce leverage</p></figcaption></figure>

2. Click on "Deposit", and sign the transaction in your wallet.

Your first vDOT collateral position is set:

<figure><img src="/files/Wqxdi6OhB0GXjnaKOgBq" alt="" width="563"><figcaption><p>Collateral position after depositing 1st collateral</p></figcaption></figure>

3. Leveraging. Set the level of **Boost** you want to achieve from 1x to 4x.\
   More Boost = more risk (you can earn more but if the borrow APY becomes higher you can also lose more). Once carefully chosen, click on "**Boost**"

<figure><img src="/files/MRsV1ArDP1i3NTsuyoVg" alt=""><figcaption><p>Boosting your collateral position</p></figcaption></figure>

4. Review the impact of your Boost choice on the estimated APY and your LTV ratio.&#x20;

<figure><img src="/files/HfiZoCARiUVUatRDURGv" alt="" width="563"><figcaption><p>Boost review pop-up</p></figcaption></figure>

5. Click "**Boost**" and sign the transaction in your wallet.

Once the flash loan operation is confirmed, your overview situation is updated:

* vDOT collateral position increased
* Your leverage increased
* The global APY increased
* Your debt increased (Borrowed)
* Your LTV increased

<figure><img src="/files/hVy0jByLEl3YLWMKdD4m" alt="" width="563"><figcaption><p>Overview after leveraging with Loop Stake</p></figcaption></figure>

Your Net value will increase on a daily basis (as long as the borrow APY does not exceed the staking APY) with some jumps: vDOT ratio increases daily whereas your debt increases linearly.

You can choose to decrease your LTV, then just repeat the operation at steps 1-2.

You can choose to increase your leverage, then just repeat the operation at steps 3-5.

<mark style="background-color:orange;">Risk reminder:</mark> \ <mark style="background-color:orange;">High borrowing rates may lead to sustained losses: when the liquidity of the Token lending market is insufficient, the increase in borrowing rates may exceed the staking returns of your principal. In this case, your leveraged position will continue to generate losses.</mark>
{% endtab %}

{% tab title="How to ? Deleveraging" %}

* **Deleveraging your vDOT position**

Your initial position is as follows:

<figure><img src="/files/Yr9S8ykaZEFkXMIvyqa1" alt="" width="563"><figcaption><p>Deleveraging starting point position</p></figcaption></figure>

You have 3 options:

* Withdraw vDOT from your collateral position
* Deleverage
* Repay your debt<br>

**Withdrawing vDOT**

1\. You can withdraw vDOT from your collateral position at any time. The main consequences are:

* Your LTV & leverage will go up (more risks).
* Your collateral & Net value will go down
* Your debt is equal

2\. Click on "**Withdraw**"

<figure><img src="/files/BoliBtfhIPKp3MvV7fF5" alt="" width="563"><figcaption><p>Withdraw collateral</p></figcaption></figure>

3. Review the data, click "**Withdraw**" and sign the transaction in your wallet.

<figure><img src="/files/gKPxMmwSJ13VP8yXZ8di" alt="" width="563"><figcaption><p>Impact on the position after withdrawing</p></figcaption></figure>

Your situation becomes:

<figure><img src="/files/esYfA7Mzur0vBJDyiQSx" alt="" width="563"><figcaption><p>Situation after withdrawing vDOT</p></figcaption></figure>

\
**Deleveraging**

1\. You can deleverage your vDOT position at any time. The main consequences are:

* Your LTV & leverage will go down (less risks).
* Your collateral & Net value will go up
* Your debt will go down

2\. Set a lower value than your current leverage, here from 2x to 1.5x, and click "**Lower**"

<figure><img src="/files/TjvbQkwmtV6sDS58WvkE" alt="" width="563"><figcaption><p>Lower your leverage</p></figcaption></figure>

3. Option "**Swap mode**": This mode will swap your collateralized vDOT into DOT and repay your debt automatically and immediately.

<mark style="background-color:orange;">Risk reminder:</mark>\ <mark style="background-color:orange;">Potential slippage loss when using “Swap Mode” for deleveraging: when you use “Swap Mode” to lower leverage, the system will automatically complete the exchange in the Bifrost Stable Pool. Therefore, depending on the current liquidity situation, Swap may cause unpredictable slippage losses.</mark>

<figure><img src="/files/yC7KyZUqjIZeKgLR0QmR" alt="" width="563"><figcaption><p>Deleveraging - Swap mode</p></figcaption></figure>

4. Review the data, click "**Lower**" and sign the transaction in your wallet.

Your situation becomes:

<figure><img src="/files/AdCnMoyMyhzS97UwDC9F" alt="" width="563"><figcaption><p>Situation after deleveraging using Swap mode</p></figcaption></figure>

5. Option "**Redeem mode**": this mode is manual. You have to follow the described process by withdrawing vDOT from your collateralized position, unstake the vDOT (flexible unstaking period = 0 to 28d) and repay your DOT debt. Repeat this operation till you have no collateralized vDOT left.

<mark style="background-color:orange;">Risk reminder:</mark>

<mark style="background-color:orange;">Manual redemption may require a long waiting cycle: depending on your current leverage position, when manually deleveraging by using “Redeem Mode”, the redemption of vToken may require waiting for several months.</mark>

<figure><img src="/files/FYaVHC1U4iP9xsLPf5f5" alt="" width="563"><figcaption><p>Deleveraging - Redeem mode</p></figcaption></figure>
{% endtab %}
{% endtabs %}

***

### Possible use case to use Loop Stake & mitigate the leveraging risk at the same time.&#x20;

If you want to exit Loop Stake instantly without using the Swap or Redeem mode :

1. Lend DOT in the Leverage farming pool in the [Farming](https://bifrost.app/farming) menu: **Earn yield on DOT**

<figure><img src="/files/SwGwkZP2xPuhVQu57LIJ" alt="" width="354"><figcaption><p>Leverage pool</p></figcaption></figure>

2. Execute your vDOT leverage in Loop Stake by trying to have your DOT debt equal or inferior to your DOT deposited in the leverage pool: **Earn yield on vDOT**
3. When you want to deleverage, use the DOT in the Leverage pool to **repay your debt**.

NB: you can withdraw your DOT at any time as long as your position is less than the "Free" DOT in the pool. The free DOT are the DOT that are not borrowed by users of Loop Stake. \
In the case your position is higher than the free one, you have to wait users to deposit more DOT in the Leverage pool or users to repay their DOT debts.

<figure><img src="/files/RyiQyTPu6tpOIP0S7uS5" alt="" width="563"><figcaption></figcaption></figure>


# Governance with vDOT & vKSM

{% hint style="info" %}
***To view in the Bifrost Support Lab, visit*** [How to vote with LSTs](https://page.bifrost.io/How-to-vote-with-LSTs-b96c5bf2d71c448db4abe30e268e8af1).
{% endhint %}

As seen in the previous section, vDOT & vKSM holders can vote on OpenGov using their favorite LSTs.\
We do encourage users to be involved in the governance process on Bifrost, Polkadot and Kusama whenever possible.

## How to vote with LSTs

{% tabs %}
{% tab title="vDOT governance" %}

1. On the vDOT staking page, switch to the "**Governance**" tab.

   You will have an overview of all active referenda and how much time left before the deciding period ends.\
   If you scroll down you will also see all the ended referenda with their status (Executed, TimedOut, Rejected)

<figure><img src="/files/cdnzXiuYGxHais5WyCpc" alt=""><figcaption><p>vDOT Governance page</p></figcaption></figure>

2. Click on the referendum you want to vote for, it opens the referendum description.

You can have access to the full proposal and comments by clicking on the Subsquare link.

<figure><img src="/files/r3HAO0woKbjtOCBOKkES" alt="" width="563"><figcaption><p>Active referendum</p></figcaption></figure>

3. Select to vote **Aye** or **Nay** by switching the button, input the amount of vDOT you want to commit and select the conviction (lock duration).

Conviction is the same than on the relay chain with Bifrost LSTs as detailed in the [LST Voting principles](https://app.gitbook.com/o/-MVtRo-kzNuQsjkFSWnT/s/JFtVsA5N3spWTWKvFvv0/~/changes/73/quick-start-and-tutorials/lst-voting-principles).&#x20;

<figure><img src="/files/9OHiiIiNlQREE2RAlyEK" alt="" width="563"><figcaption><p>Selecting conviction</p></figcaption></figure>

For instance, voting 10 vDOT at 3x conviction will result in more than 37 equivalent DOT based on vDOT minting ratio

<figure><img src="/files/a6nLkTAUerKt55r7d2JL" alt="" width="563"><figcaption><p>Setting up vote parameters</p></figcaption></figure>

4. Click on "**Vote**" and sign to confirm. Your vote will be reflected in the follow up section

<figure><img src="/files/4ItU4wu55s58mDc8qKZH" alt=""><figcaption><p>vDOT Total vote</p></figcaption></figure>

You can go back to the main Governance menu and switch from "**Referenda**" to "**My vote**" to display the history of your different OpenGov votes

<figure><img src="/files/0pb42bv0EfLz2FvS7VsW" alt=""><figcaption><p>My vote history </p></figcaption></figure>

At any time you can check how many vDOT you have locked in Governance checking the "My Gov lock" information.

<figure><img src="/files/GA7YahnzvKN8N9d8du08" alt=""><figcaption><p>Gov lock</p></figcaption></figure>

NB: vDOT locked in Governance cannot be used in Defi (farming) nor cross-chained to other parachains
{% endtab %}

{% tab title="vKSM governance" %}

1. On the vKSM staking page, switch to the "**Governance**" tab.

   You will have an overview of all active referenda and how much time left before the deciding period ends.\
   If you scroll down you will also see all the ended referenda with their status (Executed, TimedOut, Rejected)

<figure><img src="/files/AxB5GVSjZU7DWsVm3qfa" alt=""><figcaption><p>vKSM Governance page</p></figcaption></figure>

2. Click on the referendum you want to vote for, it opens the referendum description.

You can have access to the full proposal and comments by clicking on the Subsquare link.

<figure><img src="/files/RXVke6dXAQGQndwDODab" alt=""><figcaption><p>Active referendum</p></figcaption></figure>

3. Select to vote **Aye** or **Nay** by switching the button, input the amount of vKSM you want to commit and select the conviction (lock duration).

Conviction is the same than on the relay chain with Bifrost LSTs as detailed in the [LST Voting principles](https://app.gitbook.com/o/-MVtRo-kzNuQsjkFSWnT/s/JFtVsA5N3spWTWKvFvv0/~/changes/73/quick-start-and-tutorials/lst-voting-principles).&#x20;

<figure><img src="/files/4wj40uXl4GonWGkpawSV" alt=""><figcaption><p>Selecting conviction</p></figcaption></figure>

For instance, voting 10 vKSM at 3x conviction will result in more than 39 equivalent KSM based on vKSM minting ratio

<figure><img src="/files/b9sXWHnAIPbRAfpc6B0k" alt=""><figcaption><p>Setting up vote parameters</p></figcaption></figure>

4. Click on "**Vote**" and sign to confirm. Your vote will be reflected in the follow up section

<figure><img src="/files/RLB4jDhNFV6vSt6bJZaf" alt=""><figcaption><p>vKSM Total vote</p></figcaption></figure>

You can go back to the main Governance menu and switch from "**Referenda**" to "**My vote**" to display the history of your different OpenGov votes

<figure><img src="/files/fKI7oIiFaaq10Dmhy23D" alt=""><figcaption><p>My vote history </p></figcaption></figure>

At any time you can check how many vKSM you have locked in Governance checking the "**My Gov lock**" information.

<figure><img src="/files/v3J04dCuiDoSZFU14RXV" alt=""><figcaption><p>Gov lock</p></figcaption></figure>

NB: vKSM locked in Governance cannot be used in Defi (farming) nor cross-chained to other parachains
{% endtab %}
{% endtabs %}


# Providing Liquidity on DEX/Perp DEX

## Providing Liquidity

{% hint style="info" %}
***To view more use cases in the Bifrost Support Lab, visit*** [***Providing Liquidity on DEX***](https://page.bifrost.io/Providing-Liquidity-on-DEX-6a18565e19c84016a2a2f5ef536b879d) ***and*** [***Providing Liquidity on Perp DEX***](https://page.bifrost.io/Providing-Liquidity-on-Perp-DEX-bc9f6dcfe08f4accaa1c7e5c4f74b7b1)
{% endhint %}

You can provide various Bifrost LSTs on DEX to earn extra LP rewards:

* [Hydration](https://www.notion.so/bifrost-io/HYDRATION-39666e74d84f45fca63807fa4dafa004?pvs=4) - Polkadot appchain
* [Beamswap](https://www.notion.so/bifrost-io/BEAMSWAP-82417fce0a414af49236578333237a29?pvs=4) - Moonbeam DEX
* [Stellaswap](https://www.notion.so/bifrost-io/STELLASWAP-59a475f1485a473ca53a9f0765c07f23?pvs=4) - Moonbeam DEX
* [Gull Network](https://www.notion.so/bifrost-io/GULL-NETWORK-6a5031162fc44c5789538c1ccfbf2454?pvs=4) - Manta Pacific DEX
* [Firefly DEX](https://www.notion.so/bifrost-io/FIREFLY-7c1db3d55d73412b829c3778881bac2c?pvs=4) - Manta Pacific DEX

You can provide various Bifrost LSTs on Perp DEX to earn extra LP rewards:

* [KiloEx](https://www.notion.so/bifrost-io/KILOEX-836bd72bafd241a29119a9849ce5ff2f?pvs=4) - Manta Pacific Perp DEX


# Supplying Liquidity on Money Market

## Supply Liquidity and Borrowing

{% hint style="info" %}
***To view more use cases in the Bifrost Support Lab, visit*** [***Money Market - Lending/Borrowing***](https://page.bifrost.io/Money-Market-Lending-Borrowing-cb96a2b96f7d4a428e84a2d56f34c674)***.***
{% endhint %}

You can provide various Bifrost LSTs on Money Markey to earn extra LP rewards and build advanced Defi strategies:

* [Interlay](https://www.notion.so/bifrost-io/INTERLAY-2cc1aa1ec6264084a58409e21f1ad8b3?pvs=4) - Polkadot appchain


# Yield DCA

Diversify your yield from Staked DOT

## Yield DCA on Hydration

1/ Go to [Hydration](https://app.hydration.net/) and cross-chain your vDOT (or swap any asset into vDOT).

2/ Click on "**Trade**" menu, then "**Yield DCA**" sub-menu.

<figure><img src="/files/Q1SB0HN6RAwAk7nSqURX" alt=""><figcaption><p>Yield DCA feature</p></figcaption></figure>

3/ Select the Asset (any asset from the omnipool) you want to DCA on, and the period (1 Week, 1 Month, 6 Months, 1 Year).

<figure><img src="/files/UrPIvQPPEuIvITStpP6E" alt=""><figcaption><p>Set-up your vDOT Yield DCA</p></figcaption></figure>

4/ Click on "**Schedule DCA trades**" and sign the Transaction.

Your yield will be automatically swapped into the desired asset based on the frequency you had chosen.

The higher the amount, the shorter the period between 2 swaps.

A summary is displayed for the user at any time:

<figure><img src="/files/WDAbyaR8xeWMYHbpHQ9t" alt=""><figcaption></figcaption></figure>


# Farming

## Participate in farming

{% hint style="info" %}
***To view in the Bifrost Support Lab, visit*** [Farming](https://page.bifrost.io/Farming-9f2bedbf088740899b348511c96e95b1).
{% endhint %}

1. Enter [app.bifrost.io](https://app.bifrost.io) and click on "**Farm**" on the left main navigation to enter the farm page

<figure><img src="/files/GgxV423ykusfSsbKTOz5" alt=""><figcaption><p>Farm page</p></figcaption></figure>

2. Find the farming pool you want to participate in and click the deposit button on the corresponding card

<figure><img src="/files/4DShz0Tabm196KzOPBmq" alt="" width="531"><figcaption><p>Deposit your tokens (single, LP or BLP)</p></figcaption></figure>

3. If you don’t have the LP needed to participate in farming, you can click the "**Get LP**" button in the pop-up window to enter the [liquidity addition page](https://page.bifrost.io/Swap-and-Liquidity-pools-80ef8e3793884fa89967b986d93f660a) to get the LP

<figure><img src="/files/vhn7vk2m26Uyr7wjQjLY" alt="" width="563"><figcaption></figcaption></figure>

4. Enter the number of tokens you want to participate in farming (generally all of them will participate, so just click "Max")
5. Click on the "**Deposit**" button to confirm the transaction and complete the signature

***

## Manage your participation in farms

#### Adding tokens in exiting farm

1. Click on, the "**Manage**" button on the card that requires additional input on the farm page

<figure><img src="/files/x2g9W7TTwyZtkSbh8AKR" alt="" width="536"><figcaption><p>Manage farming</p></figcaption></figure>

2. Enter the number of tokens to be added in the pop-up window (generally all of them will participate, so just click "Max"). Same action than on the previous topic to participate in farming.
3. Click the deposit button to confirm the transaction and complete the signature

#### Exiting a farm

1. Click on the "**Manage**" button in the farm card that needs to exit the token
2. Switch to "**Withdraw**" tab at the top of the popup

<figure><img src="/files/RxgE8zWzJuihp5zX2rAs" alt="" width="563"><figcaption><p>Withdraw from farming</p></figcaption></figure>

3. Enter the number of tokens you want to exit
4. Click on the "**Withdraw**" button to confirm the transaction and complete the signature

***

## Claim rewards

1. On the farm page, click the "**Claim**" button on the card that requires to claim the rewards during participation

<figure><img src="/files/60fEK7EFZoKiPNR269Bb" alt="" width="534"><figcaption><p>Claim rewards</p></figcaption></figure>

The reward token are indicated on the farm, and you see the corresponding amount of tokens and share in the pool by clicking on the tooltips.

&#x20;

<figure><img src="/files/LJgUmOr6RrsDAJEdeoHV" alt=""><figcaption><p>My position detail</p></figcaption></figure>

<figure><img src="/files/REjOiXySPrTGJQ2twwkJ" alt=""><figcaption><p>Rewards detail</p></figcaption></figure>

2. **Confirm** the transaction and complete the signature

#### Claim all rewards from different farming pools

1. On the farm page, click on the "**Claim All**" button on the right side of the top panel

<figure><img src="/files/e9PzT2kdiXBDEXfkf4Am" alt=""><figcaption><p>Claim All</p></figcaption></figure>

2. **Confirm** the transaction and complete the signature


# Unstaking

{% hint style="info" %}
***To view in the Bifrost Support Lab, visit*** [How to unstake on Bifrost](https://page.bifrost.io/How-to-unstake-on-Bifrost-ccc897fe0c094a55861827c2b090c935) or [How to unstake on Omni LS](https://page.bifrost.io/How-to-unstake-on-Omni-LS-a18b7f4f244d4d9bae0f85802e9aed2f).
{% endhint %}

After learning how to liquid stake your tokens, learn how to unstake (unbond) your tokens from Bifrost and Omni LS dapps.

{% tabs %}
{% tab title="Bifrost dapp" %}
***We'll take the vDOT example below.***

There are 2 options to unstake DOT from vDOT:

* Full unstaking request (you retain full vDOT value)
* Lightning mode (you swap at market price, most of the time you won't get full value)

![](/files/qOeya6QWWAVfWu3umQUF)

### Unstake vDOT

Go to the [**Unstake**](https://app.bifrost.io/vstaking/vDOT?tab=redeem) tab to visualize the vDOT unstaking queue, click on “**Total unstaking**”. The unstaking queue will give you an raw estimation of unstaking period: the fewer in the queue, the quicker you unstaking request will proceed.

![Unstake tab - vDOT Total Unstaking queue](/files/OaDXkv0wfIwQ7EW3wkqL)

1. On the [vDOT page](https://app.bifrost.io/vstaking/vDOT), click the toggle button in the middle of the right panel so that vDOT is at the top

![vDOT staking page - Unstaking](/files/Fv22eniCZ1Rg6QcQB21D)

2. Enter the amount of vDOT that needs to be redeemed
3. Click on "**Unstake**" button, confirm and sign the transaction
4. Go to "**Unstake**" tab in the top navigation of the vDOT page to view the latest progress of your request. You are limited to 10 requests at the same time.

![Unstake page - Follow your pending unstaking request](/files/VXO3Ug2bpDArPSiNJH8W)

### **Swap vDOT (lightning mode)**

1. On the vDOT page, click the toggle button in the middle of the right panel so that vDOT is at the top

![vDOT unstaking with Lightning mode ON](/files/3BR0slWju7L2fXuKUoA5)

2. Turn on the **lightning mode** option in the DOT part

![Lightning mode ON = swap](/files/Gz9TK3yuo6LqrbPtZZGj)

3. Enter the amount of vDOT that needs to be swapped into DOT. The swap will be processed on the [vDOT/DOT stableswap](https://app.bifrost.io/swap/pool/stable/DOT_vDOT) pool on Bifrost.
4. Click on "**Swap**" button, confirm and sign the transaction
5. You will get DOT immediately back in your wallet once the swap is executed

NB: you can swap on any pool on any network. Just pick the pool with the best liquidity to have the best price (i.e. you can use [Hydration](https://app.hydration.net/trade/swap?assetIn=15\&assetOut=5))
{% endtab %}

{% tab title="Omni LS dapp" %}
***We'll take the vMANTA example below.***

There are 2 options to unstake MANTA from vMANTA.

* Full unstaking request (you retain full vMANTA value)
* Swap mode (you swap at market price, most of the time you won't get full value)

### Unstake MANTA

1. On the vMANTA staking page, click on "**Unstake**" in the top menu, input the amount of vMANTA you want to unstake, click on "**Approve"** and sign the 1st transactio&#x6E;**,** then click on **"Unstake now"** and sign the 2nd transaction to unstake your vMANTA.

<figure><img src="/files/4taKKWRODyMc4C2PW4lT" alt=""><figcaption><p>vMANTA unstaking page - Unstaking</p></figcaption></figure>

2. Each vToken has a given unstaking period. Your unstaking request will be added to our unstaking queue mechanism for potential faster redeems.\
   On the vMANTA page you can follow the latest progress of your unstaking request. Once executed, the MANTA are deposited directly in your wallet, there is nothing to claim.

<figure><img src="/files/IZ24axlj2fWDfxlN31Cw" alt=""><figcaption><p>Unstake page - Follow your pending unstaking request</p></figcaption></figure>

3. You can check your transactions and access to the explorer by clicking on your wallet address in the top menu

<figure><img src="/files/REsoMGzTAFzygSQ1kSGM" alt="" width="563"><figcaption><p>Wallet and transaction history</p></figcaption></figure>

### Swap vMANTA to MANTA (**lightning mode**)

*Just find the best DEX giving you the best slippage to swap from vTokens to Tokens.*

1. The option to swap vMANTA to MANTA is not yet available in the Omni LS dapp, but you can go on any DEX where vMANTA is available and swap. You will instantly redeem into MANTA.
2. Approve vMANTA in your wallet then swap.

On Gull Network:

<figure><img src="/files/LFTuWP4Pf87wWWp0xuos" alt=""><figcaption></figcaption></figure>

On Firefly DEX:

<figure><img src="/files/5i6Tv9iLoudabXlu9a40" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


# For the Community

## Getting Involved

Curious about maintaining connections, receiving project news, or seeking ways to get involved? The answer is straightforward: become part of our community and engage in the decision-making process!

Bifrost's journey of growth and development thrives thanks to the unwavering commitment and enthusiasm of our lively community. They've been the bedrock of our progress, propelling our momentum within the Polkadot ecosystem and far beyond. From running validators during testnet to offering invaluable feedback, supporting fellow users, creating tutorials and translations, actively engaging in governance, and spreading the word about our project, our community has been instrumental at every step. If you’re looking to connect with other Bifrost enthusiasts, get technical help, or delve into discussions about liquid staking, join over 15,000 members in our vibrant Discord community at [Discord community](https://discord.bifrost.io)!

Unlock the full potential of Bifrost by exploring our additional online community platforms. Stay informed with the latest updates from our team, upcoming integrations, governance proposals, and community happenings. Dive into the links below:

**Join the Bifrost Community**\
[Main Twitter](https://x.com/Bifrost)[/X](https://x.com/Bifrost)

[OmniLS Twitter/X](https://x.com/OmniLST)

[Discord](https://discord.bifrost.io)

[Official Telegram](https://discord.gg/bifrost)[ ](https://t.me/bifrost_io)/ [Official Telegram Announcement Channel](https://t.me/bifrost_announcements)

[Reddit](https://www.reddit.com/r/bifrostfinance/)

[Blog](https://bifrost.io/blog)

**Collator Discussions**\
Join [Discord](https://discord.bifrost.io) → Join the **#Collators** channel → Request the "**Collator Guardian**" role  !

**Governance Discussions**\
[Subsquare](https://bifrost.subsquare.io/) - Discussion, Proposals, referendum.\
Join [Discord](https://discord.bifrost.io) → get "Verified" → Join the **#gov-discussions** channel!


# Bifrost Ambassador Program

**Ready to join the Ambassador Program and grow with us? You’re in the right place.**

Whether you're a content creator, a community builder, or simply passionate about Web3, there's a place for you in the Bifrost Ambassador Program.

{% hint style="info" %}
This document is a work in progress and will be updated regularly. Check back often for the latest version.
{% endhint %}

### Overview

The Bifrost Ambassador Program empowers community members around the world to contribute to the growth of the Bifrost ecosystem. Ambassadors are categorized into four types based on their interests and skill sets:

#### Social Ambassador

**Best for**: Active users of platforms like Reddit, Medium, LinkedIn who enjoy spreading the word.

**Key Responsibilities**:

* Complete task-based bounties issued by the team.
* Promote Bifrost updates, campaigns, and events via your social channels
* Earn rewards based on monthly performance

**Incentive Structure**: Task-based rewards with monthly targets. High performers can unlock bonus incentives.

**How to apply:** [<mark style="color:purple;">**Bifrost Social Ambassador Guide**</mark>](https://www.notion.so/Bifrost-Social-Ambassador-Guide-211bc3b88a8480c0b95acf3445beddae?pvs=21)

#### Content Ambassador

**Best for**: X Influencers, Yappers, video creators

**Key Responsibilities**:

* Produce high-quality educational or analytical content related to Bifrost (e.g., blogs, tutorials, reports)
* Publish engaging and shareable content on social media
* Help the community better understand Bifrost products and mechanisms

**Incentive Structure**: Result-based rewards. The better your content and its reach, the higher the potential rewards.

**How to apply:** [<mark style="color:purple;">**Bifrost Yappers Program (Beta Version)**</mark>](https://www.notion.so/Bifrost-Yappers-Program-Beta-Version-21bbc3b88a8480bf96f2d816eacb0c4e?pvs=21)

#### Local Ambassador

**Best for**: Non-English speakers or those looking to build Bifrost’s presence in their region.

**Key Responsibilities**:

* Translate and localize content for regional audiences
* Promote Bifrost through local media outlets and platforms
* Host online AMAs, workshops, and knowledge-sharing sessions
* Organize offline meet-ups and build strong local crypto communities

**Support**: Bifrost provides media kits, content templates, and event support to help you grow regional impact.

**How to apply:** Add [<mark style="color:purple;">Jerry</mark>](https://t.me/Web3Jerry) on Telegram

#### Community Ambassador

**Best for**: Passionate community members who enjoy engaging with others and keeping the conversation going.

**Key Responsibilities**:

* Moderate Bifrost’s Telegram and Discord groups
* Welcome newcomers, answer questions, and encourage participation
* Organize mini-events or fun activities to boost community engagement
* Relay feedback and community sentiment back to the core team

**Key Traits**: Technical skills are not required. However, being approachable, responsive, and community-oriented is essential.

**How to apply:** Add [<mark style="color:purple;">Jerry</mark>](https://t.me/Web3Jerry) on Telegram

### Why Become an Ambassador?

* **Official Recognition**: Verified Bifrost Ambassador title
* **Token Rewards**: Earn BNC tokens based on contributions
* **Global Community**: Join a network of global builders and contributors
* **Growth & Exposure**: Boost your reputation and influence in the Web3 world

### Warnings

Ambassadors may be disqualified under the following conditions:

* Proven fraudulent behavior (e.g., fake traffic, copied content, manipulation)
* Spreading misinformation or content that damages Bifrost’s reputation
* Extended periods of inactivity without valid reason


# Governance


# Overview

Bifrost is a decentralized blockchain system, and all parameters on the chain can be iterated or modified by the Root authority of the referendum. Therefore, BNC holders are the only actors participating in on-chain governance.

In order to simplify the governance process and improve efficiency, Bifrost has integrated the Polkadot Gov2 module, which divides the original single referendum track into multiple ones, and each track corresponds to a different pass rate or a specific pallet for processing different types of proposals.

Learn more about Polkadot OpenGov: <https://wiki.polkadot.network/docs/maintain-guides-opengov>


# Proposal Guidelines (polkadot.js)

A proposal goes through the following rough steps from idea to implementation (some specific proposal might takes more complicated process, such as Whitelist proposal):

1. Propose and discuss your idea on Bifrost Forum - Open Discussion ([Bifrost-Polkadot](http://bifrost.subsquare.io/) or [Bifrost-Kusama](https://bifrost-kusama.subsquare.io/discussions)), maybe make adjustments based on what the community thinks of the proposal.
2. Migrate your proposal to [off-chain voting](https://voting.opensquare.io/space/bifrost), wait several days to see the reaction from community.
3. If your off-chain voting passed, you can create an on-chain preimage base on your proposal contents.
4. Submit your proposal in the corresponding track.
5. Wait for the result and enactment.

#### Open Discussion

<https://bifrost.subsquare.io/discussions>

#### Off-chain Voting

Off-chain voting process is to imitate the function of voting on the chain. Community users still need to connect their wallets and vote for BNC. Through Off-chain voting, you can test if your proposal can be agreed by the community.

Migrate your existing proposal to Off-chain channel

1. Click Off-chain in Bifrost Subsquare

<figure><img src="/files/lydlvJuCk7zt47VZsg7j" alt=""><figcaption></figcaption></figure>

2. Connect your Wallet and propose a new proposal by using your discussed proposal contents.

<figure><img src="/files/kNgVlTnJiDsDbD8QFPcf" alt=""><figcaption></figcaption></figure>

3. Simulate on-chain voting and input key information.
   1. Input your proposal title and contents.
   2. System: Set the voting choices, “Single” or “Multiple” choices.
   3. Name your choices.
   4. Period: Set the voting period (at least 5 days recommended).
   5. Snapshot: set the block stamp, which block to start voting.
   6. Connect your wallet and publish.

<figure><img src="/files/BpbjaQD5xWRgmPofhxLV" alt=""><figcaption></figcaption></figure>

#### Create preimage, submit proposal and on-chain voting

1. Create preimage
   1. Go to [Bifrost-Kusama](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/explorer) or [Bifrost Polkadot](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhk.p.bifrost-rpc.liebi.com%2Fws#/explorer), select Governance and click preimage, add your preimage.

<figure><img src="/files/NpGl5Ybl29VFUJqVROpH" alt=""><figcaption></figcaption></figure>

2. Submit preimage
   1. Input your proposal parameters (it depends on what function and pallet you should call, please ensure this at the Discussion stage).
   2. Copy your preimage hash
   3. Submit preimage

<figure><img src="/files/EBbEOqvBZ3oB8FnHDO6v" alt=""><figcaption></figcaption></figure>

3. Double-check your preimage
   1. Find your preimage in the list
   2. Double-chain your preimage parameters
   3. You can copy the callhash again, just in case if you forgot in the previous step.

<figure><img src="/files/zWsy8STD3kSbGc23a3A9" alt=""><figcaption></figcaption></figure>

4. Submit your proposal
   1. Go to referenda and click “Submit proposal”
   2. According to your proposal content, choose the appropriate Track. (For example, 10/Validator Election works for VBL proposals. If your proposal passes Off-chain voting, the Bifrost team will guide you to select the corresponding Track.)
   3. Submit proposal

<figure><img src="/files/rZm52ICFlU0eHd0d7FhY" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/sFVFA3eHASDouZSaZAIZ" alt=""><figcaption></figcaption></figure>

5. Vote and follow up your proposal status
   1. Once your proposal submitted, it is visible on the referenda page.
   2. BNC holders can vote to your proposal.
   3. Follow up with your proposal processing status, which will pass prepareing period, decision period, confirmation period and enactment period. To learn the concepts of these periods at [here](https://wiki.polkadot.network/docs/maintain-guides-opengov#opengov-terminology-and-parameters).

<figure><img src="/files/dNuTR9qjAYF52Ulyr1Vy" alt=""><figcaption></figcaption></figure>


# Proposal Guidelines (Subsquare)

## How to create an Referendum proposal by using Subsquare?

Checklist

1. Note your arguments in a preimage and submit the preimage.
2. Use that preimage hash to create the referendum proposal.
3. Writing a proper title and description.

Appendix

[How to get your deposit back?](#how-to-get-your-deposit-back)

### Note your arguments in a preimage

1. Go to referenda page, click “New Proposal”

<figure><img src="/files/7SRr47Ju187APWsSMSFt" alt=""><figcaption></figcaption></figure>

2. Select “New preimage”

<figure><img src="/files/aN8njFhLaoZq5VtZF7TY" alt=""><figcaption></figcaption></figure>

3. Select the right module and the right call (If you are not sure what to call, please seeking for help from [team support](https://discord.gg/8DRBw2h5X4)). Once you done with call construction, copy the preimage hash, it will be used in the next step.

<figure><img src="/files/tkR5YfE71khNaRRJC8NF" alt=""><figcaption></figcaption></figure>

4. Submit your preimage

### Use preimage hash to create the referendum proposal

1. Select the right OpenGov track, where you can find details at [here](https://docs.bifrost.io/for-the-community/governance/opengov-tracks).
2. Use your pre-copied preimage to submit proposal by clicking “I already have a preimage”. (If you lose your pre-copied preimage hash, you can find it [here](https://bifrost.subsquare.io/preimages))

<figure><img src="/files/JvMCAi2TmrifoTNmhGI8" alt=""><figcaption></figcaption></figure>

3. Phase your preimage, if your preimage has been noted, the length should be automatically filled in.

<figure><img src="/files/1IqvEJvlbsvPauO0OQ9D" alt=""><figcaption></figcaption></figure>

4. Submit it
5. Once you submit the proposal, don’t forget to check your proposal and place the decision deposit.

<figure><img src="/files/BHhICQ2V6pGvnugzuC1K" alt=""><figcaption></figcaption></figure>

### Writing a proper title and description

Once you have your proposal live, please write the contents immediately, as blank content proposal will be refused for sure.

<figure><img src="/files/oDcDw8yNN2oTuF5fKUGx" alt=""><figcaption></figcaption></figure>

### How to get your deposit back?

For **Preimage deposits, Submission Deposit** or **Decision Deposit**, all of them can be refunded via [my deposit page](https://bifrost.subsquare.io/account/deposits), just by clicking the cross for refund.

<figure><img src="/files/KYto2V9u8RFDSmunldsv" alt=""><figcaption></figcaption></figure>


# OpenGov Components

### Governance Paries

Here are several groups of organizations with some specific authorities in the governance.

#### Fellowship

A mostly self-governing expert body with a primary goal of representing humans who embody and contain the technical knowledge base of the Bifrost, Kusama and/or Polkadot networks

This is accomplished by associating a rank with members to categorize the degree to which the system expects their opinion to be well-informed, of a sound technical basis, and in line with the interests of Bifrost.

The concept of Fellowship came from: <https://wiki.polkadot.network/docs/learn-opengov#fellowship>

**Fellows level and corresponding permission settings**

| Rank | Authority                                                                               |
| ---- | --------------------------------------------------------------------------------------- |
| 1-2  | Only officially supported fellowshipReferenda of the corresponding level can be issued. |
| ≥3   | Can initiate some authority & business with low risk level fellowshipReferenda.         |
| ≥6   | Can initiate all supported fellowshipReferenda.                                         |

**Ranking System**

To prevent a small group of participants from gaining effective control over the network, this system will adhere to three main principles:

* The Fellowship must never have hard power over the network: it cannot change the parameters, conduct rescues or move assets. Their only power in governance is reducing the effective timeline on which a referendum takes place through [whitelisting](https://wiki.polkadot.network/docs/learn-opengov#whitelisting).
* The Fellowship weights those with a higher rank more in the aggregate opinion. However, the weight should not be so high as to make a small number of higher members’ opinions be insurmountable compared to a coherent opinion from lower-ranked membership.
* The Fellowship should be designed to grow and develop its membership, aggregate levels of expertise and ensure that its overall decision-making capacity strengthens over time.

To support these conditions, the Fellowship will have a constitution that outlines the requirements and expectations for individuals to attain and retain any given rank. Higher ranks can vote and promote lower ranks based on this constitution.

**Demotion** occurs automatically after a given period has elapsed, and the member is unable to defend their position to their peers.

**Suspension** can happen only through a referendum, which ensures that the Fellowship's bias alone does not necessarily result in expulsion.

To prevent the Fellowship from becoming a cabal (popularity with Fellowship peers alone should not be enough to gain access to a top rank), gaining access to the top tiers of the ranks will require a referendum.

**Whitelisting**

In OpenGov, it allows the Fellowship to authorize a new origin (known as Whitelisted-Root) to be executed with Root-level privileges and will only work with specified commands that have been approved by the Fellowship.

The [Whitelist](https://paritytech.github.io/substrate/master/pallet_whitelist/) pallet allows one Origin to escalate the privilege level of another Origin for a certain operation. The pallet verifies two things:

* The origin is the Whitelisted-Root (i.e. that the referendum passed on this track)
* The Fellowship has indeed whitelisted the proposal.

If both conditions are true, the operation executes with Root-level privileges.

This system enables the ability to have a new parallel Track (Whitelisted-Root Origin), whose parameters allow for a shorter voting turnaround. Through an open and transparent process, a body of global experts on the Polkadot protocol have determined that the action is both safe and time-critical.

#### Becoming a Fellowship Member

Currently, the only way to become a fellowship member is through an existing member who submits a `fellowshipCollective.addMember` extrinsic. See more information on [this Kusama SubSquare discussion](https://kusama.subsquare.io/post/6), which points to [these guidelines](https://docs.google.com/document/d/1nHa-7Na4u52CTZzq87HaKNptGjyQDWm9H7s7GRjJpMU/edit). (Same as on Bifrost)

Future plans include that public members can apply to become a Fellowship candidate by placing a small deposit (which will be returned once they become members). Their candidacy will go through a referendum to be approved to become a member.

#### Council members

{% embed url="<https://bifrost.subsquare.io/council/members>" %}

#### Technical Committee

{% embed url="<https://bifrost.subsquare.io/techcomm/members>" %}


# OpenGov Tracks

### Governance Tracks

#### Root

SUDO privileges to call any method

Parameters:

| Max in deciding      | 1 proposal |
| -------------------- | ---------- |
| Decision deposit     | 50,000 BNC |
| Prepare period       | 2 hours    |
| Decision period      | 14 days    |
| Confirm period       | 24 hours   |
| Min enactment period | 24 hours   |
| Linear min approval  | 100%-50%   |
| Linear min support   | 50%-0%     |

<figure><img src="/files/IiCFpadVjfb4cRqothkN" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/8W70he5c1DvPQrp2A4Wi" alt=""><figcaption></figcaption></figure>

### WhitelistedCaller

SUDO privileges, requires Fellows to be certified as whitelisted to execute as Root Origin

| Max in deciding      | 100 proposals |
| -------------------- | ------------- |
| Decision deposit     | 5,000 BNC     |
| Prepare period       | 15 minutes    |
| Decision period      | 14 days       |
| Confirm period       | 10 minutes    |
| Min enactment period | 10 minutes    |
| Linear min approval  | 100%-50%      |
| Linear min support   | 50%-2%        |

<figure><img src="/files/mHLQy3NV3W4SQ2uvQ0Hf" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/XRDTItBblFnAsAelUMs6" alt=""><figcaption></figcaption></figure>

### ValidatorElection

It has the right to execute specific methods in the SLP to manage the operating parameters of the SLP protocol such as node selection and whitelisting.

| Max in deciding      | 10 proposals |
| -------------------- | ------------ |
| Decision deposit     | 2500 BNC     |
| Prepare period       | 2 hours      |
| Decision period      | 14 days      |
| Confirm period       | 3 hours      |
| Min enactment period | 10 minutes   |
| Linear min approval  | 100%-50%     |
| Linear min support   | 50%-0%       |

<figure><img src="/files/U5ymznom5ggazsWW5frM" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/j3n0AshbdGiJgxB2bWVQ" alt=""><figcaption></figcaption></figure>

vailable funtions to call:

* slp.initialize\_delegator
* slp.add\_validator
* slp.remove\_validator

### SystemStaking

Any configuration item authorized to perform SystemStaking

| Max in deciding      | 2 proposals |
| -------------------- | ----------- |
| Decision deposit     | 10,000 BNC  |
| Prepare period       | 2 hours     |
| Decision period      | 14 days     |
| Confirm period       | 3 hours     |
| Min enactment period | 10 minutes  |
| Linear min approval  | 100%-50%    |
| Linear min support   | 50%-0%      |

<figure><img src="/files/FzJ1tagYgdW7dhTeOGyz" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/zPownVsVZeFQBP1cLXIS" alt=""><figcaption></figcaption></figure>

Available funtions to call:

* systemStaking.token\_config
* systemStaking.delete\_token
* systemStaking.refresh\_token
* systemStaking.payout

### SALP Admin

Authorized to execute SALP-related open configuration items

| Max in deciding      | 2 proposals |
| -------------------- | ----------- |
| Decision deposit     | 2,500 BNC   |
| Prepare period       | 15 minutes  |
| Decision period      | 14 days     |
| Confirm period       | 1 hours     |
| Min enactment period | 10 minutes  |
| Linear min approval  | 100%-50%    |
| Linear min support   | 50%-0%      |

<figure><img src="/files/cgTqhbYj9PZ8i0d8Vkxr" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1S6n5CUxdDD0cS91FlvE" alt=""><figcaption></figcaption></figure>

Available funtions to call:

* salp.fund\_success
* salp.fund\_fail
* salp.continue\_fund
* salp.fund\_retire
* salp.fund\_end
* salp.create
* salp.edit
* salp.withdraw
* salp.dissolve\_refunded
* salp.dissolve
* vstokenConversion.set\_exchange\_fee
* vstokenConversion.set\_exchange\_rate
* vstokenConversion.set\_relaychain\_lease
* vsBondAuction.forceRevoke
* vsBondAuction.setBuyAndSellTransactionFeeRate

### FellowshipAdmin

Perform FellowshipAdmin related management operations

| Max in deciding      | 10 proposals |
| -------------------- | ------------ |
| Decision deposit     | 2,500 BNC    |
| Prepare period       | 2 hours      |
| Decision period      | 14 days      |
| Confirm period       | 3 hours      |
| Min enactment period | 10 minutes   |
| Linear min approval  | 100%-50%     |
| Linear min support   | 50%-0%       |

### ReferendumCanceller

cancel a referendum

| Max in deciding      | 1,000 proposals |
| -------------------- | --------------- |
| Decision deposit     | 5,000 BNC       |
| Prepare period       | 2 hours         |
| Decision period      | 7 days          |
| Confirm period       | 3 hours         |
| Min enactment period | 10 minutes      |
| Linear min approval  | 100%-50%        |
| Linear min support   | 50%-0%          |

<figure><img src="/files/sAN6CBbxC5IbUulHbSxx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/0SPtFM2NPs9gk8zpRmg0" alt=""><figcaption></figcaption></figure>

### ReferendumKiller

disable a referendum

| Max in deciding      | 1,000 proposals |
| -------------------- | --------------- |
| Decision deposit     | 25,000 BNC      |
| Prepare period       | 2 hours         |
| Decision period      | 14 days         |
| Confirm period       | 3 hours         |
| Min enactment period | 10 minutes      |
| Linear min approval  | 100%-50%        |
| Linear min support   | 50%-0%          |

<figure><img src="/files/K0rREk1yVZB5uscqwdgN" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/NJQfYmwxSP6FF3TdXnaP" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
All Tracks support the invocation of common batch, batch\_all, force\_batch methods
{% endhint %}


# Root

## **What to post in the Root Track?**

The Root Track has the permission to call any functions with root authority. Hence, it is normally used for runtime and systematic fixing.

Check passed Root Track proposals:&#x20;

* Bifrost Polkadot: [Bifrost Polkadot](https://bifrost.subsquare.io/referenda/tracks/0)&#x20;
* Bifrost Kusama: [Bifrost Kusama](https://bifrost-kusama.subsquare.io/referenda/tracks/0)

## **Guidance for Root Proposing**

1. Contact Bifrost core contributors to discuss and validate the issue that should be involved in root fixing.
2. Post the discussion in subsquare to clarify the details of the issue.
3. Check [Root Track parameters](/for-the-community/governance/opengov-tracks#root), post the on-chain proposal.

The Root Proposal Construction:

<figure><img src="/files/1uUKHlZsQqjYSfR9mh8i" alt=""><figcaption></figcaption></figure>


# WhitelistedCaller

## **What to post in the** WhitelistedCaller **Track?**

The WhitelistedCaller Track has same access with the root track, but it can be whitelisted by fellowship for acclerating. Hence, it is normally used for emergency requirements.

Check passed WhitelistedCaller Track proposals:&#x20;

* Bifrost Polkadot: [Bifrost Polkadot ](https://bifrost.subsquare.io/referenda/tracks/1)
* Bifrost Kusama: [Bifrost Kusama](https://bifrost-kusama.subsquare.io/referenda/tracks/1)

## **Guidance for** WhitelistedCaller **Proposing**

1. Contact Bifrost core contributors to discuss and validate the issue that should be involved in Whitelist.
2. Post the discussion in subsquare to clarify the details of the issue.
3. Check [WhitelistedCaller Track parameters](/for-the-community/governance/opengov-tracks#whitelistedcaller), submit the preimage then contact with Bifrost team, the fellowship member needs to whitelist the preimage in fellowship whitelisted proposal.

The WhitelistedCaller Proposal Construction:

1. Add preimage under whitelist: dispatch\_whitelisted\_call\_with\_preimage.

<figure><img src="/files/nVDNpg9qVyqwGF35uRZe" alt=""><figcaption></figcaption></figure>

2. Use that preimage to submit the whitelisted proposal.

<figure><img src="/files/Dg6ryLR2OzKdMKbbS8Q4" alt=""><figcaption></figcaption></figure>


# Liquid Staking

## **What to post in the** Liquid Staking **Track?**

The ValidatorElection Track only has the permission to call related functions with validators setting, such as add\_validator or add\_validator\_boostlist and etc. If you are willing to apply for a VBL, you should post in this Track.

Check passed Liquid Staking Track proposals:&#x20;

* Bifrost Polkadot: [Bifrost Polkadot](https://bifrost.subsquare.io/referenda/tracks/10)&#x20;
* Bifrost Kusama: [Bifrost Kusama](https://bifrost-kusama.subsquare.io/referenda/tracks/10)

{% hint style="warning" %}
**Notice**: In Polkadot.js, Bifrost Polkadot is a network under Polkadot & Parachains, Bifrost Kusama is a network under Kusama & Parachains. If you are proposing vDOT, then you should post under Bifrost Polkadot; If you are proposing vKSM or BNC, then you should post under Bifrost Kusama.
{% endhint %}

## **Guidance for** Liquid Staking **Proposing**

1. Check this [guidance ](/for-partners/validator-boost-list-vbl)for VBL applying.&#x20;
2. Post the discussion in subsquare to clarify the details of your proposing, receive feedbacks from the community.
3. Check [Liquid Staking Track parameters](/for-the-community/governance/opengov-tracks#validatorelection), post the on-chain proposal.\
   The functions you might call with (check the example below):\
   \- slp: addToValidatorBoostList

Preimage construction

* If you are proposing for DOT VBL on Bifrost Polkadot, the currencyid is `Token2:0`
* If you are proposing for KSM VBL on Bifrost Kusama, the currencyid is `Token:KSM`

<figure><img src="/files/DmVVCDb2G3ROIme9oCNi" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/mcUD1wN9nmGfEKk6BcNr" alt=""><figcaption></figcaption></figure>

Use the preimage to submit Liquid Staking Proposal:

<figure><img src="/files/pRqdcsWyia0PAKEnmRbx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Rsn45FNNeEajy3LMlXN9" alt=""><figcaption></figcaption></figure>


# Delegation Voting

### **What to post in the Delegation Voting** **Track?**

You can vote to Polkadot referedum by using Bifrost Opengov’s vDOT, which delegated by vDOT holders - check [here](/faq/what-is-vtoken-delegation-voting) to learn more. The DVT track allows you to call these vDOT for voting.

### **Guidance for Delegation Voting Proposing**

1. Post the [discussion](https://bifrost.subsquare.io/discussions) in subsquare to clarify the details of your proposing, receive feedbacks from the community.
2. Once you get enough positive comments, you can try to post on chain.

Here are some steps that you might need to know for on chain posting:

#### Note preimage

Edit [this call](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-polkadot.ibp.network#/extrinsics/decode/0x320300016d6f646c62662f666d72697216000000000000000000000000000000000000008200090005070000000000e40b54020000000000000000000000), copy the call data (do not submit at this step!)

<figure><img src="/files/KKOvXr7sEPTgsJxIuqxA" alt=""><figcaption></figcaption></figure>

Paste your call data at preimage: note\_preimage and click submit.

<figure><img src="/files/rrheAUNyZQ8zO9ayzUkG" alt=""><figcaption></figcaption></figure>

Find your preimage at [here](https://bifrost.subsquare.io/preimages), submit it in [Referedum](https://bifrost.subsquare.io/referenda)

<figure><img src="/files/7V5lqZ1Nq25NVPsjbaT1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/oHFaqVZcbIxHINcRn9iL" alt=""><figcaption></figcaption></figure>


# Proposal Template


# HRMP

### **TL:DR**

This batched proposal is to Accept/Open an HRMP channel with \[SAMPLE NETWORK] *and Register Asset(s) \[TOKEN 3 SYMBOL], \[TOKEN 2 SYMBOL].* (optional)

### **Network Information:**

Brief description of Network such as “\[SAMPLE NETWORK] is a an scalable, non-custodial decentralized cross-chain liquidity staking specialized parachain (Omnichain LSD Layer1) built on Polkadot, currently supporting liquidity derivatives on over 9+ blockchains.”

* Website: \[PARACHAIN WEBSITE]
* Twitter: \[PARACHAIN TWITTER]
* Discord: \[PARACHAIN DISCORD]
* Telegram: \[PARACHAIN TELEGRAM]

### **Summary**

We propose to open a bi-directional channel between Bifrost and \[SAMPLE NETWORK]. Initially, the main use case will be …, but it can be further expanded to other use cases. The proposal also includes the \[SAMPLE TOKEN 1] asset registration on \[SAMPLE NETWORK] and \[SAMPLE TOKEN 2] asset registration on Bifrost , with the following details:

* Multilocation: *\[MULTILOCATION OF ASSET]*
* Decimals: *\[TOKEN DECIMALS]*
* Name: *\[TOKEN NAME]*
* Symbol: *\[TOKEN SYMBOL]*


# Validator Boost List

### **TL:DR**

This proposal is to propose \[NODE PROVIDER NAME] be added into the VBL of \[VTOKEN NAME].

### Information:

Name of node provider: \[NODE NAME]

Brief Description on node provider:  \[BRIEF DESCRIPTION]

Number of nodes that want to join the Validator  Boost List: \[NUMBER]

The address of the node that wants to join the Validator Boost List and which network: \[POLKADOT, KUSAMA, MOOBEAM, MOONRIVER, BIFROST]

**Liquidity Contribution by VBL Applicant :**

* Token amount provided to minting vToken: \[AMOUNT OF TOKEN]
* Plan to provide vToken liquidity
  * Single token farming: \[AMOUNT OF TOKEN]
  * vToken - Token LP: \[AMOUNT OF TOKEN A] + \[AMOUNT OF TOKEN B]

*If not, please specify why this is currently not possible.*

**Marketing - Informational support/contribution by VBL Applicant :**

* Quantitative overview on your community (Number of users / Geographical focus): \[NUMBER OF USERS]
  * Brief breakdown of your channels (Blog, Twitter,Youtube, Telegram,etc.):
    * Blog: \[NUMBER OF VIEWS] / \[NUMBER OF MEMBERS]
    * Twitter: \[NUMBER OF FOLLOWS] (incl. Recent analytics on post)
    * Telegram: \[NUMBER OF MEMBERS]
    * Discord: \[NUMBER OF MEMBERS]
    * Youtube: \[NUMBER OF SUBSCRUBERS] / \[NUMBER OF TOTAL VIEWS]
* Provide details around form of marketing and promotion initiatives that can be provided to Bifrost SLP (Blog articles, newsletter, Twitter threads, AMA, community announcements etc): \[LIST]

**Other**

* Monthly Periodic node run report
* Ensure that the node performance is in the top 25%
* Any other executable and beneficial points can be added


# Bifrost Fellowship

Referencing the [Polkadot Technical Fellowship](https://wiki.polkadot.network/docs/learn-polkadot-technical-fellowship),

> “*Fellowship is a self-governing body of experts and developers of Polkadot, Kusama, and Parachain protocols. It operates on-chain through* [*fellowship referenda*](https://bifrost.subsquare.io/fellowship) *and off-chain through the* [*community discussion*](https://bifrost.subsquare.io/discussions) *repository.*”

The Bifrost Fellowship aims to foster the long-term development and growth of the Bifrost Protocol by considering its long-term roadmap from various perspectives. This might include discussions, research, and implementation from diverse standpoints. For instance:

* Efficient use of treasury, screening of effective supporting/integration schemes, strategic channelling of liquidity incentives, etc.
* Strategic vToken deployment plans to discover broader ecosystem integrations and development.
* How to increase brand awareness, organization, and planning of marketing and community activities.
* Discussion and research on new technology releases, how to combine with Bifrost and integration, etc.
* Guide the community to participate in OpenGov and improve the activity of governance.

**The fellowship will include members with a diverse range of expertise and experience.** This includes developers with technical skills, founders and builders of other DeFi and Web3 protocols, blockchain researchers, professional infrastructure and node operators, community and opinion leaders, ecosystem contributors, and partners.

{% hint style="info" %}
These individuals will form various sub-fellowships, each divided according to their specific expertise, experience, and skill set. Each sub-fellowship will have its own mandate, role, and responsibilities, and will consist of expert members.
{% endhint %}

## Sub-fellowship

Each sub-fellowship will be responsible for its respective field. Their tasks will include initiating proposals, managing their sub-fellowship, onboarding members, and initiating discussions on proposals related to their field of expertise. A leader will be nominated for each sub-fellowship, who will represent the group and lead reviews and discussions.

Sub-fellowships include:

### **Treasury Fellowship**

This is primarily composed of the Bifrost Foundation, with a clear focus on treasury-related proposals and strategic management of treasury funds.

#### Criteria of Applicants

The following are the basic requirements to apply for membership in the Treasury Fellowship.

* An understanding of the DeFi market sector, broader DeFi primitives, and their respective business models.
* Knowledge of Bifrost’s economics and business model.
* Track record in participation in treasury-related proposals and functions.
* A product-oriented mindset skilled in various Web3 products, capable of independently evaluating product quality and Product-Market Fit (PMF).

#### Exisiting Members

Find them in the Bifrost Discord channel: Treasury Fellowship

| Name     | Address (Bifrost-Polkadot)                      | Address (Bifrost-Kusama)                        | Leader |
| -------- | ----------------------------------------------- | ----------------------------------------------- | ------ |
| Thibault | dKqG4d1fZfZj3vznFZsAzryhBtr38B2a9yXCETX39diPFt8 | dKqG4d1fZfZj3vznFZsAzryhBtr38B2a9yXCETX39diPFt8 |        |
| Lurpis   | hJmectFjn7CCEQL1tKDxvboA1i9hcfTyUrLuW3xjDqRgxmm | hJmectFjn7CCEQL1tKDxvboA1i9hcfTyUrLuW3xjDqRgxmm | ✔      |
| Yancy    | fAGgdvAYwqCwpt3Wda1mzpACnNyESbfgfgvm1RLSudBsUEu | fAGgdvAYwqCwpt3Wda1mzpACnNyESbfgfgvm1RLSudBsUEu |        |
| Tyrone   | fXznm8JzrUuyEijnyy8M2tfdFQeot2bUrERe3ZK9FwTaZZw | fXznm8JzrUuyEijnyy8M2tfdFQeot2bUrERe3ZK9FwTaZZw |        |

### Tech Fellowship

The Tech Fellowship primarily consists of developers and individuals with technical backgrounds. Its focus is on releasing Substrate and runtime updates, discussing the latest Polkadot-related technological advancements, managing member fellowship and onboarding, and participating in discussions on topics like hackathons, product delivery, and integration proposals.

#### Criteria of Applicants

The following are the basic requirements to apply for membership in the Tech Fellowship (any 2 of the following are sufficient).

* Track-record in Rust development
* Familiarity with Bifrost Pallets and Polkadot tech.
* Familiarity with Bifrost and the ability to construct transaction-encoded data for various XCM, pallets, and method calls.
* The RP has been submitted to Bifrost multiple times and has been successfully merged.

#### Existing Members

Find them in the Bifrost Discord channel: Tech Fellowship

| Name      | Address (Bifrost-Polkadot)                       | Address (Bifrost-Kusama)                         | Leader | Github                            |
| --------- | ------------------------------------------------ | ------------------------------------------------ | ------ | --------------------------------- |
| Sora      | bqWCL3HaPL371pjL53fFn6Pn9wM8opdwLEfuMp46PeP2KyE  | bqWCL3HaPL371pjL53fFn6Pn9wM8opdwLEfuMp46PeP2KyE  |        | <https://github.com/yooml>        |
| Edwin     | dEmQ58Mi6YKd16XifjaX9jPg13C1HHV1EdeEQqQn3GwLueP  | dEmQ58Mi6YKd16XifjaX9jPg13C1HHV1EdeEQqQn3GwLueP  | ✔      | <https://github.com/ark930>       |
| Chengchen | 123NpBFPFCeAu2yWJAiLg2Ppq1xRi6ummLr67Pv7vb7aadyW | 123NpBFPFCeAu2yWJAiLg2Ppq1xRi6ummLr67Pv7vb7aadyW |        | <https://github.com/killbond007>  |
| Ningbo    | ffwmHwZDD2GS3rzpa1Wa4SS99mw65sHUXBXxcRM2K2DNT1g  | ffwmHwZDD2GS3rzpa1Wa4SS99mw65sHUXBXxcRM2K2DNT1g  |        | <https://github.com/hqwangningbo> |
| Tiebing   | fXJXG7EvnAVdwbQS73EaDXMienZ9LBiHdZuZ5gMzfLpj8j8  | fXJXG7EvnAVdwbQS73EaDXMienZ9LBiHdZuZ5gMzfLpj8j8  |        | <https://github.com/SunTiebing>   |
| Janpo     | cb6LMkfkb91xK6LX7RpuWaRP1WbsmwDZhYiRyQ3h8xLr3gZ  | cb6LMkfkb91xK6LX7RpuWaRP1WbsmwDZhYiRyQ3h8xLr3gZ  |        | <https://github.com/awesomepan>   |

### Strategy Fellowship

They mainly comprise business partners, product managers, advisers, protocol founders, and ecosystem contributors. Its objective is to develop and implement initiatives to drive growth and expansion across the ecosystem and beyond. The fellowship's main tasks are topics and proposals related to product roadmaps, the development and growth of the Bifrost protocol and its business expansion across ecosystems, and the Strategy fellowship's management and onboarding of its members.

#### Criteria of Applicants

The following are the basic requirements to apply for membership in the Strategy Fellowship (any 2 of the following are sufficient).

* Previous leadership roles and experience or similar responsibilities with DeFi protocols and Polkadot.
* Onchain track record demonstrating active participation in the governance of DeFi protocols. This includes discussions on functional product upgrades, growth, and business go-to-market initiatives and strategies.
* A deep understanding of the DeFi sector, market structure, and trends within the ecosystem and beyond.
* Familiarity with the operational logic of Bifrost Staking Liquidity Protocol (SLP), its vTokens, and a broader understanding of the various LST landscapes and ecosystems.

#### Existing Members

Find them in the Bifrost Discord channel: Strategy Fellowship

| Name     | Address (Bifrost-Polkadot)                      | Address (Bifrost-Kusama)                        | Leader |
| -------- | ----------------------------------------------- | ----------------------------------------------- | ------ |
| Thibault | dKqG4d1fZfZj3vznFZsAzryhBtr38B2a9yXCETX39diPFt8 | dKqG4d1fZfZj3vznFZsAzryhBtr38B2a9yXCETX39diPFt8 | ✔      |
| Lurpis   | hJmectFjn7CCEQL1tKDxvboA1i9hcfTyUrLuW3xjDqRgxmm | hJmectFjn7CCEQL1tKDxvboA1i9hcfTyUrLuW3xjDqRgxmm |        |
| Yancy    | fAGgdvAYwqCwpt3Wda1mzpACnNyESbfgfgvm1RLSudBsUEu | fAGgdvAYwqCwpt3Wda1mzpACnNyESbfgfgvm1RLSudBsUEu |        |
| Tyrone   | fXznm8JzrUuyEijnyy8M2tfdFQeot2bUrERe3ZK9FwTaZZw | fXznm8JzrUuyEijnyy8M2tfdFQeot2bUrERe3ZK9FwTaZZw |        |

### Community Fellowship

This group mainly comprises members involved in marketing operations, community leaders, and head ambassadors. It focuses on discussing community proposals, managing the fellowship, and onboarding members in the Community Fellowship.

#### Criteria of Applicants

The following are the basic requirements to apply for membership in the Community Fellowship (any two of the following are sufficient).

* Track record in Bifrost, Polkadot, and broader Web3 Communities
* Experience in organizing community initiatives, such as online/offline events
* Ability to initiate discussions and build constructive proposals on other chains/dapps to broaden the use of vTokens and spread the Bifrost brand (reaching DAOs for Treasury diversification and more)
* Having solid educational skills, infographic/video that could help to produce a series of content (pro videos, “Academy”, FAQ) to explain Defi narratives and the specificities of the Bifrost protocol.

#### Existing Members

Find them in the Discord channel: Community Fellowship

| Name    | Address (Bifrost-Polkadot)                      | Address (Bifrost-Kusama)                        | Leader |
| ------- | ----------------------------------------------- | ----------------------------------------------- | ------ |
| Thomas  | h5gANqxP4zeKVDx5u3RW5URDzYqDDeidLbcYwMmGBUQjHjf | h5gANqxP4zeKVDx5u3RW5URDzYqDDeidLbcYwMmGBUQjHjf | ✔      |
| Bonnie  | e6X22c6UWHceSMSpiS2Z8EumzAEPpNcp1GuJ3J3QehEwHRC | e6X22c6UWHceSMSpiS2Z8EumzAEPpNcp1GuJ3J3QehEwHRC |        |
| Charles | cH4r5B61qX6M1PncyweN3QuZYwHu17TMsBVRWLPdmE2TxHn | cH4r5B61qX6M1PncyweN3QuZYwHu17TMsBVRWLPdmE2TxHn |        |

### Infra Fellowship

They predominantly include infrastructure providers, node & validator operators, Validator Boost List (VBL) members, and technical operations and maintenance members. Members are primarily focused on discussing VBL application proposals and initiatives around optimizing existing Bifrost infra and validator/collators programs, managing the fellowship, and onboarding members in the Infra Fellowship.

#### Criteria of Applicants

The following are the basic requirements to apply for membership in the Infra Fellowship (any 2 of the following are sufficient).

* Familiar with Bifrost VET and VBL.
* Experience in server operation and maintenance.
* Existing Bifrost collator runner.

#### Existing Members

Find them in the Discord channel: Infra Fellowship

| Name | Address (Bifrost-Polkadot)                      | Address (Bifrost-Kusama)                        | Leader |
| ---- | ----------------------------------------------- | ----------------------------------------------- | ------ |
| Ares | fSHxhFfLZRrJKihUTmaBeyqa8VpoDhpBBntzPFksccUAbrY | fSHxhFfLZRrJKihUTmaBeyqa8VpoDhpBBntzPFksccUAbrY | ✔      |

### Application for Fellowship Membership

Anyone (including individuals or entities) interested in participating as a candidate in the Bifrost Fellowship program is encouraged to inform the community of their plans to run on the [discussion forum](https://bifrost.subsquare.io/discussions) by following the steps below:

* **Phase 1: Self-introduction - At any time**
  * Background of your motivation for Fellowship membership application.
  * **Clarify which sub-fellowship you are applying to join.**
  * As a member of a particular sub-fellowship, state how you will add value, help Bifrost grow, and identify the aspects Bifrost needs to improve.
  * What is your individual/entity background and experience, and why should the community and fellowship members vote for you? (Provide your governance experience with on-chain or off-chain proof.)
* **Phase 2: Discussion and evaluation by community & Fellowship**

  During this phase, the corresponding sub-fellowship leader will comment and lead the evaluation and engagement process. This phase normally takes 7-14 days and includes time for the Fellowship to discuss internally and conclude. Following this, the Candidate can decide whether or not to post the formal proposal on-chain in the next phase.
* **Phase 3: Initiate on-chain proposal - dynamic voting time**

  After considering the Fellowship’s suggestion in the previous phase, candidates can ask the Fellowship or can self-post their proposal on-chain, and initiate an on-chain referendum.

***

## **Fellowship Referenda**

The fellowship's governance model has multiple tracks, each with its own approval and support parameters, where votes are weighted according to their ranks.

Members of the Fellowship can vote on any given proposal, and the aggregated vote of all members (weighted by their rank) constitutes the Fellowship's collective vote.

{% hint style="info" %}
Most Bifrost Fellowship Referenda Origin are [Runtime function extrinsic](https://www.notion.so/aeb7d71d48f641e8bd1015fa5555a602?pvs=21). Hence, most referenda are initiated by Strategy Fellowship and Tech Fellowship, and other fellowship members are led to vote on them.
{% endhint %}

The list of current and historic fellowship referenda can be viewed on [Subsquare](https://bifrost.subsquare.io/fellowship).

#### Rank Updates

Fellowship members can request an update on their ranks at any time, and **each year, they can be updated by one rank**.

1. Any fellowship member up to rank 4 can be promoted to the next rank through a fellowship referendum that can be voted by the members who are ranked two or higher. For instance, the fellowship [referenda 64](https://collectives.subsquare.io/fellowship/referenda/64), which promotes a member from rank 1 to rank 2, can only be voted by members whose ranks are greater than or equal to 3.
2. Promotion of the Polkadot Fellowship members from rank 5 needs to be done through an OpenGov referendum. For more information, check the rank updates section on the [fellowship dashboard](https://bifrost.subsquare.io/fellowship/members).

## Whitelisting

Polkadot OpenGov allows the Technical Fellowship to authorize an origin known as "Whitelisted-Caller" to execute with Root-level privileges for calls approved by the Fellowship (**currently, only level-three fellows and above can vote for whitelist calls**). Note that the fellowship cannot unanimously change the network parameters, conduct rescues, or move assets. The whitelisted proposals still have to go through the whole life cycle of an OpenGov referendum and can only be enacted when the referendum passes successfully.

The whitelisting process starts as a fellowship referendum with an embedded XCM call from the collectives system chain to the Polkadot relay chain. For instance, the [Bifrost Fellowship referenda 14](https://bifrost.subsquare.io/fellowship/referenda/52) was used to **whitelist** the [Bifrost OpenGov referenda 14](https://bifrost.subsquare.io/referenda/14).

## Sub-Fellowship Salary

The Salary structure will be announced in Q4 2024.


# On-chain Identity

Background

All Bifrost proposal posters are required to publicly disclose their on-chain identity by registering through default fields such as legal name, display name, website, Twitter handle, Riot handle, etc.

The overall process takes 3 steps:

1. Identity Registration
2. Request Verification
3. Providing Judgement

### Identity Registration

Autonomous identity register is required on both Bifrost Polkadot & Bifrost Kusama at the first step

1. Go to [polkadot.js](https://polkadot.js.org/apps/#/accounts), choose Bifrost parachain.
2. The easiest way to add the built-in fields is to click the three vertical dots next to your account and select "Set on-chain identity".

<figure><img src="/files/CBe2OEKKqx5iWx5U5jDS" alt="" width="563"><figcaption></figcaption></figure>

3. A popup will appear, offering the default fields. Use the toggle to fill in any fields you wish.

<figure><img src="/files/CK29E80fQhlO0YAOPzvE" alt="" width="563"><figcaption></figcaption></figure>

4. Click "Set Identity" to finish the process.

### Request Verificaiton

#### Option 1: Send Email

Send email to <identity@bifrost.io> by **using your on-chain identified email in previous step**. Here is a template:

<details>

<summary>Identity Judgement Request: Alice </summary>

Idendity Name: Alice (Your Identified name in previous step)

Address: eCSrvbA5gGNYdM3UjBNxcBNBqGxtz3SEEfydKragtL4pJ4F (Your identified address)

</details>

Existing fellowship member will provide you judgement once they received the request.

#### Option 2: Request varification judgement on chain

To be judged after submitting your identity information, go to the [Extrinsics tab in the Polkadot-JS UI](https://polkadot.js.org/apps/#/extrinsics) (Make sure you choose the right network) and select the `identity` pallet, then `requestJudgement`.

For the `reg_index` put the index of the registrar you want to be judged by, and for the `max_fee` put the maximum you're willing to pay for these confirmations.

<figure><img src="/files/rl9LsUDauV5YXEUMLaqX" alt=""><figcaption></figcaption></figure>

If you don't know which registrar to pick, first check the available registrars by going to [Chain State tab in the Polkadot-JS UI](https://polkadot.js.org/apps/#/chainstate) (Make sure you choose the right network) and selecting identity.registrars() to get the full list.

<figure><img src="/files/OoukstjeCB12hdaGwmaF" alt=""><figcaption></figcaption></figure>

To find out how to contact the registrar after the application for judgement or to learn who they are, you can check their identity by adding them to your Address Book. Their identity will be automatically loaded.

#### Option 3: Request varification judgement in person

If you have direct contact with any Fellowship member, just ask for a judgement.

### Providing Judgement

Once any identifier received judgement request, they will providing corresponding judgements by following types below:

Normally, there are two types of judgements to be provided:

1. Known good

Who met in person with identifier.

<figure><img src="/files/Q83UyEBD3Rds1vsj35AE" alt="" width="375"><figcaption></figcaption></figure>

2. Resonable

Who passed verification process with any identifier.

<figure><img src="/files/6zXmR7vA7uOrW4GVVWWD" alt="" width="375"><figcaption></figcaption></figure>


# Rainbow Boost

## **Raindrops & Binding Roles**

The Rainbow Boost Campaign saw Bifrost users engaged for several months.

Through the completion of certain on-chain tasks such as minting certain vTokens and farming them, users earned *Raindrops*.

Raindrops are part of a loyalty points system that ranks from the most active to the least active user addresses, allowing rankings and rewards in the form of:

* WL Access to the NFT Back to Asgard collection
* Token Airdrops
* On-chain Advantages
* Conversion of Raindrops into $bbBNC

By creating specific channels that could bring together the most active users who have collected the highest Raindrop score and those who have obtained a Whitelist spot for the [*Back to Asgard* collection](https://bta.bifrost.io) would allow Bifrost to be in touch with its most loyal users.

Furthermore, by combining the Discord ID with the Address, these users could have access to a number of initiatives such as preview access to certain products, special benefits obtainable by operating in DeFi, the minting of the NFT collection, and much more.

Go to [Discord](https://discord.bifrost.io) and head to the :droplet: **#raindrop-verification** channel, the process to bind your BNC address is detailed in the pinned message.

<figure><img src="/files/KCsu2kk6aRNkN5tLaERE" alt=""><figcaption></figcaption></figure>

Here are the distinct ranks and emoticon you can obtain by obtaining Raindrops.

<table><thead><tr><th width="398">Rank</th><th>Number of Raindrops</th></tr></thead><tbody><tr><td><strong>Child Raindrop Viking</strong> <span data-gb-custom-inline data-tag="emoji" data-code="1f9d2">🧒</span></td><td>0 &#x3C;> 200 000</td></tr><tr><td><strong>Warrior Raindrop Viking</strong> <span data-gb-custom-inline data-tag="emoji" data-code="1f9d4-2642">🧔‍♂️</span></td><td>200 000 &#x3C;> 1M</td></tr><tr><td><strong>Raindrop</strong> <strong>God</strong> <span data-gb-custom-inline data-tag="emoji" data-code="1f9dd">🧝</span></td><td>1M+</td></tr><tr><td><strong>Kraken Raindrop Creature</strong> <span data-gb-custom-inline data-tag="emoji" data-code="1f419">🐙</span></td><td>&#x3C;0</td></tr></tbody></table>

<figure><img src="/files/sfTEk4Mw2eGQZxZJAEuN" alt=""><figcaption><p>Discord distinctions</p></figcaption></figure>

You will see on Discord the emoji next to your name at any moment.

<figure><img src="/files/I4JjyXERkLbYhFZNVWtp" alt=""><figcaption></figcaption></figure>


# For Partners


# Reward-Share Program (RSP)

The program aims to promote cooperation with blockchain communities, ecosystem products, platforms, and partners. This will increase Bifrost’s exposure and vToken growth through our key partners and their diverse user base and popularity.

Bifrost's goal is to **share a portion of its vToken reward with these partners** to foster long-term strategic cooperation and stimulate the continuous growth and adoption of Bifrost’s services.

<figure><img src="/files/slrOfh2yDu1yn7t7YTbn" alt=""><figcaption></figcaption></figure>

***

Whether individuals or project parties, anyone is welcome to apply to the RSP. Applicants are not limited to:

* Wallets
* Dapps
* Protocols
* App Chains
* Crypto Data Platforms and Dashboards
* Communities and KOLs


# Why RSP?

## Long-term, Stable Reward Sharing

{% hint style="success" %}
As an RSP member, you will receive a share of the rewards for each vToken successfully minted by the staker you invited.
{% endhint %}

Joining RSP will bring you the following benefits:

#### Achieve a higher yield than running Validator Commission

{% hint style="info" %}
For instance, the protocol revenue rate of vDOT is 10% (equivalent to 10% of the Validator Commission). If you receive 60% of this, which equals to you are obtaining 6% of the Validator Commission.
{% endhint %}

View the detailed calculation formula at [<mark style="color:purple;">here</mark>](/for-partners/reward-share-program-rsp/claim-rsp-rewards#the-reward-share-model).

#### Sustainable Stable Long-Term Returns

Compared to running a Validator, you won't need to worry about maintenance, income suspension due to Inactive status, or other related issues.

#### Receive Shared Rewards at Any Time

You can claim your Shared Reward at any time, refer to [<mark style="color:purple;">this tutorial</mark>](/for-partners/reward-share-program-rsp/claim-rsp-rewards#rewards-claim).

#### A Dedicated Data Dashboard

A dedicated data page for you that records all effective vToken minting achieved through your Dapp, website, or referral link, which contains several important data points like:

* Total valid minting with curve (Effective minted)
* Total shared reward (commission)
* Daily/historical minting
* Your contributor list
* More detailed data

RSP Data Dashboard: [<mark style="color:purple;">https://rsp.bifrost.io/</mark>](https://rsp.bifrost.io/)

<figure><img src="/files/LrbqbIIGYClFbNrFG15i" alt=""><figcaption></figcaption></figure>

#### Long-Term Partnership with Bifrost

From a marketing and community perspective, what can we provide you?

* RSP onboarding community welcome announcement across all Bifrost official channels (global and regional).
* Retweet RSP partner content related to our collaboration.
* Online and offline event and campaign cooperation (e.g., joint sponsorships, panel invitations, and co-hosting).
* Network support via ecosystem partners, communities, and media outlets.
* And more.


# Join The Program

## **Become a Bifrost partner and start reward sharing**

### Summary

* Clearly illustrate your scope of collaboration: **is it a product/protocol integration** or a **community promotion** one?
* Clearly introduce yourself: **who you are**? **what do you do** and **why you want to join the program**? *the more info the better.*
* Your target shared reward rate: 10% - 50% on Bifrost 10% standard protocol reward.
* Attach your **reward receiver address**, which is a Bifrost address to claim your reward manually on Bifrost chain. (you can create one from [here](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhk.p.bifrost-rpc.liebi.com%2Fws#/addresses) or any supported wallets on Bifrost Dapp.)
* Clearly define **your value offering**, **who will benefit**
* Clearly highlight **how this can support Bifrost growth and its community**
* Once your proposal is complete, **follow steps 1 in section “How to join this program”**

## How to join this program?

There are two cases for partners to join the program:

* [<mark style="color:purple;">Integrating Bifrost</mark>](/for-partners/reward-share-program-rsp/integrate-rsp) Liquid Staking into your product or web app and inviting users to liquid-stake their assets with Bifrost.
* [<mark style="color:purple;">Promoting Bifrost</mark>](/for-partners/reward-share-program-rsp/integrate-rsp#option-3-bifrost-dapp-portal) Liquid Staking in your communities, through your networks and channels.

#### 1. Discuss in Bifrost Forum

First, **clarify the goal of your partnership with Bifrost, referring to the section above "Summary"**, and submit your proposal in the [<mark style="color:purple;">Discussion</mark>](https://bifrost.subsquare.io/discussions) section of the Bifrost Forum. Depending on the extent of the partnership, your proposal will be reviewed by either the Bifrost Community or the Bifrost Fellowship:

1. Protocol or Product Level Integrations - are primarily reviewed by the **Bifrost Fellowship**.
2. Community-level Partnerships - are mainly moderated by the **Bifrost Community** and put to a referendum.

Bifrost Fellowship members are Bifrost core development contributors, product contributors, and other ecosystem contributors and members.

> The Discussion Proposal should be discussed in the Bifrost Forum for **at least a week** before the referendum is posted. More importantly, applicants should monitor the forum and provide answers to community questions and feedbacks during this discussion period.

#### 2. Submit an OpenGov Proposal

Following the minimum 7 days discussion period and questions provided by the Community and Fellowship members, you can initiate an on-chain referendum.

1. **Construct preimage**

Click [<mark style="color:purple;">here</mark>](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x32020888006870757420796f7572206368616e6e656c206e616d652068657265ae80aa9d42b30abf2c67510ed2410e76f749329606d1a79354b772dc73522d35880300000000090014), if you are applying for channel in Bifrost-Polkadot.&#x20;

Click [<mark style="color:purple;">here</mark>](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x32020888006870757420796f7572206368616e6e656c206e616d652068657265ae80aa9d42b30abf2c67510ed2410e76f749329606d1a79354b772dc73522d35880300000000010414), if you are applying for channel in Bifrost-Kusama.

<figure><img src="/files/AtDNcGn5LBcrFnjzBA6D" alt=""><figcaption></figcaption></figure>

This is a pre-constructed call for you, you still need to fill-in some information:

* `channel_name`: Input your protocol & project & community name here, let everyone know who you are.
* `receive_account`: Input your address for receiving shared reward.

{% hint style="info" %}
**Important**: once you are done with all the parameters above, save the “encoded call data”, it is needed for the preimage noted in the next step.
{% endhint %}

<figure><img src="/files/j9vWm9JGM1S4x6xoX22L" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Once the referendum is successfully executed, you will start receiving your shared reward base on your channel’s vToken effective minting contribution.
{% endhint %}

2. **Note preimage**

Select and call with pallet `preimage` , with function `note_preimage`. Input your previous copied “encoded call data” in `bytes` space.

<figure><img src="/files/54ZAKqLcE7bbeC7avbI8" alt=""><figcaption></figcaption></figure>

Submit transaction to finalize this preimage noting.

3. **Proposal on-chain**

Find your noted preimage hash in the list and copy your preimage hash.

<figure><img src="/files/sOcGP5aVuIkMVPSsMQZz" alt=""><figcaption></figcaption></figure>

Go to referenda, click “submit proposal”.

<figure><img src="/files/N0Xk5NurnQisM29DC4zh" alt=""><figcaption></figcaption></figure>

Paste your previous copied preimage hash in the “preimage hash” area, set submission track as “10/Liquid Staking”, with “Origins” & “Liquid Staking”, and submit proposal.

<figure><img src="/files/UWxIgsdsapD7K7jn3qM4" alt=""><figcaption></figcaption></figure>

### Shared Reward Claim

Click [here](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x880500000000), if you want to claim shared reward in Bifrost-Polkadot.&#x20;

Click [here](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x880500000000), if you want to claim shared reward in Bifrost-Kusama.

<figure><img src="/files/TF3INYKMTdFlLUqsX431" alt=""><figcaption></figcaption></figure>

* `channel_id`: Input your id and submit transaction for shared reward claiming. (shared reward calculation period is every 7,200 blocks, roughly every 24 hours.)

### How to Edit Shared reward Rate or Pause Shared Reward Receving

Shared reward rate editing requires a referendum proposal as well, so first a preimage needs to be noted.

1. **Construct preimage**

Click [<mark style="color:purple;">here</mark>](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x880300000000000000), if you are applying for editing in Bifrost-Polkadot.&#x20;

Click [<mark style="color:purple;">here</mark>](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x880300000000000000), if you are applying for editing in Bifrost-Kusama.

<figure><img src="/files/XfOQPOWjloCr10ruo3rw" alt=""><figcaption></figcaption></figure>

* `channel_id`: Input your existing channel id. Check this doc to find your id.
* `vtoken`: Input which vToken that you are willing to edit. *Check all vTokens with their token indexes at:* [*<mark style="color:purple;">here</mark>*](/faq/what-are-vtokens/mint-redeem-vtoken-without-dapp#token-and-vtoken-index-library)*.*
* `rate`: Input your target shared reward rate, input “1” if your target rate is 1%, input “10” if your target rate is 10%. **Input “0” means you will stop receiving your shared reward.**

> Important: once you are done with all the parameters above, save the “encoded call data”, it is needed for preimage noted in the next step.

1. Note preimage and submit it in referendum (refer to previous tutorial in the section “Submit an OpenGov Proposal”)

### How to retire a Channel

Reward-share channel retirement requires a referendum proposal as well, so first a preimage is need to be noted.

1. **Construct preimage**

Click [here](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.bifrost-polkadot-rpc.liebi.com%2Fws#/extrinsics/decode/0x880100000000), if you are willing to exit your channel in Bifrost-Polkadot.&#x20;

Click [here](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x880100000000), if you are willing to exit your channel in Bifrost-Kusama.

<figure><img src="/files/aB1tMS2d9sKTp2k7jDr2" alt=""><figcaption></figcaption></figure>

* `channel_id`: Input your channel id that you will retire.

> Important: once you are done with all parameters above, save the “encoded call data”, it is needed for preimage noted in the next step.

1. Note preimage and submite in referedum (refers to previous tutorial in the section “Submit a OpenGov Proposal”)


# Integrate RSP

## Table of Contents

RSP members (with existing `channel_id`) can integrate RSP through the following three options:

* Option 1 - Through [<mark style="color:purple;">Bifrost SLP API</mark>](#option-1-bifrost-slp-api)
* Option 2 - Through [<mark style="color:purple;">Bifrost SLPx API (Cross-chain)</mark>](#option-2-bifrost-slpx-api-cross-chain)
  * [<mark style="color:purple;">Integrating with EVM Contract</mark>](#integrating-with-evm-contract)
  * [<mark style="color:purple;">Integrating with Parachain</mark>](#integrating-with-parachain)
* Option 3 - Through [<mark style="color:purple;">Bifrost Dapp Portal</mark>](#option-3-bifrost-dapp-portal)

## Option 1 - Bifrost SLP API

{% hint style="success" %}
**Target Audience**: Your front end can directly connect to the Bifrost (Polkadot / Kusama) parachain, such as Wallets and Dapps, etc.
{% endhint %}

#### Showcase 1: [<mark style="color:purple;">Staking Rewards</mark>](https://www.stakingrewards.com/provider/bifrost-finance) - A PoS Data Platform

<figure><img src="/files/8Ei8flZbocmeq5T9iH2G" alt=""><figcaption></figcaption></figure>

#### Showcase 2: [<mark style="color:purple;">Subwallet</mark>](https://web.subwallet.app/home/earning/pools) - Polkadot Wallet

<figure><img src="/files/6aOqBMBYh76tflLLja0x" alt=""><figcaption></figcaption></figure>

### Integrating Steps

1. Get your UI & UX ready.
2. Integrate Bifrost (Polkadot) vToken Mint API: `vtokenminting_mint`

   [<mark style="color:purple;">Call data</mark>](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhk.p.bifrost-rpc.liebi.com%2Fws#/extrinsics/decode/0x7300080000e40b54020000000000000000000000000100000000): 0x7300080000e40b54020000000000000000000000000100000000

   * Check Bifrost Token indexes and decimals at [<mark style="color:purple;">here</mark>](/faq/what-are-vtokens/mint-redeem-vtoken-without-dapp#token-and-vtoken-index-library).
   * Input your `channel_id` (Apply you channel id via [<mark style="color:purple;">here</mark>](/for-partners/reward-share-program-rsp/join-the-program))

<figure><img src="/files/rYQHwh4oNC1bKOsrBtPO" alt=""><figcaption></figcaption></figure>

## Option 2 - Bifrost SLPx API (Cross-chain)

{% hint style="success" %}
**Target Audience**: Blockchains that can call or deploy Bifrost SLPx across chains, such as Hydration, Moonbeam, Astar, Manta, Ethereum (coming soon), Base etc.
{% endhint %}

### Integrating with EVM Contract

#### **Showcase**: Moonbeam, Astar, Manta ([<mark style="color:purple;">Omni.ls</mark>](https://omni.ls/)) - An omni-chain liquid staking dapp

<figure><img src="/files/gqU0Xjf0fUaZ9DIxhDzK" alt=""><figcaption></figcaption></figure>

### Integrating Steps

1. Get your UI & UX ready.
2. Integrate SLPx API in your corresponding environment:
   * [<mark style="color:purple;">Your Dapp deployed on Moonbeam</mark>](broken://pages/MpbKl4HDR8glVkdCU9Lq)
   * [<mark style="color:purple;">Your Dapp deployed on Moonriver</mark>](broken://pages/oHUHyoNPybzEEgyHQizd)
   * [<mark style="color:purple;">Your Dapp deployed on Astar</mark>](broken://pages/y0dQUwBfU2tgY5QnykQM)
   * [<mark style="color:purple;">Your Dapp deployed on Ethereum Mainnet</mark>](broken://pages/k5VZbAZIRj2ivhmbpeE9) (Coming soon…)

### Integrating with Parachain

#### Showcase: Hydration’s Treasury Minted vDOT via SLPx

Hydration [<mark style="color:purple;">democracy</mark>](https://hydration.subsquare.io/democracy/referenda/138?tab=call) called Bifrost SLPx via XCM and minted 1M DOT to vDOT: [<mark style="color:purple;">https://hydration.subscan.io/referenda/138?tab=preimage</mark>](https://hydration.subscan.io/referenda/138?tab=preimage)

<details>

<summary>Check the Preimage</summary>

```
[
  {
    "name": "calls",
    "type": "Vec<hydradx_runtime:RuntimeCall>",
    "value": [
      {
        "call_module": "Utility",
        "call_name": "dispatch_as",
        "call_index": "0d03",
        "params": [
          {
            "name": "as_origin",
            "type": "hydradx_runtime:OriginCaller",
            "value": {
              "system": {
                "Signed": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000"
              }
            }
          },
          {
            "name": "call",
            "type": "Call",
            "value": {
              "call_index": "8900",
              "call_module": "XTokens",
              "call_name": "transfer",
              "params": [
                {
                  "name": "currency_id",
                  "type": "U32",
                  "value": 5
                },
                {
                  "name": "amount",
                  "type": "U128",
                  "value": "10000000000000000"
                },
                {
                  "name": "dest",
                  "type": "staging_xcm:VersionedMultiLocation",
                  "value": {
                    "V3": {
                      "interior": {
                        "X2": {
                          "col0": {
                            "Parachain": 2030
                          },
                          "col1": {
                            "AccountId32": {
                              "id": "0x5f13cfa22c9625df362d4f8f71647a50ed5d558a0c3d3dc72df679ecd7888d88",
                              "network": null
                            }
                          }
                        }
                      },
                      "parents": 1
                    }
                  }
                },
                {
                  "name": "dest_weight_limit",
                  "type": "staging_xcm:v3:WeightLimit",
                  "value": {
                    "Unlimited": "NULL"
                  }
                }
              ]
            }
          }
        ]
      },
      {
        "call_module": "Scheduler",
        "call_name": "schedule_after",
        "call_index": "0504",
        "params": [
          {
            "name": "after",
            "type": "U32",
            "value": 1
          },
          {
            "name": "maybe_periodic",
            "type": "option<Tuple:U32U32>",
            "value": null
          },
          {
            "name": "priority",
            "type": "U8",
            "value": 0
          },
          {
            "name": "call",
            "type": "Call",
            "value": {
              "call_index": "6b00",
              "call_module": "PolkadotXcm",
              "call_name": "send",
              "params": [
                {
                  "name": "dest",
                  "type": "staging_xcm:VersionedMultiLocation",
                  "value": {
                    "V3": {
                      "interior": {
                        "X1": {
                          "Parachain": 2030
                        }
                      },
                      "parents": 1
                    }
                  }
                },
                {
                  "name": "message",
                  "type": "staging_xcm:VersionedXcm@377",
                  "value": {
                    "V3": [
                      {
                        "DescendOrigin": {
                          "X1": {
                            "AccountId32": {
                              "id": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000",
                              "network": null
                            }
                          }
                        }
                      },
                      {
                        "WithdrawAsset": [
                          {
                            "fun": {
                              "Fungible": "1000000000"
                            },
                            "id": {
                              "Concrete": {
                                "interior": {
                                  "Here": "NULL"
                                },
                                "parents": 1
                              }
                            }
                          }
                        ]
                      },
                      {
                        "BuyExecution": {
                          "fees": {
                            "fun": {
                              "Fungible": "1000000000"
                            },
                            "id": {
                              "Concrete": {
                                "interior": {
                                  "Here": "NULL"
                                },
                                "parents": 1
                              }
                            }
                          },
                          "weight_limit": {
                            "Unlimited": "NULL"
                          }
                        }
                      },
                      {
                        "Transact": {
                          "call": "0x7d0000000000000000000000000000000000000000000800026d6f646c70792f747273727900000000000000000000000000000000000000000467",
                          "origin_kind": "SovereignAccount",
                          "require_weight_at_most": {
                            "proof_size": 100000,
                            "ref_time": 10000000000
                          }
                        }
                      },
                      {
                        "DepositAsset": {
                          "assets": {
                            "Wild": {
                              "All": "NULL"
                            }
                          },
                          "beneficiary": {
                            "interior": {
                              "X1": {
                                "Parachain": 2034
                              }
                            },
                            "parents": 1
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  }
]
```

</details>

Inside of this preimage, it contained the [call data](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbifrost.public.curie.radiumblock.co%2Fws#/extrinsics/decode/0x7d0000000000000000000000000000000000000000000800026d6f646c70792f747273727900000000000000000000000000000000000000000467) to call SLPx mint for vDOT.

<figure><img src="/files/ly4Nf3F92UhYVv91Ro77" alt=""><figcaption></figcaption></figure>

### Integrating Steps

1. Construct a XCM batch call to call Bifrost-Polkadot API: `slpx_mint`

{% hint style="info" %}
The cases below demonstrate the workflow of how to mint and redeem vToken on Hydration (parachain) via Bifrost SLPx, which leveraged by XCM.
{% endhint %}

Let’s assume Alice wants to mint DOT to vDOT on Hydration, a utility.batchAll call is needed:

[<mark style="color:purple;">Extrinsic Call Data</mark>](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhydradx-rpc.dwellir.com#/extrinsics/decode/0x0d020c89000500000000e40b5402000000000000000000000003010200b91f0100f959d131179b0264f98ac96d2c9c13c403129f5de93e52f3a611ccd4294d17410089000e00000000c817a804000000000000000000000003010200b91f0100f959d131179b0264f98ac96d2c9c13c403129f5de93e52f3a611ccd4294d1741006b0003010100b91f0310000400000106020001000000000000000000000000000000000000000000000000000000000000000700e40b54021300000106020001000000000000000000000000000000000000000000000000000000000000000700e40b54020006010700e40b5402feff030009017d0d0000000000000000000000000000000000000000080002d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d1074657374000000000d010000010100f959d131179b0264f98ac96d2c9c13c403129f5de93e52f3a611ccd4294d1741), which includes several calls inside

* Call 1:

Call xToken sending 1 DOT to Alice’s derived account on Bifrost.

<figure><img src="/files/Jl7ENMtuIhfi0Drrg7lS" alt=""><figcaption></figcaption></figure>

* Call 2:

Call xToken sending 0.02 BNC to Alice’s derived account on Bifrost.

{% hint style="info" %}
Check Bifrost Token indexes and decimals at [here](https://www.notion.so/485987dfe60d4af9a57d560c8b7f492e?v=20f29c9b48db448dadb63e24358a19c4\&pvs=25).
{% endhint %}

<figure><img src="/files/71ptB0ZsbQm1JGlBkUDi" alt=""><figcaption></figcaption></figure>

* Call 3:

Execute `slpx_mint`

<figure><img src="/files/UMbqx4Xw7hTKFhNbb8ry" alt=""><figcaption></figcaption></figure>

#### FAQs:

1. **Why do I need to send 0.02 BNC when minting/redeeming DOT?**

Because after the user on Hydration sends an XCM transact with the command to Bifrost, it needs the derived address of the Hydration user to perform the SLPx mint operation, and there is no asset in the derived address, which will cause the transaction fail.

1. **How that derived account is being calculated?**

{% embed url="<https://www.notion.so/bifrost-io/Integrate-RSP-0ccbbac79c904457b38ba50efcf2da52?pvs=4#337c802b31cb4c0f93f013ecd210eff0>" %}

```bash
# Alice 
yarn calculate-multilocation-derivative-account \\
--ws-provider wss://eu.bifrost-polkadot-rpc.liebi.com/ws \\
--address 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY \\
--para-id 2034 \\
--parents 1

# console
Remote Origin calculated as SiblingChain
ParaID 2034
Parents 1
AccountId32: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
32 byte address is 0xf959d131179b0264f98ac96d2c9c13c403129f5de93e52f3a611ccd4294d1741
20 byte address is 0xf959d131179b0264f98ac96d2c9c13c403129f5d
```

## Option 3 - Bifrost Dapp Portal

{% hint style="success" %}
**Target Audience**: Any entities need a Bifrost Dapp Portol to direct users by attached with your `channel_id`.
{% endhint %}

1. Make sure you already have a `channel_id`
2. Generate your Bifrost Dapp Portal

Bifrost Dapp frontend has adapted to the RSP. Attach your channel ID at the end of [<mark style="color:purple;">app.bifrost.io</mark>](https://app.bifrost.io), for instance, [<mark style="color:purple;">https://app.bifrost.io/?channel=\[channel\_id\]</mark>](https://app.bifrost.io/?channel=%5Bchannel_id%5D). All stakes via this link will be counted as your valid minting.

{% hint style="info" %}
For example, the channel\_id of Staking Rewards is 1, the vToken minting of users who enter the Bifrost Dapp through the [<mark style="color:purple;">https://app.bifrost.io/?channel=1</mark>](https://app.bifrost.io/?channel=1https://app.bifrost.io/?channel=1) will be counted as the effective minting amount of Staking Rewards.
{% endhint %}


# Claim RSP Rewards

## The Reward-Share Model

Through our vToken Reward-Share Program (RSP), you can become a Bifrost RSP partner, share Bifrost vToken revenue, and help attract new users to Bifrost Liquid Staking solutions.

Bifrost provides liquid staking services and collects a fixed commission from the staking rewards of all tokens as protocol revenue (See [<mark style="color:purple;">current rate details</mark>](/tokenomics-2.0/treasury#staking-liquid-protocol-fee)).

> In the vToken Reward-Share Program, each registered channel can share the **Bifrost Protocol Revenue** according to a Partners amount of contribution and their channel’s reward rate.

{% hint style="info" %}
You can calculate your reward estimation via:[ <mark style="color:purple;">Shared-reward Calculator</mark>](https://docs.google.com/spreadsheets/d/1YeR9XNSATWr3EtVtvGigCHnry3bxNj0O_cFZshGMybg/edit?gid=0#gid=0)
{% endhint %}

The operational process of the vToken Reward-Share Program is as follows:

1. Register as a Reward-share Channel Partner on the Bifrost Chain through Bifrost Gov. ([<mark style="color:purple;">Tutorial</mark>](/for-partners/reward-share-program-rsp/join-the-program))
2. [<mark style="color:purple;">Integrate RSP</mark>](/for-partners/reward-share-program-rsp/integrate-rsp)
3. All minting completed through Step 2 will be taken account to "**Effective Minting**".
4. The "Effective Minting" is the key indicator that determines the shared reward a partner receives.

Here is an example below:

#### Example

Let’s assume some conditions first:

| vToken | Total Effective Minting on Bifrost | Channel A’s Effective Minting | DOT Staking APY | Protocol Reward Rate | Channel A’s Reward Rate |
| ------ | ---------------------------------- | ----------------------------- | --------------- | -------------------- | ----------------------- |
| vDOT   | 10,000,000 DOT                     | 3,000,000 DOT                 | 12%             | 10%                  | 20%                     |

The calculation of Channel A’s shared-reward:

`10,000,000 * 12% * 10% = 120,000 DOT` (The annual revenue of Bifrost Protocol.)

`3,000,000 / 10,000,000 = 30%` (The percentage of Channel A’s effective minting taken account on Bifrost Total effective minting.)

`120,000 * 30% * 20% = 7,200 DOT` (Channel A’s final annual shared reward.)

## Rewards Claim

All shared rewards are distributed via Bifrost vTokens. If you are running the RSP on different types of vTokens, your receiver address registered with the `channel_id` can claim them all.

{% hint style="info" %}
You can check RSP members and their corresponding shared-reward on this [<mark style="color:purple;">dashboard</mark>](https://rsp.bifrost.io/).
{% endhint %}

Follow the [<mark style="color:purple;">tutorial</mark>](/for-partners/reward-share-program-rsp/join-the-program#shared-reward-claim) to claim your shared-rewards.


# Terms & Conditions

1. All channels have to pass though the onboarding process via Bifrost Fellowship/OpenGov.
2. All reward-share channel request proposal needs to clearly illustrate their reason, motivation and objectives. (check more details in this [<mark style="color:purple;">section</mark>](/for-partners/reward-share-program-rsp/join-the-program#become-a-bifrost-partner-and-start-reward-sharing).)
3. Shared reward are calculated and distributed on **every 14,400 block** basis, roughly 24 hours in real time, they need to be self-claimed on chain (check details in this [<mark style="color:purple;">section</mark>](/for-partners/reward-share-program-rsp/join-the-program#how-to-join-this-program)).
4. The vToken Reward-Share Program does not have any timeframe, all registered channels have no time limitation.
5. Bifrost Fellowship or Referendum can stop, pause and resume a channel with a clear reason, via OpenGov.
6. If there is a need to modify the shared reward rate, vToken Reward-Share Program Partners need to submit a proposal in the Bifrost Forum and explain their reasons for doing so.
7. If there is a need to change the shared reward address, Partners need to submit a proposal on the Bifrost Forum and explain their reason for this change.
8. If there is a need to suspend the shared reward, Partners need to adjust the commission rate to 0%, submit a proposal on the Bifrost Forum and explain their reason.
9. If there is a need to exit the channel, Partners need to remove their current channel id, submit a proposal in the Bifrost Forum, and make sure their proposal is initiated by the shared reward receiver account.


# FAQ

### Q1: **How to check my channel’s stats?**

Check your channel stats on this dashboard: [<mark style="color:purple;">http://rsp.bifrost.io/</mark>](http://rsp.bifrost.io/)

### **Q2: On the stats dashboard, why is my channel staked 1 DOT but the Effective Minting remains at 0?**

Conclusion: Because your staking amount represents too small a proportion of the protocol's vDOT issurance, it cannot be reflected as a percentage in permill.

#### How does it calculated?

`EffectiveMinting = ChannelVtokenShares*VtokenIssuanceSnapshots`

`ChannelVtokenShares` **is your staking share at the current circle (each circle = 1 day).**

`VtokenIssuanceSnapshots` **is protocol’s total effective vDOT issurance (after deducted redeem).**

#### Example:

* My channel vDOT minted: 1,000
* Bifrost vDOT total issurance: 100,000
* Bifrost vDOT redeem at the current circle: 2,000

My `ChannelVtokenShares` **=** 1,000/100,000 = 1%

`VtokenIssuanceSnapshots` **=** 100,000-2,000 = 80,000

My `EffectiveMinting` **=** 1,000/100,000\*(100,000-2,000) = **980 vDOT**

In actual calculations, Bifrost uses the `permill` function for storage. Therefore, if **ChannelVtokenShares falls below 1/1,000,000, the value won't be updated in the data storage.**

<figure><img src="/files/W2opmVEjqANdHssOsxYS" alt=""><figcaption></figcaption></figure>

#### A Real Showcase:

* channelid\_4’s vDOT minting: **0.7004 vDOT**: <https://bifrost.subscan.io/block/6019200?tab=event&event=6019200-20>
* The **VtokenIssuanceSnapshots** at the circle: **5050374.5870 vDOT**: <https://bifrost.subscan.io/block/6012000?tab=event&event=6012000-1>

channelid\_4’s **EffectiveMinting = 0.7004**/**5050374.5870 < 1/1,000,000**

As a result, the data is not shown in Bifrost Storage, and channelid\_4 would need a minimum total minting amount of 5.06 vDOT to be displayed.

### **Q3: On stats dashboard, how often is the data updated?**

Since most data is on-chain data, which updated in 24 hours. Reward claimed data updated in about 20 mins.


# Validator Boost List (VBL)

Any node can apply to join the Validator Boost List. The main sign of establishing a cooperation is that the node is added to the Validator Boost List. Therefore, the cooperation process is also based on the steps below:

#### 1. The node supplier establishes preliminary contact with Bifrost community

> Node providers can initiate topics in the Bifrost community to communicate and understand the operational process and relevant cooperation points of the SLP agreement. Furthermore, make a preliminary assessment of the possible angles of cooperation between both parties.

#### **2. Node providers initiate discussion on off-chain proposals**

> Based on the desired goals and cooperation angles that can be provided and achieved by the node providers, they will post in relevant channels (<https://bifrost.subsquare.io/discussions>) for proposal discussion.

#### 3. Node providers launch referendum proposals on-chain

> Under the condition that the offline discussion is sufficient and the feedback is good, the node operators can initiate a referendum proposal on the Bifrost network to decide whether the cooperation proposal will be implemented. After logging in to the corresponding network of Bifrost through Polkadot.js, the proposer can submit a proposal image in the referendum interface.&#x20;
>
> Please check details on [OpenGov LiquidStaking Track](/for-the-community/governance/opengov-tracks/liquid-staking#guidance-for-liquid-staking-proposing).&#x20;

#### 4. Referendum vote

> There will be a **7-day voting** period and a **2-day execution** period after the referendum is entered into the voting based on the governance process on the Bifrost chain. If the referendum passes, cooperation is established. If the referendum fails, the cooperation cannot move forward.

#### 5. Bifrost community contributors execute collaborative content

> Based on the content of the proposal, community contributors will continue to promote the implementation of relevant items and add the corresponding nodes to the Validator Boost List.

#### 6. Periodic review

> The community contributors will regularly evaluate the implementation and execution of cooperation points throughout the cooperation process, as well as the performance of cooperation nodes in terms of revenue and performance. If problems are found during the period, they will communicate with the node providers and promote the solution of the problems. If the cooperation is no longer suitable to continue, contributors can initiate a referendum to terminate the relevant cooperation and remove the corresponding nodes from the Validator Boost List.

Here is [Validator Boost List (VBL) Proposal Template](/for-the-community/governance/proposal-template/validator-boost-list)


# For Collators


# Requirement

### Hardware Requirements

**System: Ubuntu 20.04**

* **CPU** - 4 core (3.2GHZ above)
* **Memory** - 16GB
* **Storage** - 200GB SSD
* **Bandwidth** - 10 Mbps above

**Tip**: CPU frequency lower than 3.2GHZ may affect the normal block generation of collator. Storage recommendation is using an SSD that supports the NVMe protocol.

### Operating System

`Ubuntu 20.04 LTS`

(Bifrost binary can only run on Ubuntu 22.04, you can use docker when you have other linux system. )

### Operating Procedures

{% tabs %}
{% tab title="Polkadot Mainnet" %}

* **Delegator**
  1. Create a BNC Address via [Polkadot.js](https://polkadot.js.org/apps/?rpc=wss://bifrost.bifrost-staking-test.liebi.com/ws#/explorer)
  2. Enter the Bifrost Dapp (**Mainnet**) and delegate to a Collator
* **Collator**:
  1. Create a BNC Address via [Polkadot.js](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhk.p.bifrost-rpc.liebi.com%2Fws#/explorer)
  2. Run Collator Node & Map SessionKey in [Bifrost Mainnet](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fhk.p.bifrost-rpc.liebi.com%2Fws#/explorer): [Guidance](/for-collators/run-a-collator)
  3. Check your Collator at <https://app.bifrost.io/collator> (switch to Bifrost Polkadot Mainnet)
  4. Get Delegating
  5. Successfully generate blocks and enter the active Collator set to get Commission rewards
     {% endtab %}

{% tab title="Stagenet" %}

* **Delegator**
  1. Create a BNC Address
  2. Receive faucet test BNC: <https://t.me/bifrost_faucet>
  3. Enter Bifrost Dapp (switch to **Bifrost Stage Network**) and delegate a Collator
* **Collator**:
  1. Create a BNC Address
  2. Receive faucet test BNC: <https://t.me/bifrost_faucet>
  3. Run Collator Node & Map SessionKey in the Bifrost pre-production environment (wss\://bifrost-rpc.testnet.liebi.com/ws): [Guidance](/for-collators/run-a-collator)
  4. Check your Collator at [Bifrost Dapp](https://bifrost.app/collator) (switch to **Bifrost Stage Network**)/ [Telemetry](https://telemetry.polkadot.io/#list/0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed)
  5. Get Delegating
  6. Successfully generate blocks and enter the active Collator set to get Commission rewards
     {% endtab %}
     {% endtabs %}

### Operation Cycle

The Collator system has its own running cycle, **600 blocks in a round**, each round takes about 2 hours, and the cycle is related to the operations of reward settlement, addition, and unbonding.

{% tabs %}
{% tab title="Polkadot Mainnet" %}

<table><thead><tr><th width="150">Variable</th><th>Parameter</th></tr></thead><tbody><tr><td>Leave Candidate Pool</td><td>84 rounds (168 hours)</td></tr><tr><td>Remove Nominations</td><td>84 rounds (168 hours)</td></tr><tr><td>Reward distribution (after the current round)</td><td>2 rounds (4 hour)</td></tr></tbody></table>
{% endtab %}

{% tab title="Stagenet" %}

| Variable                                      | Parameter            |
| --------------------------------------------- | -------------------- |
| Leave Candidate Pool                          | 24 rounds (12 hours) |
| Remove Nominations                            | 24 rounds (12 hours) |
| Reward distribution (after the current round) | 2 rounds (1 hour)    |
| {% endtab %}                                  |                      |
| {% endtabs %}                                 |                      |

### Basic Parameters

#### Glossary

* **Collator:** Collator runs a full node on Bifrost parachain and Kusama relay-chain, and produce the state transition proof for relay chain validators.
* **Active set:** A set of Collators who can receive commission by producing blocks, choosen by the ranking of delegating amount.
* **Candidates:** Collators who are out of the active set.
* **Collator self bond:** Self-bond as a minimum BNC to be a Collator, continue self-bond same as delegating.
* **Delegator:** Bifrost token holders who stake tokens, vouching for specific collator candidates on the parachain.
* **Delegate:** Bond BNC Token for Bifrost Collators, receiving delegating rewards depends on the rank of Collator and delegating amount.

#### Collator

* Maximum number of active Collators and candidates

{% tabs %}
{% tab title="Polkadot Mainnet" %}

| Collator        | Stage 0   |
| --------------- | --------- |
| Candidate       | Unlimited |
| Active Collator | 8         |
| {% endtab %}    |           |

{% tab title="Stagenet" %}

| Collator        | Stage 0   | Stage 1   | Stage 2   |
| --------------- | --------- | --------- | --------- |
| Candidate       | Unlimited | Unlimited | Unlimited |
| Active Collator | 16        | 32        | 64        |
| {% endtab %}    |           |           |           |
| {% endtabs %}   |           |           |           |

* Bonding parameters (Collator)

{% tabs %}
{% tab title="Polkadot Mainnet" %}

| BNC Staking Conditions                                           | Quantity  |
| ---------------------------------------------------------------- | --------- |
| Candidate minimum bond (self bond)                               | 5,000 BNC |
| Collator maximum bond (self bond)                                | Unlimited |
| Minimum Total Delegating Amount for Active Collator (Delegating) | 5,000 BNC |
| {% endtab %}                                                     |           |

{% tab title="Stagenet" %}

| BNC Staking Conditions                                           | Quantity  |
| ---------------------------------------------------------------- | --------- |
| Candidate minimum bond (self bond)                               | 100 BNC   |
| Collator maximum bond (self bond)                                | Unlimited |
| Minimum Total Delegating Amount for Active Collator (Delegating) | 100 BNC   |
| {% endtab %}                                                     |           |
| {% endtabs %}                                                    |           |

* Others

{% tabs %}
{% tab title="Polkadot Mainnet" %}

| Variable                     | Parameter                                                                               |
| ---------------------------- | --------------------------------------------------------------------------------------- |
| Collator exit                | 84 rounds                                                                               |
| Maximum number of delegators | Unlimited                                                                               |
| Add self bond                | Effective immediately                                                                   |
| Reduce self bond             | 84 rounds                                                                               |
| Reward distribution          | Collectors receive rewards for the first 2 rounds at the end of each round (600 blocks) |
| Punishment                   | No Penalty, reward deduction if there is missing for effective block producing.         |
| {% endtab %}                 |                                                                                         |

{% tab title="Stagenet" %}

| Variable                     | Parameter                                                                               |
| ---------------------------- | --------------------------------------------------------------------------------------- |
| Collator exit                | Exit every 24 rounds                                                                    |
| Maximum number of delegators | Unlimited                                                                               |
| Add self bond                | Effective immediately                                                                   |
| Reduce self bond             | 24 rounds                                                                               |
| Reward distribution          | Collectors receive rewards for the first 2 rounds at the end of each round (150 blocks) |
| Punishment                   | No Penalty                                                                              |
| {% endtab %}                 |                                                                                         |
| {% endtabs %}                |                                                                                         |

#### Delegator

* Bonding parameters (Delegator)

{% tabs %}
{% tab title="Polkadot Mainnet" %}

| Delegating Conditions       | Quantity  |
| --------------------------- | --------- |
| Minimum Delegating Amount   | 50 BNC    |
| Maximum Delegating Quantity | Unlimited |
| {% endtab %}                |           |

{% tab title="Stagenet" %}

| Delegating Conditions       | Quantity  |
| --------------------------- | --------- |
| Minimum Delegating Amount   | 5 BNC     |
| Maximum Delegating Quantity | Unlimited |
| {% endtab %}                |           |
| {% endtabs %}               |           |

* Others

{% tabs %}
{% tab title="Polkadot Mainnet" %}

| Variable                                      | Parameter                                                                                            |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| Minimum delegating value that can be rewarded | No reward                                                                                            |
| Maximum number to delegate Collators          | 350                                                                                                  |
| Add Delegating                                | Effective immediately                                                                                |
| Reduce Delegating                             | 84 rounds                                                                                            |
| Revoke Delegating                             | 84 rounds, no minimum revoke limit (staking rewards continue to be received during unbonding period) |
| Reward automatic re-delegating                | Not available yet                                                                                    |
| {% endtab %}                                  |                                                                                                      |

{% tab title="Stagenet" %}

| Variable                                      | Parameter                                                                                                         |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Minimum delegating value that can be rewarded | The **top 100 Delegators** of each Collator can get the reward, more than 100 Delegators do not count the reward. |
| Maximum number to delegate Collators          | 100                                                                                                               |
| Add Delegating                                | Effective immediately                                                                                             |
| Reduce Delegating                             | 24 rounds                                                                                                         |
| Revoke Delegating                             | 24 rounds, no minimum revoke limit (no reward during the revoking period)                                         |
| Reward automatic re-delegating                | Not available yet                                                                                                 |
| {% endtab %}                                  |                                                                                                                   |
| {% endtabs %}                                 |                                                                                                                   |

#### Collator incentive ratio

{% tabs %}
{% tab title="Polkadot Mainnet" %}

| Total 98,550 BNC/6 months | Proportion |
| ------------------------- | ---------- |
| Collator Commission       | 10%        |
| Delegator                 | 90%        |
| {% endtab %}              |            |

{% tab title="Kusama Mainnet" %}

| Total 0 BNC/Year    | Proportion |
| ------------------- | ---------- |
| Collator Commission | 10%        |
| Delegator           | 90%        |
| {% endtab %}        |            |

{% tab title="Stagenet" %}

| Total 800,000 test BNC/Year | Proportion |
| --------------------------- | ---------- |
| Collator Commission         | 40%        |
| Delegator                   | 60%        |
| {% endtab %}                |            |
| {% endtabs %}               |            |

#### Reward Calculation

{% tabs %}
{% tab title="Kusama Mainnet" %}
Bifrost network reserved 5% (4,000,000 BNC) of total issurance to incentivize Collator mechanism for 5 years (800,000 BNC/year), with no inflation. The reward for each Round is a fixed 180 BNC. The reward calculation method is as follows.

According to the incentive ratio, the reward for each block is:

`Collator:`` `<mark style="color:blue;">`180/600*10% = 0.03 BNC`</mark>

`Delegator:`` `<mark style="color:blue;">`180/600*90% = 0.27 BNC`</mark>

If a collector's total delegating amount is 100,000 BNC and it is in the 64 Active Collator set for the whole year, the average revenue of the Collator is:

`Collating Reward:`` `<mark style="color:blue;">`800,000 x 10% / 64 = 1,250 BNC`</mark>

`Self-bond delegating Reward:`` `<mark style="color:blue;">`800,000 x 90% / 64 x 5,000/100,000 = 562.5 BNC`</mark>

`Total Revenue:`` `<mark style="color:blue;">`1,250 + 562.5 = 1,812.5 BNC`</mark>

`APR:`` `<mark style="color:blue;">`1,812.5/5,000 = 36.25%`</mark>
{% endtab %}
{% endtabs %}


# Run a Collator

{% tabs %}
{% tab title="Polkadot Mainnet" %}

Bifrost Mainnet:

<https://polkadot.js.org/apps/?rpc=wss://hk.p.bifrost-rpc.liebi.com/ws#/explorer>

### Download Chain Spec

* Bifrost chain spec: [bifrost-polkadot.json](https://raw.githubusercontent.com/bifrost-io/bifrost/refs/heads/develop/node/service/res/bifrost-polkadot.json)
* [Bifrost Binary](https://github.com/bifrost-io/bifrost/releases/download/bifrost-v0.15.0/bifrost)
* [Bifrost Source Code](https://github.com/bifrost-io/bifrost)

### Run a Collator Node

#### before start node

need to generate node-key (corresponding peer-id) ,command is

```
bifrost key generate-node-key
# this is just example, you must generate your only-one node-key
12D3KooWHhmkowJ4hNT1BUXDV1vuvLj49JdjMUfwJyFSniM3qu1k    # peer-node-key
902bbfd87bf7cc7b639095e8a7dc73462fb6a04f10a8c38b0f49b10abd8f5a71 # node-key for command args
```

#### strart node

```bash
/path/to/bifrost \
--collator \
--chain </path/to/bifrost-polkadot.json> \
--base-path <DATA_PATH> \
--node-key <YOUR_NODE_KEY> \
--ws-port=9944 \
--port=30333 \
--prometheus-external \
--state-cache-size 0 \
-- \
--chain polkadot 
```

### Set SessionKey

#### Generate SessionKey

```
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://COLLATOR_IP:9933
```

**Set SessionKey**

![](https://hackmd.io/_uploads/rJYHbu4ec.png)

#### Get the Size of the Candidate Pool <a href="#get-the-size-of-the-candidate-pool" id="get-the-size-of-the-candidate-pool"></a>

First, you need to get the `candidatePool` size (this can change through governance) as you'll need to submit this parameter in a later transaction. To do so, you'll have to run the following JavaScript code snippet from within [Polkadot.js](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fwss.api.moonbase.moonbeam.network#/js):

```
// Simple script to get candidate pool size
const candidatePool = await api.query.parachainStaking.candidatePool();
console.log(`Candidate pool size is: ${candidatePool.length}`);
```

Head to the **Developer** tab, select **JavaScript** from the dropdown, and take the following steps:

1. Copy the code from the previous snippet and paste it inside the code editor box. (Optional) Click the save icon and set a name for the code snippet, for example, "Get candidatePool size". This will save the code snippet locally
2. To execute the code, click on the run button
3. Copy the result, as you'll need it when joining the candidate pool

<figure><img src="/files/inINrrywjEny16NbJAIQ" alt=""><figcaption></figcaption></figure>

### Apply for Candidate

* **extrinsic**

parameters:

bond: candidate bonding amount 5,000,000,000,000,000 (5,000 BNCs)

candidateCount: existing candidate amount

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2FtfssX4wF5hBA7vXFzcu6%2Fimage.png?alt=media\&token=77de5ff5-af90-41c0-8798-e64c3ce47a4c)

* **event**

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2FD7Xvho6Gvlah9O9czqa8%2Fimage.png?alt=media\&token=50647990-4fab-4361-85b3-62ab64628eff)

If the total amount of Total Bonded is in the top 16, after 2 rounds, the new Collator can start to generate blocks and receive rewards.

<figure><img src="/files/Kn6kEqVtksGRrflthd0i" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Kusama Mainnet" %}
Bifrost Mainnet:

<https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fus.bifrost-rpc.liebi.com%2Fws#>

### Download Chain Spec

* Bifrost chain spec: [bifrost-kusama.json](https://github.com/bifrost-io/bifrost/blob/develop/node/service/res/bifrost-kusama.json)
* [Bifrost Binary](https://github.com/bifrost-io/bifrost/releases/download/bifrost-v0.15.0/bifrost)
* [Bifrost Source Code](https://github.com/bifrost-io/bifrost)

### Run a Collator Node

#### before start node

need to generate node-key (corresponding peer-id) ,command is

```
bifrost key generate-node-key
# this is just example, you must generate your only-one node-key
12D3KooWHhmkowJ4hNT1BUXDV1vuvLj49JdjMUfwJyFSniM3qu1k    # peer-node-key
902bbfd87bf7cc7b639095e8a7dc73462fb6a04f10a8c38b0f49b10abd8f5a71 # node-key for command args
```

#### strart node

```bash
/path/to/bifrost \
--collator \
--chain </path/to/bifrost-kusama.json> \
--base-path <DATA_PATH> \
--node-key <YOUR_NODE_KEY> \
--ws-port=9944 \
--port=30333 \
--prometheus-external \
--state-cache-size 0 \
-- \
--chain kusama \
--execution wasm
```

### Set SessionKey

#### Generate SessionKey

```
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://COLLATOR_IP:9933
```

**Set SessionKey**

![](https://hackmd.io/_uploads/rJYHbu4ec.png)

#### Get the Size of the Candidate Pool <a href="#get-the-size-of-the-candidate-pool" id="get-the-size-of-the-candidate-pool"></a>

First, you need to get the `candidatePool` size (this can change through governance) as you'll need to submit this parameter in a later transaction. To do so, you'll have to run the following JavaScript code snippet from within [Polkadot.js](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fwss.api.moonbase.moonbeam.network#/js):

```
// Simple script to get candidate pool size
const candidatePool = await api.query.parachainStaking.candidatePool();
console.log(`Candidate pool size is: ${candidatePool.length}`);
```

Head to the **Developer** tab, select **JavaScript** from the dropdown, and take the following steps:

1. Copy the code from the previous snippet and paste it inside the code editor box. (Optional) Click the save icon and set a name for the code snippet, for example, "Get candidatePool size". This will save the code snippet locally
2. To execute the code, click on the run button
3. Copy the result, as you'll need it when joining the candidate pool

<figure><img src="/files/inINrrywjEny16NbJAIQ" alt=""><figcaption></figcaption></figure>

### Apply for Candidate

* **extrinsic**

parameters:

bond: candidate bonding amount 5,000,000,000,000,000 (5,000 BNCs)

candidateCount: existing candidate amount

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2FtfssX4wF5hBA7vXFzcu6%2Fimage.png?alt=media\&token=77de5ff5-af90-41c0-8798-e64c3ce47a4c)

* **event**

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2FD7Xvho6Gvlah9O9czqa8%2Fimage.png?alt=media\&token=50647990-4fab-4361-85b3-62ab64628eff)

If the total amount of Total Bonded is in the top 16, after 2 rounds, the new Collator can start to generate blocks and receive rewards.

<figure><img src="/files/Kn6kEqVtksGRrflthd0i" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


# Stop Collating

To stop collating and leave the candidate pool, you must first schedule a request to leave the pool. Scheduling a request does not automatically remove you from the candidate pool, you must wait an exit delay (84 rounds). After the delay you will be able to execute the request and stop collating. While you are waiting the specified number of rounds, you will still be eligible to produce blocks and earn rewards if you're in the active set.

#### Schedule Request to Leave Candidates <a href="#schedule-request-to-leave-candidates" id="schedule-request-to-leave-candidates"></a>

To get started and schedule a request, navigate to the **Developer** tab, click on **Extrinsics**, and take the following steps:

1. Select your candidate account
2. Select **parachainStaking** pallet under the **submit the following extrinsic** menu
3. Select the **scheduleLeaveCandidates** extrinsic
4. Enter the `candidateCount` which you should have retrieved in the [Get the Size of the Candidate Pool](/for-collators/run-a-collator#get-the-size-of-the-candidate-pool) section
5. Submit the transaction. Follow the wizard and sign the transaction using the password you set for the account

<figure><img src="/files/SKkLvm8oUOEuWwDbaerV" alt=""><figcaption></figcaption></figure>

#### Execute Request to Leave Candidates <a href="#execute-request-to-leave-candidates" id="execute-request-to-leave-candidates"></a>

After the waiting period has passed, you'll be able to execute the request. To execute the request to leave the candidate pool, you'll first need to obtain the number of delegations the candidate has. To do so, you can query the candidate information, which will include the delegation count. To get started, click on the **Developer** tab, select **Chain state**, and take the following steps:

1. From the **selected state query** dropdown, choose **parachainStaking**
2. Select the **candidateInfo** extrinsic
3. Choose the candidate account to get the information for
4. Click the **+** button to submit the extrinsic
5. Copy the **`delegationCount`** to be used for executing the leave candidates request

<figure><img src="/files/ofQLhj7ki6UOhMxcCNv6" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Important Step: Check and wait until the number in round \`current\` larger than your candidate 'leaving' number, then you can execute the following step below, otherwise, it will fail.
{% endhint %}

<figure><img src="/files/n8Fr8PGoRXmBXxgO08Ft" alt=""><figcaption></figcaption></figure>

Now that you have the delegation count you can execute the request. Switch back to the **Extrinsics** tab and follow these steps:

1. Select your candidate account
2. Select **parachainStaking** pallet under the **submit the following extrinsic** menu
3. Select the **executeLeaveCandidates** extrinsic
4. Select the target candidate account (anyone can execute the request after the exit delay has passed after submitting the `scheduleLeaveCandidates` extrinsic)
5. Enter the candidate's delegation count
6. Submit the transaction. Follow the wizard and sign the transaction using the password you set for the account

<figure><img src="/files/ybnBTI0HVA8E2zJVtLCt" alt=""><figcaption></figcaption></figure>


# Resources


# Tools

Experience different Bifrost network functions via different way below:

### Wallet

{% embed url="<https://www.talisman.xyz/>" %}
Talisman
{% endembed %}

{% embed url="<https://github.com/polkadot-js/extension>" %}
Polkadot.js extension
{% endembed %}

{% embed url="<https://www.subwallet.app/>" %}
Subwallet
{% endembed %}

{% embed url="<https://novawallet.io/>" %}
Novawallet
{% endembed %}

{% embed url="<https://mathwallet.org/en-us/>" %}
Mathwallet
{% endembed %}

{% embed url="<https://www.enkrypt.com/>" %}
Enkrypt
{% endembed %}

{% embed url="<https://metamask.io/>" %}
Metamask
{% endembed %}

### DApp

{% embed url="<https://bifrost.app/>" %}
Bifrost DApp
{% endembed %}

{% embed url="<https://dash.bifrost.finance>" %}
Bifrost Dashboard
{% endembed %}

{% embed url="<https://omni.ls/>" %}
Omni Liquid Staking
{% endembed %}

{% embed url="<https://dex.zenlink.pro/#/swap>" %}
Zenlink DEX
{% endembed %}

{% embed url="<https://app.web3go.xyz/#/BifrostStaking>" %}
Web3go
{% endembed %}

### Governance

{% embed url="<https://bifrost.app/vstaking/vDOT?tab=governance>" %}
vToken Gov
{% endembed %}

{% embed url="<https://bifrost.subsquare.io>" %}
Bifrost On-chain Governance
{% endembed %}

{% embed url="<https://voting.opensquare.io/space/bifrost>" %}
Bifrost Off-chain Governance
{% endembed %}

### Blockchain Exploer

{% embed url="<https://bifrost.subscan.io>" %}
Subscan
{% endembed %}

{% embed url="<https://stakebnc.com>" %}
Bifrost Staking Exploer
{% endembed %}

### Others

**Homepage:** [https://bifrost.io](https://bifrost.io/)

**Dapp:** [https://app.bifrost.io](https://app.bifrost.io/)

**Bifrost Analytics:** [https://stats.bifrost.io](https://stats.bifrost.io/)

**Docs:** [https://docs.bifrost.io](https://docs.bifrost.io/)

**X**: [https://twitter.com/Bifrost](https://x.com/Bifrost)

**Discord**: [https://discord.bifrost.io](https://discord.bifrost.io/)

**Telegram**: <https://t.me/bifrost_io>

**More Links:** [https://link.bifrost.io](https://link.bifrost.io/)


# Audit Report

### SlowMist Audit Report - Bifrost Protocol

{% embed url="<https://github.com/bifrost-finance/bifrost-wiki/blob/master/slowmist-rep-bifrost-2022-02.pdf>" %}

### Certik Security Assessment - Bifrost Protocol

{% embed url="<https://github.com/bifrost-finance/bifrost-wiki/blob/master/certik-rep-bifrost-2022-01.pdf>" %}

### SlowMist Audit Report - Bifrost vETH 2.0

{% embed url="<https://github.com/bifrost-finance/bifrost-vETH-2.0/blob/main/audit/SlowMist%20Audit%20Report%20-%20Bifrost%20vETH%202.0.pdf>" %}

### SlowMist Audit Report - Bifrost SLP

{% embed url="<https://github.com/bifrost-finance/bifrost-wiki/blob/master/slowmist-rep-bifrost-slp-2022-08.pdf>" %}

### Bifrost Security Evaluation

{% embed url="<https://drive.google.com/file/d/1jjASLFLc-G56fDrtHBAXME1C5M9-LPLJ/view?usp=sharing>" %}

### Common Prefix Audit Report - SLPx

{% embed url="<https://docs.google.com/document/d/1HPMcVXQuOn_Y3HpxIrRWh4DgGbZXbvWocmZYuoasNHg/edit#heading=h.7i34j32dfki6>" %}

### Beosin Audit Report - Stable Swap

{% embed url="<https://beosin.com/audits/Stable-swap_202309291700.pdf>" %}

### Beosin Audit Report - vToken Minting

{% embed url="<https://beosin.com/audits/Bifrost_vtoken-voting_202310121750.pdf>" %}

### OAK Audit Report - Loopstake (Leveraged Staking)

{% embed url="<https://github.com/oak-security/audit-reports/blob/main/Bifrost/2024-03-11%20Audit%20Report%20-%20Bifrost%20Finance%20Leveraged%20Staking%20v1.0.pdf>" %}

### BlockDeep Audit Report - bbBNC

{% embed url="<https://drive.google.com/file/d/186kOlHTB2krP6Rqa4uyb_bvuJKpV8GpA/view?usp=drive_link>" %}

### Beosin Audit Report - vToken Minting & SLP V2

{% embed url="<https://beosin.com/audits/Bifrost(vtoken-minting&&slp-v2)_202509251121.pdf>" %}

### Beosin Audit Report - vETH 3.0 & SLPx V2

{% embed url="<https://beosin.com/audits/Bifrost(veth-3.0&&slpx-v2)_202509251035.pdf>" %}


# Press Kit

### Logo Assets

#### Pack

[Download](https://github.com/bifrost-finance/design-assets/raw/master/brand/Bifrost-Logo-Assets.zip)

Logo .AI

[Download](https://cdn.liebi.com/press_kit/Bifrost_logo.ai)

### User Guide

#### Meaning and Composition

Bifrost’s logo is composed of graphics and text. The graphic part implies the abstract intent of the Rainbow Bridge, and the text part is Bifrost’s standard letter font

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2Fgit-blob-19ad2d54ea9e45cba166b962c5421c17342eafd7%2Fbrand-assets-01.png?alt=media)

#### Logos

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2Fgit-blob-6751726230210549537bf448da9f7f1d53acb65e%2Fbrand-assets-02%20\(1\)%20\(2\)%20\(2\).png?alt=media)

#### Safety area

During the use of the Logo, always ensure that there is no interference from other elements in the safety area

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2Fgit-blob-2a1fd5ca9af8088fd177dc585913cdbfb628324c%2Fbrand-assets-03%20\(1\)%20\(2\)%20\(2\).png?alt=media)

#### Scenes

**About the choice of color**

On a white/light background, the "color graphics-black text" logo is preferred, and pure black logos can also be used. On a black/dark background, the "color graphics-white text" logo is preferred, and pure white logos can also be used.

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2Fgit-blob-1a88f84f56b3ba5145dfd71142f6fab89506b145%2Fbrand-assets-04.png?alt=media)

**About the choice of graphics**

In formal occasions (such as official posters, cooperative publicity, formal announcements, etc.), please be sure to use the complete "graphics + text" logo.

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2Fgit-blob-0573e6550ccb960fb461bed041ad2a0926fd65c9%2Fbrand-assets-05.png?alt=media)

In some other scenarios (such as project avatars, promotional pictures, social media images, etc.), you can use either a complete logo or a "single graphic logo" according to actual needs. When the display area is a square/circular area similar to 1:1 and the display size is relatively small, if there is a clear text that reflects Bifrost, it is recommended to use "Single Graphic Logo" in the Logo section.

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2Fgit-blob-3efdb7979aaf2745d860cbc1298079b958f89245%2Fbrand-assets-06%20\(2\)%20\(2\)%20\(2\)%20\(4\)%20\(4\)%20\(4\)%20\(4\)%20\(4\)%20\(4\)%20\(4\)%20\(4\).png?alt=media)

#### Quick selection

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVzXa22j6fsQEjpS4Ht-887967055%2Fuploads%2Fgit-blob-18cf83d52ac8ecff6b4a85fe6d6bcb512ad1afc1%2Fbrand-assets-07.png?alt=media)


# Token Icon

| Token  | Download                                                | Download                                          |
| ------ | ------------------------------------------------------- | ------------------------------------------------- |
| BNC    | [PNG](https://cdn.liebi.com/press_kit/BNC_512.png)      | [SVG](https://cdn.liebi.com/press_kit/BNC.svg)    |
| vBNC   | [PNG](https://cdn.liebi.com/press_kit/vBNC_512.png)     | [SVG](https://cdn.liebi.com/press_kit/vBNC.svg)   |
| bbBNC  | [PNG](https://cdn.liebi.com/press_kit/bbBNC_512.png)    | [SVG](https://cdn.liebi.com/press_kit/bbBNC.svg)  |
| DOT    | [PNG](https://cdn.liebi.com/press_kit/DOT_512.png)      | [SVG](https://cdn.liebi.com/press_kit/DOT.svg)    |
| vDOT   | [PNG](https://cdn.liebi.com/press_kit/vDOT_512.png)     | [SVG](https://cdn.liebi.com/press_kit/vDOT.svg)   |
| vKSM   | [PNG](https://cdn.liebi.com/press_kit/vKSM_512.png)     | [SVG](https://cdn.liebi.com/press_kit/vKSM.svg)   |
| vETH   | [PNG](https://cdn.liebi.com/press_kit/vETH_512.png)     | [SVG](https://cdn.liebi.com/press_kit/vETH.svg)   |
| GLMR   | [PNG](https://cdn.liebi.com/press_kit/GLMR_512.png)     | [SVG](https://cdn.liebi.com/press_kit/GLMR.svg)   |
| vGLMR  | [PNG](https://cdn.liebi.com/press_kit/vGLMR_v2_512.png) | [SVG](https://cdn.liebi.com/press_kit/vGLMR.svg)  |
| vMOVR  | [PNG](https://cdn.liebi.com/press_kit/vMOVR_v2_512.png) | [SVG](https://cdn.liebi.com/press_kit/vMOVR.svg)  |
| ASTR   | [PNG](https://cdn.liebi.com/press_kit/ASTR_512.png)     | [SVG](https://cdn.liebi.com/press_kit/ASTR.svg)   |
| vASTR  | [PNG](https://cdn.liebi.com/press_kit/vASTR_512.png)    | [SVG](https://cdn.liebi.com/press_kit/vASTR.svg)  |
| vMANTA | [PNG](https://cdn.liebi.com/press_kit/vMANTA_512.png)   | [SVG](https://cdn.liebi.com/press_kit/vMANTA.svg) |
| vFIL   | [PNG](https://cdn.liebi.com/press_kit/vFIL_512.png)     | [SVG](https://cdn.liebi.com/press_kit/vFIL.svg)   |


