The DAM Finance core contracts implement an over-collateralised stablecoin protocol which draws inspitation from MakerDAO. The DAM codebase is based upon the MakerDAO codebase and we have made changes were necessary to facilitate our requirements. Keys changes we have made are:
- 1.Omni-chain credit token d2o is issued as an omni-chain stablecoin, meaning that it can be transferred to blockchains other than the one it originated on.
- 2.Linked Multi-collateral vault Allows users to pool all their collateral in a single vault instead of having a vault for each type of collateral. The impact of this is that users can take advantage of collateral which may not be suitable for minting an over-collateralised stablecoin in isolation. This also means that each vault has a unique weighted average liquidation LTV based upon the LTV for each of the constituent tokens making up the vault collateral.
- 3.Leverage Users can re-deposit d2o (or d2os) back into their vaults to mint more d2o. The protocol understands that this is a leveraged token and as such affects the way the weighted average LTV is calculated for the vault. Using a leveraged token as collateral allows the minting of more d2o but changes in value of the underlying collateral (i.e. not the d2os) have a greater impact on the portfolio value of the vault, due to its leveraged nature. There is a protocol-wide leverage cap set by the
lockedAmountLimitfor d2os in
LMCV.sol. This value will occasionally need updating so that protocol-wide leverage is capped at 2x.
- 4.Minting fee We have added the capability to charge a minting fee when d2o is minted.
- 5.Peg stability module Users can deposit certain stablecoins in the peg stability module which allows them to mint d2o 1:1 or at a near 1:1 ratio. Clearly, if a user needs to re-collateralise their vault then depositing stablecoins is the most effective way to do that.
- 6.Staking contract To incentivise secondary market liquidity for d2o we intend to create a staking contract for holders of d2os, i.e. those who have deposited their d2o into a stableswap pool. Rewards will accrue to those participating in the DAM staking contract.
The LMCV, or linked multi-collateral vault, is the main accounting system for the protocol. The LMCV has the following functionality:
- Keeps track of how much collateral each user has deposited with the platform.
- Keeps track of how much collateral each user has committed to a vault. Collateral committed to a vault can be borrowed against.
- Keeps track of the debt balance / d2o issued to each user.
- Stores an accumulated stability rate to keep track of how much interest is payable on issued d2o.
- Handles the main operating variables for the protocol such as debt ceiling, fees and leverage ratios on a per collateral basis.
- Provides an API for checking whether a user is within their credit limit.
- Provides an API for liquidations, as well as minting unbacked d2o or burning issued d2o.
- Provides an API for moving unlocked collateral or d2o between accounts.
- Provides an admin interface for editing collateral types or and collateral information.
Based upon the Peg Sability Module from Maker DAO. The Peg Stability Module in the DAM protocol allows users to swap stablecoin collateral type directly for d2o at a fixed rate, rather than borrowing it. This is the mechanism we use for minting d2o.
Whilst the core contracts allow for functionality such as multiple collateral types and leverage, for the first version of DAM, we are simply using the core contracts as an accounting system to mint d2o. The advantage of this approach is that we can easily add lending funcationality by changing a few configuration options within the main contracts.