BarnBridge DAO

Staking faceted on the Diamond Standard.

DAO Features

01

Users can stake BOND for vBOND. Users can lock BOND for a period up to a year and get bonus vBONDs.

02

The Bonus is Linear, max 1 year, max 2x multiplier. For Example:​

03

Lock 1000 BOND for 1 Year, get back 2000 vBOND Lock 1000 BOND for 6 months, get back 1500 vBOND​

04

Bonus has a Linear decay relative to locking duration. For Example:​

05

Lock 1000 BOND for a year, get back 200 vBOND at T0. After 6 months, balance is 1500 vBOND and after 9 months, the balance is 1250 vBOND.

06

Users can only withdraw their BOND balance after the lock expires.

07

Users can keep BOND unlocked and no bonus is applied, vBOND balance = BOND balance.

08

Users can stake BOND with no lock and earn 1:1 in vBOND.​

09

For users who lock, when the lock period stays the same. Base balances are increase with the added BOND while the multiplier stays the same.​

10

When the lock period is extended the base balance is also increased with the added BOND but the multiplier is recalculated relative to the new lock expiration date.

11

Users can delegate vBOND to another user but there can only be one delegatee at a time. Only the actual balance can be delegated, not the bonus.

12

Delegate Balance cannot be locked. User can take back the delegated vBOND at anytime.​

**Alternative way: Use Weighted averages to calculate the delegatee’s delegated balance

Architecture

Faceted on the Diamond Standard and using Minimum token as inspiration for total supply at a point in time and user balance at a point in time also known as a snapshot.

Thresholds

To create a proposal you will need 1% of the circulating BOND, which would be 100k vBOND at max circulation.
The minimum quorum is 10% of circulating BOND, which would be 1m vBOND. The Minimum acceptance vote is 60%

Proposals

Users that holds enough vBOND can create a proposal. A Proposal Creator’s balance is locked until the vote ends.

  • Can’t Withdraw
  • Can’t Delegate
  • Can’t vote on other Proposals

Proposal Has a maximum number of actions that can be executed.

A proposal can have the following States.

Proposal is formed of:
  • List of Targets (Addresses)
  • List of Values
  • List of Signatures
  • List of Calldata
  • Description
  • Title
  • ID
When the proposal is executed, either all actions are executed or none of them (if one of them reverts the whole proposal execution reverts.)

Proposals state

After being created, proposals enter the warm-up states to allow people to stake their BOND. After warm-up, any user can vote. The voting period starts at the timestamp of the first vote. The first vote has to:

  • Calculate circulating supply at the
    moment and stores it on the proposal
  • Set the proposal state to voting

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 guardian.

Once a proposal becomes executable, any users can call the execute function. If the proposal is not executed during the grace period.

Predefined Proposals

Predefined Proposals are hardcoded into the DAO. They can be started by any user given they meet the requirements for a proposal.

Examples of predefined proposals:
  • Get money out of Treasury
  • Cancel Execution of proposal

Voting

Users can vote using their vBOND balance + delegated vBOND at the voting start timestamp/block. Users can only be pro or against and users can cancel vote or change their vote.