Add vDOT market to Moonwell on Moonbeam

Dear all, following our initial discussion post dating of October 2023 titled “Bifrost x Moonwell - Bringing the Liquid staking revolution to Moonbeam” we would now like to discuss the possibility of adding and enabling vDOT to Moonwell markets on Moonbeam.

General

Bifrost

Bifrost is a Liquid Staking app-chain tailored for all blockchains. By leveraging off the Polkadot SDK and utilising decentralized cross-chain interoperability it empowers users to earn staking rewards and DeFi yields with flexibility, liquidity, and high security across multiple chains.

Bifrost is currently one of the largest Polkadot parachains in terms of Total Value Locked (TVL) with over $100M. It also has the largest TVL for liquid staked DOT (vDOT) with over 7M DOT ($50M). Bifrost has liquid staking solutions for other networks such as Astar (vASTR), Ethereum (vETH), Manta (vMANTA), Moonbeam (vGLMR), Kusama (vKSM) and Moonriver (vMOVR).

vDOT, Bifrost DOT LST

vDOT - “voucher DOT”, is a reward bearing Liquid staking token (LST) issued by the Bifrost Staking Liquidity Protocol pallet. vDOT represents staked DOT on the Polkadot Relay chain and returns from staking rewards. As staking rewards are received, vDOT increases in value, without any change to the quantity of tokens. vDOT is the largest DOT LST.

Motivation

In our initial October 2023 proposal entitled “Bifrost x Moonwell - Bringing the Liquid Staking Revolution to Moonbeam” we introduced the Moonwell community to both our liquid staking solution for Polkadot with vDOT and for Moonbeam with vGLMR. We highlighted very clearly to the Moonwell community the benefits of having native liquid staking assets on Moonwell and why Bifrost vDOT and vGLMR specifically would add value and be a significant unlock for the ecosystem and for users.

Since this initial post, we have seen significant growth for vDOT, growing from 1,500,000 DOT to over 7,500,000 DOT as of writing (reaching a high of over 10,000,000 DOT in May of this year, check visual below) and surpassing 4500 holders. Alternatively, vGLMR’s growth has been more challenging given the limited native use cases for vGLMR and overall DeFi liquidity on Moonbeam. Similarly, vDOT TVL growth on native Moonbeam protocols such as Beamswap and Stellswap have been particularly challenging due to a lack of use cases and liquidity, however has now seen growth on Stella with their DOT liquidity incentives.

vDOT TVL growth YOY, Source: Bifrost analytics

vDOT remains the largest DOT LST in Polkadot liquid staking marketTVL , Source: Dune, Polkadot Staking Dashboard

Most new Cumulative DOT for vDOT, Source: Dune, Polkadot Staking Dashboard

Largest collateral for Interlay iBTC Vaults, source: Dune, Interlay Dashboard

3rd largest asset in the Hydration Omnipool, source: Dune, Hydration Dashboard

The exponential growth of vDOT surpassing 8M DOT has in principle been due its compelling yield profile vs. alternative staking options, and more importantly the demand for its expanding use cases across the Polkadot ecosystem. Some highlights below in regards to key use-cases and milestones for vDOT:

