fantome
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    ## The Protocol Votium is a whitelisted protocol where CRV stakers may permanently lock their CRV to receive a derivative called votiCRV. After staking their votiCRV/CRV LP tokens (easier than single staking? downside of getting less CRV locked), they will receive a share of Curve 3CRV fees as well as bribes from Votium distributed weekly on top of liquidity mining VOTI rewards. The token is earned by locking CRV at a xx:xx ratio. ### Peg mechanism To ensure the peg on votiCRV/CRV pool, 15% of the protocol voting power is directed towards the Curve pool for it. Another 5% of the voting power is hardcoded towards a VOTI/ETH pool. This means liquidity mining can focus entirely on rewards CRV lockers. ### VOTI Token VOTI token has multiple fold utility: - revenue share from vlCVX bribes (performance fee) - revenue share from veCRV bribes (performance fee) - VOTI owners can delegate part of the Votium voting power to themselves or another protocol - Governance over the protocol (change of performance fee) ### vlVOTI Spec - Should adhere to OZ [IVotes](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/governance/utils/IVotes.sol) interface - Quick and easy, no Aragon needed, can use Governor contract - Governance will have a linear decay built-in, from proposal start time to end, to prevent voters from waiting till end to vote - Scaled Voting Power based on lock duration (i.e. lockAmount * x/X is Voting power, where x = duration, X = MAXTIME) - Minimum Lock Time: 2 weeks ? - Maximum Lock Time: 32 weeks ? - Low lock times constants: https://twitter.com/bantg/status/1527839201064009728 - Rage quit option - penalty based on lock time left, i.e. 50% of lock time left == 50% penalty ? - tokens from penalty get redistributed to lockers ? - This means the vote locker contract is more like a vault, where users lock and receive a non-transferable share? (ERC-4626) - other option is to just burn the tokens (implicit benefit to lockers, as the totalSupply is reduced) - Voting power is constant throughout lock duration (not like CRV VotingEscrow, more like CVX Locker) - Won't do dumb storing multiple locks like CVX, just keep track of 1 lock history through time - built-in vote delegation - Governance can use the delegated balance - whereas balanceOf will be the user's own voting power ? - this way boosting can use balanceOf / totalSupply and governance can use getVotes / getTotalVotes - Also allows for easier governance - Ability to increase lock duration - only lock owner - Ability to increase lock amount - anyone can deposit for another user - lock for others via permission (via eip712 signature) - other option is to only allow the contract owner to lock for others - But the nice part about using signatures is, can allow other contracts to lock for a user - Especially nice for airdrop locking ```python= # @dev Vote Locker potential interface def lock(): ... # lock gov tokens def lockBySig(): ... # allow someone else to create a lock for a user (particularly smart contracts) def unlock(): ... # unlock gov tokens after lock expiry def quit(): ... # unlock gov tokens w/ penalty def increaseLockTime(): ... # increase lock time, pushing unlock time further into future (only lockee can call) def increaseLockAmount(): ... # increase locked amount, increasing boost balance (voting power of delegate as well) def balanceOf(): ... # boost balance def balanceOfAt(): ... # boost balance at block N def totalSupply(): ... # boost total supply def totalSupplyAt(): ... # boost total supply (returns the same as `getPastTotalSupply`) # IVotes def getVotes(): ... # user vote balance now (how much they've been delegated) def getPastVotes(): ... # get vote balance at block N def getPastTotalSupply(): ... # total vote supply at block N def delegates(): ... # who does user delegate voting power to (only 1 delegate) def delegate(): ... # change delegate (default no-one) def delegateBySig(): ... # delegate using a signature # NOTE: by default, even if a user does not have a delegate, their voting power still counts towards totalSupply # this is equivalent to abstaining. Users must delegate to themselves if they'd like to participate in governance # STRETCH: operates similar to a vault, where boost/votePower is a share (potentially a rebasing vault) # enables gov tokens that are taken as penalty, to be redistributed to remaining lockers # Issue: we don't know when new tokens were deposited ... resolution: assume they were deposited at checkpoint time # See https://github.com/axeolotal/evault/blob/main/contracts/VaultCVXCRV.vy for example of rebasing vault implementation ``` ### Revenue share As the revenue from bribes will be in multiple tokens, there will be an option with a higher management fee where users may elect to have their bribes exchanged for votiCRV/CRV LP tokens to essentially auto-compound bribes and fees into it *(Front running concerns). ### Tokenomics - 73% liquidity mining - 1% whitelist airdrop - 1% Votium users airdrop (Potential additions: veCRV/vlCVX/cvxCRV stakers/uCRV users/0xconcentrator) - 15% team - 5% advisors - 5% treasury Potential token sale? Use funds to bootstrap liquidty in govToken/ETH LP (https://www.paradigm.xyz/2022/04/gda) Potentially allow LP as a voting/boost power ? Two vote lockers ? Single sided gov locker, LP gov/ETH locker? Supply cap, but continual emissions ? Distribution mechanism ? Gauge system ? Airdrop recipients have claimed tokens locked ### Questions? Do we let VOTI users decide how to use the voting power to maximize bribes or is it done automatically to maximize bribes the way Votium already does it? Are there concerns with frontrunning? Reaching a good level of decentralization is important, can it be done? ### Products - Bribe Aggregation - Better bribe platform - Single Sided Rebasing Vaults (cvxCRV, CVX, vlCVX, CRV) - Multichain ???? - would need to start locking CRV for veCRV (veCRV wrapper) - boost selling - convex of multichain - if locking CRV need to maintain contract address across chains ### Threats / Concerns As this doesn't compete with Convex for liquidity, Convex should be supportive of the protocol. Curve will welcome it as it will mean a higher voting decentralization. There needs to be some form of lock up on VOTI that would allow using the voting power for non gauge related votes (no lock up would prove problematic as it would be equivalent to liquid voting which community is against) ### Works - Vinnie redesign, front help from Rav snack - Audit with Chainsecurity/Peckshield - Smart contract by ?? - Curve support stamp

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully