Lumin Finance proposal to add a gauge for the LUMIN/rETH 80/20 pool on Arbitrum.
• Website: Lumin Finance
• Github Page: Github (private until release, private access granted on request)
• Communities: Telegram
Lumin Finance is a decentralized peer-to-peer fixed rate lending and borrowing protocol. Launching on the Arbitrum Blockchain, powered by the $LUMIN token. Unlike most DeFi lending protocols, the lender, borrower and staker in the protocol are rewarded for their participation, in a way that will (eventually) be administered by a DAO.
Lumin Finance offers some unique aspects with our platform, including fee sharing, buyback-and-distribute (BBD) and buyback-and-burn (BBB). These mechanisms create a powerful circulation flow and a deflationary supply for the LUMIN token.
Balancer 80/20 pools are a very capital-efficient way to scale liquidity, while incentives are helpful to bootstrap liquidity. Lumin Finance sees the Balancer 80/20 pool as a perfect fit for the LUMIN token, and as the goal is to turn the pool LP token into the Protocol’s governance/staking token, Lumin Finance’s objective with the pool incentivization is to reward LUMIN token holders that decide to become LPs, boosting their returns. Lumin Finance will incentivize the pool through Hidden Hand voting incentive markets.
Lumin tokens serve as the governance token for the Lumin Finance protocol. Lumin token holders can vote on governance proposals through Lumin Finance’s Snapshot. There is a plan to move to a DAO setup after launch.
The LUMIN token does not rely on any external oracles. Lumin Finance protocol uses so-called “price feed proxies” for reading asset values, with which loans and collateral valuation is determined. Lenders define which price feed proxies they accept for a given asset, borrowers choose one price feed proxy for each asset upon creating the loan.
These proxies cannot be changed for the duration of the loan, so it is impossible to switch between e.g. Chainlink and DIA for a specific asset used in the loan.
Price feed proxies are upgradeable contracts, but it is impossible to change the address of a given price feed proxy.
The price feed proxy for Chainlink has been audited by Krum Pashov.
Finding M-03 relates to the Chainlink price feed oracle: audits/solo/pdf/Lumin-security-review.pdf at master · pashov/audits · GitHub
This finding has been partially resolved, with the justification for not resolving the finding regarding stale prices documented here: Lumin Finance Smart Contract Audit: Commented results | by Lumin Finance | Nov, 2023 | Medium
A security audit of the lending and borrowing scope has been performed by Krum Pashov. The audit report can be found here: audits/solo/pdf/Lumin-security-review.pdf at master · pashov/audits · GitHub . Lumin has commented these findings here: audits/solo/pdf/Lumin-security-review.pdf at master · pashov/audits · GitHub
Audits are planned for each additional DeFi-related scope (see e.g. “Oracles”). A final audit over the full scope is planned when the project has implemented the full roadmap, before management will be handed over to the DAO.
Access to lumin contracts are managed by an Access Manager. Access Control - OpenZeppelin Docs
The following roles are defined:
LUMIN_ADMIN_ROLE: For administration of the contracts (upgrade, pause and unpause).
ASSET_ADMIN_ROLE: For adding newly supported assets and price feeds, plus enabling / disabling assets when irregularities are noticed.
LOAN_MANAGER_ROLE: For managing asset holdings. This role is only given to the Loan Manager contract of Lumin, and is not controlled by a person or team.
Any protocol user can perform liquidations.
No history for LUMIN tokens, as it is a new launch. The Balancer pool was seeded on launch, as it will be the primary liquidity pool for the LUMIN token.
This pool will be the primary source of liquidity for LUMIN on Arbitrum, and the 80/20 setup was chosen for governance as part of a future protocol upgrade.
The Balancer Maxi LM Multisig eth:
0xc38c5f97B34E175FFd35407fc91a937300E33860 will interact with the GaugeAdderv4 at
0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd and call the addGauge function with the following arguments: