Dynamo Finance Documentation

website·Indexed 30 days ago

https://dynamofinance.github.io/

Documentation for Dynamo Finance, featuring its ERC-4626 Vault product. Includes details on smart-contract architecture, strategy governance (submitStrategy, withdrawStrategy, activateStrategy), and audit reports for the vault system.

Tokens
4.8K
Snippets
21
Records
39
Agent score
74%

What's inside Dynamo Finance

  1. Overview of Dynamo Finance Liquidity Strategy

    Dynamo Finance provides a unified liquidity interface that integrates market making and lending to streamline yield aggregation. It utilizes ERC-4626 compliant vaults written in Vyper to ensure security and composability. The platform is specifically designed to enhance the experience for Balancer liquidity providers by combining stableswap liquidity provision with DeFi money markets to create multilayered yield strategies.
  2. Overview of Dynamo Finance Vaults architecture

    Dynamo Finance vaults are designed to optimize stablecoin yields by combining a yield aggregator with a liquidity network. The system uses ERC-4626 compliant vaults to manage liquidity allocations across whitelisted lending markets (such as Aave, Compound, and Fraxlend). The vaults react in real-time to interest rate fluctuations, rebalancing exposure to capture the highest possible yield. For assets with protocol-derived yields (e.g., LUSD), the vaults auto-compound rewards. The architecture is modular, allowing new lending protocols to be added via adapters without redeploying the vaults.
  3. Overview of Dynamo4626 Smart Contract Architecture

    Dynamo4626 contracts function as AssetManagers for Balancer LinearPools and can operate as independent Vaults/Pools outside the Balancer Vault. They implement the ERC-4626 standard and expose a full ERC-20 ABI. The architecture utilizes LP Adapters to forward requests to lending platform-specific adapters, managing assets (e.g., DAI, FRAX, GHO) and issuing shares (e.g., dDAI, dFRAX, dGHO, dUSD) to represent liquidity investments.
  4. Optimize lending yields with Dynamo Finance vaults

    Dynamo Finance provides a decentralized solution to maximize interest rates for supported assets by utilizing capital across multiple whitelisted lending venues (such as Aave, Compound, and Fraxlend). The protocol uses ERC-4626 compliant vaults that react in real-time to interest rate fluctuations and rebalance allocations to the highest-yielding venue. To encourage decentralization, the weight rebalancing process is incentivized, allowing users to submit rebalancing proposals and earn a portion of the generated yield.
  5. Optimize lending yields with Dynamo Vaults

    Dynamo Vaults provide a decentralized mechanism to maximize interest rates for supported assets by automatically rebalancing allocations across various DeFi lending venues (e.g., Aave, Compound, and Fraxlend) in real-time based on interest rate fluctuations. The system is designed to be open, allowing users to participate in the rebalancing process through proposals, which are incentivized by a portion of the yield generated by the vault.
  6. Update vault governance contract

    The Governance#replaceGovernance function allows the vault to change its governance contract. Ensure that the logic to call Vault(self.Vault).replaceGovernanceContract(NewGovernance) is active and not commented out to allow governance migrations.
  7. Deposit assets into a Dynamo4626 Vault

    The deposit function allows an investor to deposit a fixed amount of assets to receive a calculated number of shares. The process involves:

    1. Converting the asset amount to shares.
    2. Transferring assets from the investor to the Dynamo4626 contract.
    3. Calling balanceAdapters to rebalance the vault's holdings across lending platforms based on the current strategy.
    4. Minting shares to the destination address.
    // Conceptual call
    dToken4626.deposit(_asset_amount = 500, _receiver = Investor);
  8. Ensure majority vote for governance approvals

    To prevent a single compromised guard from approving malicious proposals when the number of guards is odd, the governance approval criteria must require a strict majority. The requirement was updated from len(self.LGov)/2 to len(self.LGov)/2 + 1 to ensure a true majority is reached.
    # Fixed logic in Governance.vy
    assert (len(pending_strat.VotesEndorse) >= len(self.LGov)/2 + 1)
  9. Withdraw a pending Strategy proposal

    The original proposer of a pending Strategy can withdraw it at any time. This allows a new Strategy proposal to be submitted immediately without waiting for the current decision period to expire.
    // The original proposer calls this with the strategy's nonce
    withdrawStrategy(Nonce);