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
  • Key Functionality:
  • 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. Element Protocol
  2. Element Protocol Smart Contracts
  3. Custom Balancer Curve

Convergent Curve Pool Factory

PreviousConvergent Curve PoolNextPublic Release Changelog

Last updated 2 years ago

Was this helpful?

  • Contract Name: ConvergentCurvePoolFactory.sol

  • Type/Category: Factory

  • Contract Source:

1. Introduction (Summary)

The Convergent Curve pool factory deploys convergent curve pools. It also stores the address which can collect Element protocol fees from the pool and the Element protocol fee.

2. Contract Details

Key Functionality:

  • create: Deploys a new pool contract and registers it with Balancer V2's vault contract. The Convergent Pool Factory must be given permission by Balancer before being able to register pools.

  • setGovFee: Changes the percent of swap fees that go to the Element protocol.

  • setGov: Changes the address which can collect element protocol fees.

Storage: This contract stores the percent fee the Element protocol collects of swaps and the address which can collect that fee from pools.

3. Key Mechanisms & Concepts

When called the contract will deploy a pool. When that deployment function is called the new pool contract will be registered with Balancer V2. Anyone can deploy a pool from this contract but only privileged addresses can reset the fee or where it goes. It's important to note that the fee switch and collection address changes only affect pools that are deployed in the future, and not any currently existing pools.

4. Gotchas (Potential source of user error)

Pool deployment can fail if the Element protocol fee is set too high or other sanity checks fail in the constructor of the pool.

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

This deployer is locked to Balancer V2 and so becomes non-operational if Balancer V2 is not operational.

https://github.com/delvtech/elf-contracts/blob/main/contracts/factories/ConvergentPoolFactory.sol