DeFi Concepts
Ve3,3 Guide
ve3,3 (Vote Escrowed 3,3) is a tokenomics and governance model that forms the backbone of our DeFi platform. It’s designed to align user incentives with long-term protocol health and provide a framework for decentralized decision-making.
Key features:
- Token locking mechanism for voting power and rewards
- Time-weighted governance rights
- Reward distribution based on lock duration and amount
Core Components
-
Token Locking Contract
- Allows users to lock tokens for a specified duration
- Calculates voting power based on lock amount and duration
- Manages unlock schedules and early withdrawal penalties
-
Gauge System
- Distributes rewards to different liquidity pools
- Voting mechanism for reward allocation
-
Reward Distribution
- Handles emission of protocol tokens to locked token holders
- Integrates with Merkl for efficient reward distribution
-
Voting Mechanism
- Allows ve3,3 token holders to participate in governance decisions
- Includes proposal creation, voting, and execution logic
Integration Points
Smart Contracts (polygon)
-
$RETRO Token
- Address:
0xBFA35599c7AEbb0dAcE9b5aa3ca5f2a79624D8Eb
- The main token of our ecosystem
- Address:
-
veRETRO
- Address:
0xB419cE2ea99f356BaE0caC47282B9409E38200fa
- Implements the vote-escrowed mechanism
- Key functions:
create_lock(uint _value, uint _lock_duration)
increase_amount(uint _tokenId, uint _value)
increase_unlock_time(uint _tokenId, uint _lock_duration)
- Address:
-
VoterV3 (proxy)
- Address:
0xAcCbA5e852AB85E5E3a84bc8E36795bD8cEC5C73
- Manages voting and gauge weights
- Key functions:
vote(uint256 _tokenId, address[] memory _poolVote, int256[] memory _weights)
distribute(address[] memory _gauges)
- Address:
-
GaugeFactoryV2 (proxy)
- Address:
0xbDEe7Cc84ef62B2C507ceEC31AaC7a975bF8b20F
- Creates and manages gauges for regular pools
- Address:
-
GaugeFactoryV2_CL (proxy)
- Address:
0x9AE721D3Bae21FA42AA11eD7E4AB0b9b7263DE52
- Creates and manages gauges for concentrated liquidity pools
- Address:
-
BribeFactoryV3 (proxy)
- Address:
0x601b14aCb5C340f2a12Ee9D3BE0B0828E5619081
- Manages the creation and distribution of bribes
- Address:
-
RewardDistributorV2
- Address:
0x072ba11A17ac13EfF9F566d6d54f4887BAB94d3C
- Handles the distribution of rewards
- Address:
-
Minter (proxy)
- Address:
0x003D505Aff54FB7856aA6Bcb56a8397F5aF89479
- Responsible for minting and distributing new tokens
- Address:
-
FeesDistributorAutomation
- Address:
0xF8ae07c51f2020Fb8279309c08336e36d0275573
- Automates the distribution of fees
- Address:
-
Permissions Registry
- Address:
0xE14261E4c0347f6dfc74D515cA48BAA6A818EDfA
- Manages permissions and access control
- Address:
Integration Points
When integrating with these contracts, consider the following:
-
Locking Tokens
- Use the
veRETRO
contract to lock $RETRO tokens - Implement frontend interfaces for locking, increasing lock amount, and extending lock time
- Use the
-
Voting on Gauges
- Interact with the
VoterV3
contract for voting on gauges - Implement a voting interface that allows users to allocate their voting power
- Interact with the
-
Managing Gauges
- Use
GaugeFactoryV2
andGaugeFactoryV2_CL
for creating and managing gauges - Implement interfaces for gauge creation and management
- Use
-
Handling Bribes
- Integrate with
BribeFactoryV3
for bribe creation and distribution - Create interfaces for users to place and claim bribes
- Integrate with
-
Reward Distribution
- Use
RewardDistributorV2
andMinter
contracts for reward calculations and distribution - Implement reward claiming interfaces
- Use
-
Fee Distribution
- Integrate with
FeesDistributorAutomation
for automated fee distribution - Display fee distribution data in the frontend
- Integrate with
Customization and Modification
When modifying the system:
- Always use the proxy pattern for upgradeable contracts
- Update the
Permissions Registry
when changing access controls - Ensure new implementations are compatible with existing proxies
- Thoroughly test all modifications, especially those affecting reward distribution or voting mechanics
Interacting with External Systems
-
Merkl Integration
- Interface with Merkl through the
RewardDistributorV2
contract - Implement Merkl’s proof generation and verification for efficient reward claiming
- Interface with Merkl through the
-
UniV3 Fork Integration
- Use the provided UniV3 fork contracts (Factory, Router, etc.) for liquidity provision and swaps
- Ensure compatibility between the ve3,3 system and the UniV3 fork