Maple
  • Welcome to Maple
  • Maple for Lenders
    • Introduction
    • Lending
    • Defaults and Impairments
    • Margin Calls and Liquidations
    • Risk
    • Withdrawal Process
  • syrupUSDC for Lenders
    • Powered by Maple
    • Lending in syrupUSDC and syrupUSDT
    • Commitments
    • Drips Rewards
    • Withdrawals
    • Monthly Updates
    • Pendle Integration
  • SyrupUSDC Rewards Prize Draw Program Summary
  • FAQ
  • Maple for Borrowers
    • Introduction
    • Loan Management
  • Maple for Token Holders
    • Introduction to SYRUP
      • MPL to SYRUP Conversion
      • FAQs
    • SYRUP Tokenomics
      • Staking
      • Staking Smart Contract Details
    • Governance and Voting
    • Drips Rewards
    • Research and Media
      • Podcasts
      • News Articles
      • TV Segments
      • Research Reports
      • Data Dashboards
    • Additional Resources
  • Technical Resources
    • Protocol Overview
      • Background
      • Protocol Actors
      • Smart Contract Architecture
      • Glossary
      • Smart Contract Addresses
      • Fees
      • Composability
      • Proxies and Upgradeability
    • Security
      • Security
      • List of Assumptions
      • External Entry Points
      • Emergency Protocol Pause
      • Protocol Invariants
      • Test Report
    • Loans
      • Loans
      • Fixed Term Loans
      • Open Term Loans
      • Refinancing
      • Impairments
      • Defaults
    • Pools
      • Pools
      • Pool Creation
      • PoolManager
      • PoolDelegateCover
      • Accounting
        • Pool Accounting
        • Pool Exchange Rates
    • Strategies
      • Fixed Term Loan Manager
        • Overview
        • Claims
        • Advance Payment Accounting
        • Accounting Examples
      • Open Term Loan Manager
      • DeFi Strategies
    • Withdrawal Managers
      • WithdrawalManager (Cyclical)
      • WithdrawalManager (Queue)
    • Singletons
      • Globals
      • MapleTreasury
      • Oracles
      • Pool Permission Manager
    • Admin Functions
      • Governor Admin Actions
        • Operational Admin Actions
      • Pool Delegate Admin Actions
      • Timelocks
    • Operations
      • Protocol Deployment
      • Open Term Loan Deployment
      • December 2023 Deployment & Upgrade Procedure
      • Strategies Release Deployment Procedure
    • Interfaces
      • FixedTermLoan
      • FixedTermLoanFactory
      • FixedTermLoanFeeManager
      • FixedTermLoanInitializer
      • FixedTermLoanManager
      • FixedTermLoanManagerFactory
      • FixedTermLoanManagerInitializer
      • FixedTermLoanRefinancer
      • Globals
      • Liquidator
      • LiquidatorFactory
      • LiquidatorInitializer
      • OpenTermLoan
      • OpenTermLoanFactory
      • OpenTermLoanInitializer
      • OpenTermLoanManager
      • OpenTermLoanManagerFactory
      • OpenTermLoanManagerInitializer
      • OpenTermLoanRefinancer
      • Pool
      • PoolDelegateCover
      • PoolDeployer
      • PoolManager
      • PoolManagerFactory
      • PoolManagerInitializer
      • PoolPermissionManager
      • WithdrawalManager (Cyclical)
      • WithdrawalManagerFactory (Cyclical)
      • WithdrawalManagerInitializer (Cyclical)
      • WithdrawalManager (Queue)
      • WithdrawalManagerFactory (Queue)
      • WithdrawalManagerInitializer (Queue)
    • SYRUP Token
      • Architectural Overview
      • Base ERC20 Structure
      • Upgradability
      • Modules
      • Time Locks
      • Recapitalization Module
      • Emergency Module
      • Deployment and Migration Procedure
    • GraphQL API
    • SDK
      • Introduction
      • Installation
      • Protocol Actors
      • Usage Guide
  • Troubleshooting & Support
    • Intercom
  • Maple 1.0
    • Access to deprecated Maple 1.0
  • Legal
    • Borrower MLA
    • KYC
    • Interface Terms of Use
    • Privacy Policy
    • syrupUSDC and syrupUSDT - Risks
    • syrupUSDC and syrupUSDT - Defaults and Impairments
    • syrupUSDC and syrupUSDT - Available Jurisdictions
    • Interface Terms of Use [syrupUSDC and syrupUSDT]
    • Interface Terms of Use [Syrup.fi/convert/ and Syrup.fi/stake/]
    • syrupUSDC and syrupUSDT- Privacy Policy
    • SyrupUSDC Rewards Prize Draw Terms & Conditions
