LogoLogo
  • ⚒️Introduction
  • Overview
    • 📖Public Repositories
    • ⛓️Smart Contracts Addresses
      • ⛓️Mainnet
      • 🟣Polygon
      • 🔴Optimism
      • 🔵Arbitrum
      • 🕸️Other Sidechains and L2s
  • Developer Guides
    • 💱Using Transmuter
    • 💸Integrating Savings Contracts
    • ⚡Flash Loans
    • 🍶Liquidations in the Borrowing Module
    • 🌻Auto-Leverage and Capital-Efficiency in the Borrowing Module
  • Tools
    • 🔌API - Accessing Angle Data
  • Governance and Cross-Module Contracts
    • ⚖️AgToken - Stablecoin Contracts
    • 🛣️Router - Combining Protocol Interactions
    • 💫FlashAngle - Instant AgToken liquidity
    • 💗CoreBorrow - Access Control Manager
    • 🗳️ANGLE and veANGLE - Governance Token
  • Borrowing Module Contracts
    • 🔜Architecture Overview
    • 📀Smart Contracts Docs
      • 🏦VaultManager - Borrowing AgTokens
      • 👮Treasury - Stablecoin Accounting
      • 🔱Oracles - Getting Price Feeds
      • 🗡️Settlement - Closing VaultManager contracts
      • 💱Swapper - Helper for Liquidations and Auto-Leverage
    • 🔬Implementation Details
Powered by GitBook
On this page
  • 1. Introduction
  • 2. Contracts Details
  • 3. Key Mechanisms and Implementation

Was this helpful?

  1. Governance and Cross-Module Contracts

ANGLE and veANGLE - Governance Token

Angle Protocol governance token and its locked version

PreviousCoreBorrow - Access Control ManagerNextArchitecture Overview

Last updated 2 years ago

Was this helpful?

  • Contracts Folder: dao/

  • Contracts Source:

  • ABIs:

1. Introduction

The dao/ folder of the code contains all the files and contracts related to Angle governance. It comprises the following contracts:

  • ANGLE.sol: the contract for the protocol's governance token: the ANGLE token. This contract was forked from OpenZeppelin's ERC20Votes contract.

  • VotingEscrow.vy: the contract for locking ANGLE tokens. This contract was forked from Curve . Compared with Curve, this contract was made upgradeable.

For details about the veANGLE token and its uses with respect to the ANGLE token, you can refer to in the docs.

2. Contracts Details

The veANGLE contract was made upgradeable by simply adding an initialized variable that is set to true in the constructor as well as in the initialize function. This prevents the contract's implementation from being taken over and the initialize function to be called twice.

3. Key Mechanisms and Implementation

For a more detailed documentation about the functions in the ANGLE contract, the following documentation links from Compound and OpenZeppelin may be useful:

About the veANGLE contract, technical documentation can be found on Curve's website:

🗳️
https://github.com/AngleProtocol/angle-core/tree/main/contracts/dao
votingEscrow.vy contract
this section
Governance - OpenZeppelin Docs
Compound | Docs - Governance
Curve DAO: Vote-Escrowed CRV — Curve 1.0.0 documentation
Logo
Logo
Logo