BarnBridge DAO: Built for the Future
For an overview on our DAO First approach please read DAO First: A new governance model
Coming in Q1 2021, we will be releasing the BarnBridge DAO. This will grant voting rights to the $BOND holders and lay the foundation for the future products: SMART Yield and SMART Alpha. The BarnBridge DAO will be the source of minting of the products on top of the Blockchain and it will be up to the DAO to actually launch the products into the wild.
While we have been operating under the Launch DAO thus far, the original plan was to get the BarnBridge DAO live and empower the community by enabling decentralized decision making. We want to move away from the Launch DAO so that the community can assume responsibility over the protocol.
The Launch DAO was governed by $BBVOTE tokens and controlled by the project founders, seeders, and advisors. The BarnBridge DAO will be governed by $BOND tokens and managed by the community. It will become the core component of the BarnBridge platform.
The creation of this new DAO will usher in the team’s collective thinking around how governance works at scale on Blockchains. We pulled from the two governance models that are working at scale, i.e. Bitcoin and Ethereum, and pushed most governance off-chain. We tried to streamline the online voting part and make it an elegant process as soon as it’s activated. Accessible to the newbie or the professional.
The Diamond Standard 💎
Along with the explosion of the DeFi space over the last year, decentralized governance has become popular. DAOs are almost becoming a standard type of governance for the industry.
While DAOs are proving to be an efficient coordination mechanism, there are still some limitations to the ability for DAOs to seamlessly upgrade smart contracts. The typical industry approach to upgrading smart contracts usually requires redeploying whole contracts for incremental changes.
BarnBridge has chosen to adopt the Diamond Standard, a modular approach to deploying smart contracts, that allows greater flexibility in developing and adding incremental upgrades.
- Your contract exceeds the 24KB maximum contract size. You may have related functionality that it makes sense to keep in a single contract, or at a single contract address. A diamond does not have a max contract size.
- A diamond provides a way to organize contract code and data. You may want to build a contract system with a lot of functionality. A diamond provides a systematic way to isolate different functionality and connect them together and share data between them as needed in a gas-efficient way.
- A diamond provides a way to upgrade functionality. Upgradeable diamonds can be upgraded to add/replace/remove functionality. Because diamonds have no max contract size, there is no limit to the amount of functionality that can be added to diamonds over time. Diamonds can be upgradeable or immutable. It is also possible to make an upgradeable diamond and then at a later time remove its upgrade capability.
BarnBridge is intent on leading the way in the adoption of new approaches, technologies, and standards that have been proven superior to the general way of doing things. Our BOND staking contract build on the Diamond Standard is called Barn. The contract is complementary to the DAO and the DAO relies on it to read information about voting power. The DAO will have full control over the Diamond used by the Barn which means it can only be upgraded through the proposals accepted by the DAO.
We can’t stress enough how excited we are to usher in a Diamond that is controlled by a DAO. This is a massive improvement for UX/UI in the space. The ability for the community to add new functions to a smart contract without having to upgrade the entire framework is a game changer. We are looking forward to how the community uses this new and powerful tool.
*Before we get into the DAO specifications, we want to state not all of them are final yet. There still might be some changes made, especially with the thresholds.
It’s also important to remember that the $BOND token supply is limited to 10,000,000 (ten million).
Now let’s go through the DAO specs in detail.
The voting on the DAO will be performed with the non-tradable vBOND tokens. To get vBOND, users will have to stake or lock their BOND tokens. Here are the 3 use cases with $BOND and $vBOND.
Users can lock BOND for vBOND.
- Users can lock BOND for a period of up to 1 year and get bonus vBOND.
- The bonus is linear — max 1 year, max 2x multiplier. Example: lock 1000 BOND for 1 year and get 2000 vBOND; lock 1000 BOND for 6 months and get 1500 vBOND.
- Bonus has a linear decay relative to locking duration. Example: lock 1000 BOND for 1 year and get 2000 vBOND at T0; after 6 months the balance is 1500 vBOND; after 9 months the balance is 1250 vBOND.
- Users can lock and the period is the same:
- base balance is increased with the added BOND- multiplier stays the same
- Users can lock and the period is extended:
- base balance is increased with the added BOND- multiplier is recalculated relatively to the new lock expiration date
- Users can only withdraw their BOND balance after the lock expires.
Users can stake BOND for vBOND
- Users can stake BOND tokens without locking them. No bonus is applied. vBOND balance — BOND balance.
- Users can stake more BOND and get the same amount of vBOND
- Users can redeem their BOND tokens at any time.
Users can delegate vBONDs to other users
- There can be only one delegatee at a time.
- Only actual balance can be delegated, not the time lock bonus.
- Delegated balance cannot be locked.
- Users can take the delegated vBONDs at any time.
- Create proposal: 1% of BOND staked in Barn (Barn is the name of the DAO Staking Smart Contract)
at 1m BOND staked = 10k vBOND
- Minimum quorum: 40% of BOND staked in Barn
at 1m BOND staked = 400k vBOND
- Minimum acceptance: 60% of votes
at 400k vBOND voted — 240k votes for
Users that hold enough vBOND can create a proposal. A proposal creator can only have one active proposal at a time but can vote on other proposals.
- To create a proposal you will need to have 1% of the BOND staked in Barn.
- The minimum quorum is 40% of staked BOND.
- The minimum acceptance vote is 60%.
Proposal is formed of:
- List of targets (addresses)
- List of values
- List of signatures
- List of calldata
Proposal has a maximum number of 10 actions that can be executed. When the proposal is executed, either all actions are executed or none of them. If one action reverts, the whole proposal execution reverts.
After being created, proposal enters the Warm-up state to allow people to stake their BOND.
After Warm-up, any user can vote. The voting period starts immediately. At the first incoming vote if the creator’s balance falls below the 1% threshold the proposal is cancelled automatically or it can be cancelled by calling a function.
Once a proposal is accepted, it will have to wait in a queue before it can be executed. During this time, it can be canceled by:
- the creator;
- anyone if the creator’s balance falls below the 1% threshold;
- cancellation proposal.
Once a proposal becomes executable, any users can call the execute function. If the proposal is not executed during the Grace period, it is marked as expired and cannot be executed anymore.
Each proposal should include some documentation, etc.
Cancellation proposal is a special type of proposal with the 50% of staked BOND acceptance criteria. It can be created only during the Queue period.
A regular proposal can only have one associated cancellation proposal at any given time.
Anyone can vote on the cancellation proposals. Allowed voting actions are:
- vote for or against;
- cancel vote;
- change vote.
When the cancellation proposal starts, a new snapshot for voter balances is taken. Cancellation proposal’s duration is never greater than the initial proposal’s Queue period. Cancellation proposal’s end time is the same as the initial proposal’s end time.
When someone goes to execute the initial proposal — there is a check if a cancellation proposal that met its acceptance criteria exists.
- Users can vote using their vBOND balance + delegated vBOND at the voting start timestamp/block.
- The votes can only be pro or against.
- Users can cancel and change their votes.
You may have noticed we didn’t build a guardian into our DAO system like others out there. This falls back on our belief that most of the governance will happen off chain. We did include a “Cancellation” vote mechanism which should suffice for protection in the event a bug is found during the queued period.
Any future products can be launched with a Guardian function on the specific contract (given to a multisig or DAO for a specific amount of time or perpetuity) but we didn’t make it a prerequisite of any sort, but believe that the community should come to a status quo on how they want products to be launched.
The BarnBridge DAO will undergo a thorough internal review, starting with the dev team — the smart contract developers that worked on the actual code, and those that are working on the other products — and followed by our advisors from Atpar.
An external audit process will begin this month, with Haechi and Quantstamp both auditing all of the DAO contracts. The results from the audits will be available before launch, approximately by the end of January Aside from these, we trust our community to review all of the open sourced code we publish.
So why are we moving to the BarnBridge DAO? It was always the plan and we wanted to launch the DAO that $BOND was meant to govern. We want to move away from the Launch DAO so that the community has more say in what the project should do. This will include proposals to the DAO that $BOND holders will then vote on. BarnBridge is on track to being a truly decentralized and community-led project.
Your vote counts.
We wanted to give a big shout out to Casian Lacatusu who worked tirelessly on the contracts and took all of our concerns to heart and made adjustments when needed. We also can’t forget to send love to Bogdan Gheorghe, the man of many hats in this project, we would be lost with out him.