Powered by GitBook
On this page
  • Overview
  • Pre-Requisite Transactions
  • Pool Deployment with the cycle based Withdrawal Manager
  • Pool Deployment with the queue based Withdrawal Manager
  • Pool Activation
  1. Technical Resources
  2. Pools

Pool Creation

Overview

The PoolDeployer contract facilitates the atomic deployment, initialization and configuration of the all contracts necessary to run a Pool:

  • PoolManager, which itself deploys:

    • Pool

    • some number of LoanManagers

  • WithdrawalManager (Cyclical or Queue)

The deployPool function in the PoolDeployer contract is designed to handle the deployment of either cyclical or queue-based withdrawal managers, with the difference being in the configuration parameters used (the functions are overloaded).

Pre-Requisite Transactions

The following pre-requisite configurations are necessary in order to deploy a Pool in the Maple protocol.

  1. Deploying address is a valid Pool Delegate in MapleGlobals.

  2. The provided PoolManagerFactory is a valid factory in MapleGlobals.

  3. The provided WithdrawalManagerFactory is a valid factory in MapleGlobals.

  4. Each provided LoanManagerFactory is a valid factory in MapleGlobals.

  5. The provided PoolPermissionManager is a valid instance in MapleGlobals.

  6. The Pool Delegate does not own a Pool already.

  7. The Pool Asset is a valid asset in MapleGlobals.

  8. The WithdrawalManager withdrawal window is shorter than the cycle duration for cyclical based withdrawal manager.

  9. The start time for the first cycle for the cyclical based withdrawal manager is in the future.

  10. The required pool cover can be transferred from the Pool Delegate to the PoolDelegateCover.

Pool Deployment with the cycle based Withdrawal Manager

To deploy a Pool, PoolDeployer can be called with the following parameters:

  • poolManagerFactory.

  • withdrawalManagerFactory - Address of the cycle-based withdrawal manager factory.

  • loanManagerFactories.

  • asset - The main asset that the pool denominates in.

  • poolPermissionManager.

  • name and symbol for identification of the pool shares token.

  • Configuration params:

    • liquidityCap - The maximum amount of funds asset that can be deposited in the pool

    • managementFeeRate - The rate of the interest that is sent to pool delegates as management fee.

    • poolCoverAmount - The amount of pool cover that the pool delegate is required to deposit.

    • cycleDuration - The duration, in seconds, of each cycle of the withdrawal manager.

    • windowDuration - The duration, in seconds, of the withdrawal window.

    • initialSupply - The initial supply of pool tokens.

    • startTime - The current block's timestamp, in seconds, to denote start of the withdrawal cycle.

Pool Deployment with the queue based Withdrawal Manager

To deploy a Pool, PoolDeployer can be called with the following parameters:

  • poolManagerFactory.

  • withdrawalManagerFactory - Address of the queue-based withdrawal manager factory.

  • loanManagerFactories.

  • asset - The main asset that the pool denominates in.

  • poolPermissionManager.

  • name and symbol for identification of the pool shares token.

  • Configuration params:

    • liquidityCap - The maximum amount of funds asset that can be deposited in the pool

    • managementFeeRate - The rate of the interest that is sent to pool delegates as management fee.

    • poolCoverAmount - The amount of pool cover that the pool delegate is required to deposit.

    • initialSupply - The initial supply of pool tokens.

Pool Activation

Before the Pool can start accepting deposits and operating, the Governor or Operational Admin needs to call activatePoolManager in Globals. This will activate the Pool. This allows the Governor or Operational Admin to set up fee parameters, default parameters, and ensure that the requisite cover has been posted by the Pool Delegate before running the Pool.

PreviousPoolsNextPoolManager

Last updated 6 months ago