Given the growth and demand for vDOT and its use cases across various key DeFi primitives on Polkadot, we believe it is finally time to enable similar use-cases and opportunities in Moonbeam’ native DeFi ecosystem specifically on its largest protocol Moonwell. In fact, Moonbeam users have been quite vocal regarding this use case and its time to enable this. As of writing, xcDOT is the second largest market on Moonwell Moonbeam deployment. We firmly believe that productive yield bearing assets, such as LSTs are high quality pristine collateral to borrow against and enable compelling yield strategies such as leverage staking. Bifrost vDOT is the largest liquid staking token on Polkadot, and we believe it is time to consider adding vDOT as a collateral asset on Moonwell. By onboarding vDOT this will consequently create increased vDOT demand and increase revenues for both Moonwell and Bifrost,whilst also building deeper liquidity for vDOT on Stellaswap (current TVL $1M) and fees. We will likely see some rotation from xcDOT to xcvDOT market once live as it will enable users to loop and leverage stake via vDOT on Moonwell.As a result, this will make vDOT a high demand collateral, driving more utilisation to Moonwell. Finally, with Bifrosts’ recently launched Reward Share Program (RSP), this is a compelling opportunity for Moonwell to join and request a share of Bifrost’s vDOT commission (10% on staking yield) on vDOT being directly minted via Moonwells dedicated referral link. This revenue share in vDOT could then be accumulated by Moonwell treasury and redistributed to Moonwell community or to incentivise markets on Moonwell such as for xcvDOT and xcDOT.

Proposal Author’s contact information

Thibault Perréard

Telegram: TPPCH

Discord: 0xtpp

Email: thibault@bifrost.io

Thibault is head of Strategy and Foundation for Bifrost as well as a core contributor to the protocol.

Social channel metrics

Twitter : 88 000 followers

Discord : 19 000 members

Resources

Market Risk Assessment

Market cap of the token

vDOT market capitalization:

$ 46,918,430

Total supply of vDOT

50,692,221,762,822,255 (10 decimals)

Largest liquidity venues for vDOT

Average daily trading volume on DEX

https://www.coingecko.com/en/coins/voucher-dot
$681,491

Emission schedule

Not applicable.

Decentralisation

List the top10 token holders, % held by each holder, tag them if known

List all of the privileged roles in the token contract (i.e. whitelisted EOAs, Multi-sigs, DAOs)

No privileged roles.

Is the token pausable?

Can be paused via Bifrost OpenGov.

Does the token have a blacklist?

No.

Smart Contract Risks

vDOT is not a contract, but an asset custom to the Bifrost chain. The risk assessment and audit reports can be found here.

vDOT is issued by the SLP module, which can only be upgraded by root. The risk of root is declared under the section “Upgradability”.

Codebase & On-chain Activity

Codebase: bifrost/pallets/slp at develop · bifrost-io/bifrost · GitHub

Audit: Audit Report | Bifrost Docs

On-chain activity: https://bifrost.subscan.io/custom_token?unique_id=asset_registry%2F9658598ef1eace56a0662d4a067a260e42b36f2a&tab=transfers

Give the age of the token in days

The first transaction of vDOT:

At 2022-10-30 08:49:54 (UTC)

Provide the number of transactions in the contract to date

Security Posture

Audits

Bifrost puts significant emphasis and attention on security. All of Bifrost’s code is open source: bifrost-finance · GitHub

We have our formal documentation describing the mechanism and logic of our protocol, pallets/features and of our liquid staking tokens “vTokens’ , that are issued by the protocol.

Bifrost has conducted various full chain security audits for its features and pallets with high quality third party blockchain smart contract security auditors (Slowmist, Common Prefix, Oak Security).

Bifrost has an open bug bounty on Immunify.

Protocol Emergency Contacts

Additional security and formal verification tools used in development

List all monitoring services used by the token, if any.

There are two main public monitors around Bifrost custom Token (such as vDOT)

  1. Grafana: Grafana
  2. Dune: https://dune.com/bifrost_finance/bifrost

The services that we use for monitoring internally.
subql
subsquid
prometheus
postgres-exporter
alert-manager
cron-services

Upgradability

Is vDOT upgradable? If yes:

Who is authorised to make an upgrade?

Yes, On-chain updates authorised by Bifrost Opengov, with root origin, all root origin calls have to pass through referendums.

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.

Can Bifrost be manipulated by Gov attack?

Here is a case, Parallel Parachain was under Gov attack.

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.

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 requires approximately 14 days to complete the voting period, and a Whitelisted Caller Track 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.

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.

Can an upgrade happen instantaneously or is there a time-lock delay?

