Proposal:
To create a simple frontend tool to quickly create an Alchemix position and take a loan back to the chosen asset.
The tool would enable a user to follow this flow:
- select deposit asset (ETH, stablecoins).
- select yield strategy (yield strategy options should be based on the deposit asset the user selects). Reference Contracts
- select loan asset (the contract/frontend will swap the alAsset to the selected asset, alAssets would also be an option. MVP of the product would be to spit out alAssets.)
- select loan amount, denominated in the loan asset (contract/frontend would need to calculate the loan amount based on the max alETH credit available from the new deposit as well as any existing deposit, and account for slippage from the alAsset to the desired asset of choice).
The flow should occur in as few transactions as possible - ideally a single multicall transaction.
The most technical aspect of this proposal is step 4 - in terms of how to calculate slippage and ensure proper swap routing is being utilized, as well as ensuring transactions will not be front-run / sandwiched through alETH price manipulation. The swap from alAssets to other assets is a step that will require either on or off chain calculations/routers, or hard coding swap paths.
It is debatable if this should be included, or if the tool is good without it. Ie, the front end itself could integrate 1inch or Paraswap and run the calculations, instead of doing it within the contract.
The UI should give users the option to skip steps 3 and 4. UI should let users mint their max credit, not just what they deposit (i.e., if they already have an Alchemix position, it should take that into account when offering a maximum mint).
Goal is to keep the UI as simple as possible, like a uniswap style of simplicity. The goal is to let users quickly and easily create an Alchemix position and take a loan, but then they go to the main Alchemix website to manage their loan with more power (self liquidations, withdraws, repays, etc).
Milestones:
- Minimum Viable Product
a. Build a functional and secure tool (contracts, if necessary, and front end) that allows users to deposit to Alchemix and mint up to the maximum alAsset loan available in a single multicall transaction. ($2k paid inALCX)
- Functional integration
a. Update the tool based on feedback and reviews as necessary to be compliant with the spec, follow Alchemix branding, have good UI/UX, etc.
b. Add functionality to the tool to find swap paths and execute the swap through onchain function call as part of the single multicall transaction. ($4k paid in ALCX)
Review/KPIs/Other Considerations
- Alchemix core team will review the tool. Payment for each milestone will be sent once review comments have been addressed in a manner deemed satisfactory.
- Alchemix will reimburse gas expenses for deployments and on-chain tests as necessary, within reason.
- Alchemix will host the tool and link to it through the Utilities page.
- If additional ALCX payment is necessary (due to scope creep, or to reward good work) it will be sourced from the BizGov multisig, which is funded through a portion of core team emissions.
Introduction:
This is an individual contributor, who did contribute to other DeFi and NFT projects in the last 4 years, and even in some projects worked as a solidity lead developer. While I’m an experienced smart contract developer, I’m also strong at frontend/backend development as well. Happy to join and contribute to Alchemix DAO through this system.
Kindly check my background over here.
Linkedin Github
DeFi teams I worked with before.
https://palmswap.org/
https://composable.finance/