Ribbon Finance
  • Introduction to Ribbon Finance
  • Aevo
  • FAQ
    • General
    • DOV Deposits
    • DOV Withdrawals
    • DOV Trading and options
    • Ribbonomics
  • Dune dashboards
  • Contribute
  • Security
  • Ribbon Theta Vaults
    • Introduction to Theta Vaults
      • Strike Selection and Expiry
      • Options Architecture
      • Options Settlement
      • Auctions
      • Risk profile
      • Fees
    • Theta vaults architecture
    • User guides
      • How to deposit
      • How to withdraw
      • How to pause and resume
      • How to stake, unstake vault shares and claim rewards
      • How to transfer vault positions
      • How to participate in Paradigm Auctions
      • How to redeem oTokens
  • RIBBON EARN
    • Introduction to Ribbon Earn
    • Ribbon Earn USDC
      • Risk-Free Rate
      • Twin win strategy
      • Vault specifications
      • Eligibility
      • Fees
    • Ribbon Earn stETH
      • What is a dolphin strategy?
      • Vault specifications
      • Risk profile
      • Fees
  • RIBBON LEND
    • Introduction to Ribbon Lend
      • Yields from unsecured lending
      • No lockups
        • Pool status
        • Default
      • Off-chain enforcement / credit underwriting
      • Built-in insurance
      • Fees
  • ribbon treasury
    • Introduction to Ribbon Treasury
      • Why Ribbon Treasury?
      • Partners
      • How to get involved
  • Ribbonomics
    • Overview and RBN tokenomics
      • Vote-Escrowed RBN
      • Fee Collection and Distribution
      • Liquidity Gauges and RBN Emissions
      • Gauge Weight Voting
      • Bribes
        • Guide to Boost Bribing
          • For Bribers
          • For veRBN Holders
      • Upgrades
    • How to lock RBN, boost and claim protocol revenues
  • Developers
    • Deployed Contracts
    • Ribbon Subgraph
Powered by GitBook
On this page
  • Unlock
  • Implementation Details

Was this helpful?

  1. Ribbonomics
  2. Overview and RBN tokenomics

Vote-Escrowed RBN

PreviousOverview and RBN tokenomicsNextFee Collection and Distribution

Last updated 3 years ago

Was this helpful?

Participating in Ribbon DAO governance requires that an account have a balance of vote-escrowed RBN (veRBN) or regular RBN. veRBN is a non-standard ERC20 implementation, used within Governor Bravo voting system to determine each account’s voting power.

veRBN is represented by the VotingEscrow contract, deployed to the Ethereum mainnet at:

veRBN cannot be transferred. The only way to obtain veRBN is by locking RBN. The maximum lock time is two years. One RBN locked for two years provides an initial balance of one veRBN.

A user’s veRBN balance decays linearly as the remaining time until the RBN unlock decreases. For example, a balance of 4000 RBN locked for 6 months provides the same amount of veRBN as 2000 RBN locked for one year, or 1000 RBN locked for two years.

Unlock

There are two options for unlocking locked veRBN:

  1. waiting until your vote lock expires and unlocking penalty-free

  2. unlock RBN whenever you want at the cost of paying a penalty. The penalty is calculated by taking the minimum between .75 and (time left until unlock) / 2 years. For example if you have 1 year left on your lock, the penalty is min(.75, 1/2) = 0.5. So the penalty is 50%. All penalties will be redistributed to the remaining lockers pro-rata.

Implementation Details

User voting power 𝑀𝑖𝑀𝑖wi is linearly decreasing since the moment of lock. So does the total voting power π‘Š. In order to avoid periodic check-ins, every time the user deposits, or withdraws, or changes the locktime, we record user’s slope and bias for the linear function 𝑀𝑖(𝑑)𝑀𝑖(𝑑)wi(t) in the public mapping user_point_history. We also change slope and bias for the total voting power π‘Š(𝑑)π‘Š(𝑑)W(t) and record it in point_history. In addition, when a user’s lock is scheduled to end, we schedule change of slopes of π‘Š(𝑑)π‘Š(𝑑)W(t) in the future in slope_changes. Every change involves increasing the epoch by 1.

This way we don’t have to iterate over all users to figure out, how much should π‘Š(𝑑)π‘Š(𝑑)W(t) change by, neither we require users to check in periodically. However, we limit the end of user locks to times rounded off by whole weeks.

Slopes and biases change both when a user deposits and locks governance tokens, and when the locktime expires. All the possible expiration times are rounded to whole weeks to make number of reads from blockchain proportional to number of missed weeks at most, not number of users (which is potentially large).

For more details, please visit .

0x19854C9A5fFa8116f48f984bDF946fB9CEa9B5f7
curve docs