No instant upgrade, there must be a time-lock delay, it depends on what democracy track is being used: OpenGov Tracks | Bifrost Docs

Which components are upgradeable?

All parameters are upgradeable on the Bifrost Chain, this requires a Root via democracy.

How does the upgradeability design work? Who manages it and how are upgrades performed?

As mentioned above, upgrade is a root origin, which has to go through a whitelisted referendum. Here is a case, which has to be approved by fellowship member before it goes to referendum.

Does it emit an event when the implementation is updated?

Yes, there is onchain event. https://bifrost.subscan.io/event

Oracle Assessment

DIA oracle price feed address

vDOT Oracle Contract on Hydration: 0x48Ae7803Cd09c48434E3FC5629F15fb76f0b5cE5

Please note this is the contract address for the oracle which is currently live on Hydration and is being utilized for the vDOT money market. To support Moonwell with a vDOT price oracle on Moonbeam, DIA will follow the same deployment procedure to deploy a vDOT price oracle on Moonbeam.

Data Sourcing and Processing:

DIA’s architecture employs a diverse data sourcing strategy, gathering trade data from over 80 on-chain and off-chain first-party sources, namely decentralized and centralized exchanges. Utilizing dedicated scrapers, DIA pulls raw trade data at the individual trade level from these sources, consolidating and processing this information using exclusively open-source and transparent methodologies.

Delivery of vDOT Price Feed:

For sourcing of vDOT trade data, DIA utilizes these first-party exchange scrapers, developed by both DIA and an ever-growing community of contributors. These scrapers are integral in the creation of price feeds for assets across all networks – there is no reliance on third-party premium data providers in the data collection process. DIA has integrated exchange scrapers for BiFrost Stableswap and Hydration Omnipool to source vDOT trade data in its most liquid and highest volume trading pools. In addition, within the Polkadot ecosystem, DIA also has a collection of exchange scrapers in production, enabling data sourcing from Stellaswap, BeamSwap, and Arthswap, should there be a migration of vDOT liquidity into these other top Polkadot ecosystem DEXs. In order for a pool to be included in the vDOT price feed, it must have over 750k in available liquidity. This ensures there is sufficient liquidity within each of the pools included in the price feed to mitigate oracle manipulation attacks at the exchange-level.

On-Chain Price Delivery and Node Infrastructure:

For the seamless delivery of price information on-chain, DIA maintains a robust infrastructure comprising multiple nodes. In the event of node malfunctions, an automatic transition to a new node occurs, ensuring uninterrupted data provision. DIA’s collaboration with a diverse group of leading node providers across different chains enables reliable and high-performance data streaming.

Guarantees for Gas Prices:

The oracles use the on-chain gas price suggested by the RPC node and then add 10% of a safety buffer on top of that to ensure timely execution. Apart from that, no other gas costs are associated with the delivery of DIA oracles to decentralized applications.

Comprehensive Monitoring System:

DIA has implemented a comprehensive monitoring system to continually assess the performance of its data sourcing and delivery processes. This system actively tracks critical metrics, including data source uptime, response times, and data accuracy. In the presence of irregularities or inconsistencies, the monitoring system generates prompt alerts, enabling swift intervention to maintain the overall integrity of the data provided by DIA. This proactive monitoring approach ensures that the data delivered to users remains secure, reliable, and accurate, underscoring DIA’s unwavering commitment to transparency and data integrity.

Updates to Come with DIA Lumina:

DIA is soon launching Lumina. DIA Lumina is a rollup-enabled, trustless oracle network that delivers data feeds for any asset which meets DIA’s asset support criteria to any blockchain. The network is entirely open-source and permissionless, enabling nodes and stakers to participate in distributed data sourcing, secured by crypto-economic and cryptographic mechanisms, including zero-knowledge proofs. DIA’s native Ethereum Layer 2 rollup, ‘Lasernet’, executes all critical oracle operations, ensuring trustless computation and full verifiability. Upon mainnet launch of Lumina, scheduled for H1 2025, decentralized applications across supported chains will be able to access and utilize the vDOT price oracle via the Lumina architecture. To learn more about Lumina, please visit: Introduction to Lumina | DIA Documentation

