Title: [RFC] [Repay loan with any token or multiple tokens]
Author(s): [Wido (https://www.joinwido.com/)]
Submission Date: 2023-03-01T00:00:00Z
Simple Summary
This proposal outlines a solution to improve the user experience of Euler Finance’s loan repayment process. The proposal suggests building smart contracts and updating the frontend app to enable loan repayment with any token or multiple tokens from the user’s wallet. The proposal includes three milestones: creating a detailed UI mock, launching a testnet version, and launching the final product.
Motivation / Problem
Euler is already ahead of most DeFi protocols in terms of transaction experience. It provides transaction bundling that greatly improves the user experience. However, we believe that it can be even better.
Specifically, users cannot repay their loans with any token or multiple tokens in their wallet. As shown in the screenshot below, the user has 0.003888559288980439 wstETH
tokens as debt but only 0.003885292756693672 wstETH
tokens in their wallet. The user is missing 0.000003266532287 wstETH
to repay their debt, and the debt amount grows with every new block.
- To repay this debt, the user must swap another token in their wallet for wstETH and then repay. This requires the user to leave Euler’s app and use 3rd party swap provider like Uniswap or 1inch.
- Given the amount of debt balance grows with new blocks, it’s challenging for the user to calculate how much
wstETH
they need to buy to ensure they get enough to repay their loan and are not left with some extra dust.
Proposed Solution
The Wido team proposes to build smart contracts and update Euler’s web app frontend code to enable loan repayment with any token in the user’s wallet or multiple tokens in the user’s wallet. We also propose to let the user deposit any token from their wallet while selecting the “target” collateral inside Euler. The app would take care of swapping the token from the user for the desired collateral.
A detailed explanation of those features follows:
-
Repay the loan with any token — users can select any token from their wallet after clicking repay inside the Quick Actions modal.
- There is a new “Repay with” input form, which lists all tokens the user currently has in their “Wallet Balance”
- The user can select any token they have in their wallet
- The user can define how much of the token to use to repay their loan
- The UI would tell the user how much of the loan is left after the repayment transaction
- We are attaching a simple UX mock to visualise how it would look. We would follow the existing UI style of Euler.Finance web app, to ensure it feels natural to Euler users
-
Repay loan with multiple tokens — users can select multiple tokens from their wallet after clicking repay inside the Quick Actions modal. This is an extension of the previous feature
- The user can set multiple tokens to repay their debt
- The UI keeps informing the user how much debt they are repaying and how much will be left after the repayment transaction succeeds
We believe those features will improve the UX of using the Euler app increase the conversion of Loan Repayments, contributing to the overall improvement of the Euler platform.
Proposed Milestones
We propose splitting the work into three Milestones, each with a budget and clearly defined deliverables. We will complete them serially, beginning with Milestone 1, then Milestone 2, and finally Milestone 3.
We propose upfront funding for each milestone, based on the budgets assigned.
Milestone 1: Actionable plan, product architecture and UI mock
- Document the solution’s architecture and a rough outline of the smart contract and frontend updates.
- Create a detailed UI mock showing the proposed updates to the Euler’s app
- Share the above documents with Euler’s core dev team for feedback
- Budget requested: $1,000
Milestone 2: Testnet launch with a mechanism for soliciting feedback from the Euler community
- Build the smart contracts and the frontend code that would enable the Proposed Solution explained above
- Deploy the contracts to Goerli network (Ethereum Testnet)
- Launch the features inside the Euler’s Web App
- Write documentation for the smart contracts and the UI
- Build a feedback collection mechanism to learn about users’ experience within the Euler’s App
- Announce the new feature to the Euler’s community (help from the Euler’s marketing team will be highly appreciated)
- Budget requested: $10,000
Milestone 3: Mainnet or production launch incorporating community feedback
- Collect all feedback submitted from the Euler’s community
- Prioritise feedback from the community and decide what gets incorporated as part of this work and what doesn’t (help with prioritisation from the Euler team would be highly appreciated)
- Announce the product is Live (help from Euler’s marketing team will be highly appreciated)
- Budget requested: $5,000
About Wido
Wido is building tools to improve the user experience (UX) of DeFi protocols and wallets. We focus on bundling multiple transactions into one, to provide a one-click experience. Our Router smart contract enables deposits with any token into any smart contract across EVM chains. It has been audited by CertiK and PeckShield, and is used by Pickle.Finance. Yearn.Finance (PR), Harvest.Finance and other DeFi protocols are currently integrating it into their dApps. We’re also building single-transaction collateral swaps for Compound.
Wido is founded and led by Roman (formerly Argent) and Kunal (formerly Google/Facebook).
Summary
The Wido team’s proposed solution will significantly improve the user experience for Euler users by enabling them to repay loans with any token or multiple tokens. This solution will keep users on Euler’s website, reducing the need to leave the platform to swap tokens. The three milestones outlined above will ensure steady progress and successful solution implementation.