Element Protocol Docs
GovernanceCommunityXForum
  • Element Protocol Documentation Portal
  • Getting Started
    • Buying Fixed Rate Assets
    • Earning Variable Rates
    • Providing Liquidity
    • FAQ
    • Glossary
  • Element Protocol
    • Concepts Overview
    • Principal Tokens
      • Use Cases
    • Yield Tokens
      • Use Cases
    • Market Forces
    • Providing Liquidity
    • Element Protocol Smart Contracts
      • Core Protocol Contracts
        • Wrapped Position
        • Tranche
        • Tranche Factory
        • Interest Token
        • User Proxy
      • Integration Contracts
        • Yearn Vault Asset Proxy
      • Custom Balancer Curve
        • Convergent Curve Pool
        • Convergent Curve Pool Factory
  • Developers
    • Public Release Changelog
    • Elf SDK
    • Deployment Guide
    • Security
      • Oracles
    • Github
  • Governance (Council)
    • Council Protocol Overview
      • Voting Vaults and Delegation
      • Governance Steering Council (GSC)
    • Council Protocol Interface
      • Overview
      • Proposals
        • Guide: Voting on a Proposal
      • Delegate
        • Guide: Delegating Voting Power
          • DAO (Social) Proposal Template
          • Protocol (Executable) Proposal Template
    • Element Governance Proposal Framework
      • Guidelines of the Element Governance Proposal Framework (EGPF)
      • Venues For Participating in Governance & Discussion
      • What Governance Controls Today
        • Current Protocol Parameters
        • Current Governance Parameters
      • Current Governance Roles
      • The Governance Process
        • Proposals & Proposal Types
        • The Proposal Process Overview
        • The Proposal Lifecycles
          • DAO (Social) Proposal Lifecycle Breakdown & Criteria
          • Protocol (Executable) Proposal Lifecycle Breakdown & Criteria
        • Off-chain Voting Information (Snapshot)
        • On-chain Voting Information
    • Council Protocol Smart Contracts
      • Core Voting
      • Voting Vaults
        • Locking Vault
        • Vesting Vault
        • Governance Steering Council (GSC) Vault
      • Timelock
      • Treasury
      • Spender
      • Optimistic Grants
      • Optimistic Rewards
      • Simple Proxy
    • Airdrop
      • Storage
      • Guide: Discord ZK Claim Flow
      • History
    • Glossary (Governance)
    • Audits
    • Deployed Contract Addresses
  • ELFIVERSE
    • Guide: Mint Your ELF NFT
  • Community
    • Discord
    • Blog
    • X
    • Telegram Announcements
    • Youtube (Community Calls and Video Guides)
Powered by GitBook
On this page
  • 1. Introduction (Summary)
  • 2. Contract Details
  • 3. Key Mechanisms & Concepts
  • 4. Gotchas (Potential source of user error)
  • 5. Failure Modes (Bounds on Operating Conditions & External Risk Factors)

Was this helpful?

  1. Governance (Council)
  2. Council Protocol Smart Contracts

Treasury

PreviousTimelockNextSpender

Last updated 2 years ago

Was this helpful?

  • Contract Name: Treasury.sol

  • Type/Category: Treasury/Governance

  • Contract Source:

1. Introduction (Summary)

The Treasury contract is an isolated holder of Element governance funds that allows an authorized address to move them. This isolation improves the security of the system and prevents a bug from compounding to total fund loss.

2. Contract Details

The contract only contains the functionality to allow an authorized address to move the ERC20 and ETH tokens it contains; to set ERC20 allowances or to make generic calls. The stored data is the authorized address.

3. Key Mechanisms & Concepts

The contract receives a call from an address and then checks if it is authorized to move funds. If the address is authorized, it makes an ERC20 transaction that can move funds or set allowances.

4. Gotchas (Potential source of user error)

  • Sending the funds to the wrong address (person or contract) or approving the wrong contract can result in the loss of funds.

5. Failure Modes (Bounds on Operating Conditions & External Risk Factors)

  • It is important to note that, if the ownership of the contract is reset, it should be reset to an address that can make calls or the funds in the treasury will be frozen in place.

https://github.com/delvtech/council/blob/main/contracts/features/Treasury.sol