Bifrost XCM Oracle price feed address

0xEF81930Aa8ed07C17948B2E26b7bfAF20144eF2a

How is the staked asset created?

The staked asset is native token of a network. E.g., DOT is the native staking asset behind vDOT.

On what network does the underlying asset exist?

XCM Oracle: the underlying asset exists on Bifrost. For more information regarding XCM Oracle here.

How can you verify that the amount of the asset that is minted is never more than the amount of the underlying asset that is staked?

The Bifrost SLP module handles staking, unstaking, and maintains the exchange rate between staked tokens and minted vTokens. The entire SLP logic is deployed exclusively on-chain (in Bifrost Runtime). The only way to modify the exchange rate is through an on-chain upgrade, specifically a Runtime upgrade via Bifrost OpenGov. The risk evaluation of Bifrost Gov can be found in the “Upgradability” section.

Audit report of SLP: Audit Report | Bifrost Docs

Is there a way to verify proof of reserves (PoR) on the same network as the market? XCM Oracle?

Yes, the PoR can be queried via ABI using either getTokenByVToken or getVTokenByToken. Both values are captured from Bifrost through XCM and are calculated based on staked assets and total vToken issuance.

Additionally, the XCM Oracle has no admin privileges, and the exchange price is fed exclusively through XCM. This can be verified at:

The contract can only be upgraded through Bifrost Opengov, since the initializer is the Bifrost “sovereign account”, which is a keyless systematic address.

Collateral Enablement

Setting the collateral factor at 0 for the initial listing of vDOT.

Conclusion

This proposal outlines the opportunity for Moonwell Moonbeam deployment to tap into the largest DOT LST. Given that DOT is at present still the largest market on Moonwell Moonbeam deployment, thus onboarding the leading asset within the category- vDOT would tap into a usecase of high demand for existing DOT holders particularly ones holding DOT on Moonbeam. Furthermore, given Moonbeams limited DeFi usecases at present, an opportunity to loop vDOT on Moonwell would be incredibly attractive for dormant capital.

Hello,

I think the vDOT token should be more liquid, veloce and have more utility before even consider lending it, especially on a big protocol like moonwell, could be dangerous even for bifrost. 3 pairs on dexes with little depth and poor liquidity won’t bring value to moonwell only risks imo at the moment.

But it could be a good idea if vDOT grows a lot more, so the discussion should remain open.

Hello,

Thanks for the feedback. Unfortunately, vDOT growth on Moonbeam is somewhat limited to Moonbeams DeFi ecosystem. More importantly, given Moonbeams overall TVL and Moonwells deployment there in terms of overall TVL and per largest collateral asset, i dont see such an issue for vDOT.

Dear Community, we have received some questions directly regarding two issues which have not been posted here however that we wish to address here such that the community is informed and aware.

The two potential issues highlighted were:

  • Bifrost has a technical committee and technical membership group that has only 3 wallets and that still holds significant powers
  • Bifrost uses OpenGov (which is good!) but the democracy pallets are still enabled.

Our response and actions towards these two potential issues are:

  • We have immediately removed all members of council and technicalCommittee through our open gov. After the removal, there will no longer be a possibility for a small group to execute root permissions on the bifrost chain. Please find the proposal which was immediately enacted yesterday 23.01.25: Remove all council and Tech. comm. members

  • We plan to remove gov1-related modules in the runtime upgrade version next month (runtime 1700), including but not limited to: democracy, council, councilMembership, technicalCommittee, technicalMembership.
    After runtime 17000, gov1 will be completely removed from the bifrost chain which we estimate to be executed by latest the second week of February 2025.

We remain available for any further questions.

Best,

Bifrost Team