Valantis Documentation
Valantis Website
  • Welcome to Valantis
  • Sovereign Pool
    • The Modules
      • Pool Manager
      • Liquidity Module
      • Swap Fee Module
      • Verifier Module
      • Oracle Module
      • Sovereign Vault
        • Rebase token support
      • Gauge
    • Interacting with Pools
      • Swap Parameters
      • Swap Steps
      • Multi Token Support
      • Deposit Liquidity
      • Withdraw Liquidity
      • Flash Loans
  • Hybrid Order Type (HOT)
    • Understanding HOT: A Graphical Overview
    • HOT API
      • HTTP request parameters
      • HTTP request response
      • Reasoning for Request structure
      • Solver Integration
      • Market Maker integration
    • HOT Smart Contracts
      • Interfaces
      • State variables and roles
      • AMM
      • HOT Swap
      • AMM Swap
      • Hybrid Order Type (HOT) struct parameters
      • Alternating Nonce Bitmap
      • Deposits
      • Withdrawals
      • Deployment Assumptions
    • Liquidity Manager Docs
      • Reference Oracle
      • Deposit
      • Withdraw
      • Signature
    • Swap
      • Swap Context
      • AMM Swap
      • HOT Swap
      • HOT Quote Parameters
        • Bitmap Nonce Instructions
    • Solver Docs
      • Solver Request
      • Simple HOT Swap Example
      • Partial Fill HOT Swap Example
    • Risks and Trust Assumptions
      • Roles
        • Sovereign Pool Manager
        • HOT Manager
        • HOT Signer
        • Liquidity Provider
      • Threats
        • Deposit Sandwich
        • Malicious Price Bound
        • Malicious Signer
        • Mispriced HOT Quote
  • Validly
    • Understanding Validly
    • Swap
    • Deposits and Withdrawals
    • Deployments
  • Stake Exchange (stHYPE AMM)
    • Swap
      • Instant Withdrawals (LST -> Native Token)
      • New Stake (Native Token -> LST)
    • LP Positions
      • LP Withdrawals Instant
      • LP Withdrawal Queued
    • Ratio Fee
    • Lending of Reserves
    • Smart contracts
      • STEXAMM.sol
      • StHYPEWithdrawalModule.sol
      • StexRatioSwapFeeModule.sol
      • DepositWrapper.sol
      • AaveLendingModule.sol
    • Risks and Trust Assumptions
    • Integration examples
  • Deploy and Build
  • Resources
    • Audits
    • Links
    • Get HYPE on HyperEVM
Powered by GitBook
On this page

Was this helpful?

  1. Sovereign Pool
  2. The Modules

Pool Manager

PreviousThe ModulesNextLiquidity Module

Last updated 1 year ago

Was this helpful?

poolManager is the role responsible for assembling the most fundamental modules in the pool. The poolManager also has the ability to update certain pool-level parameters, such as applying an optional Pool Manager Fee.

Only poolManager can call the following functions in Sovereign Pool:

  • setALM Sets the Liquidity Module. To be called only once.

  • setSwapFeeModule Sets the Swap Fee Module. This can be called once every 3 days.

  • setSovereignOracle Sets the Oracle Module. This can be called only once.

  • setPoolManager can assign the Pool Manager role to another address, or revoke the manager altogether to create an immutable Sovereign Pool implementation. In this case the poolManager is reset to the zero address, manager fees are set to 0, and any unclaimed manager fees are transferred to msg.sender.

  • setPoolManagerFeeBips Sets basis point amount of swap fees to be assigned to poolManager. This is represented as a percentage of the fees calculated by the Swap Fee Module. Pool Manager Fees cannot exceed 50% of fees earned by LPs.

  • claimPoolManagerFees Claim all portion of trading fees which are due for poolManager. Upon calling this function, the poolManager can optionally share a portion of the claimable fees to the pool's gauge. There will be a Valantis Protocol gauge implementation that allows a pool to participate in VAL-incentive mechanisms. Custom gauges implementations allows the pool to participate in any external scheme that relies on fee collection/measurement. NOTE: This method works differently in case of rebase tokens:

    • If reserves are not meant to be stored in the pool (sovereignVault ≠ address(this), and the token to be claimed is a rebase token, this method will not work since earned swap fees are not tracked in the pool. In this scenario, sovereignVault would need to implement a custom method to allow poolManager to claim due amount of rebase token fees.

    • If reserves are meant to be stored in the pool (sovereignVault == address(this)), the pool manager fees would be transferred on every swap, hence no need to use a claim function.

Pool Manager in context