For a long time now, most of the banks in the US provide very low savings rates, ranging from 0.01% to 2% annually. Typically, these do not even match the inflation rate.
At the same time, multiple financial primitives for lending and borrowing emerged on top of Ethereum last year. Using blockchain for executing financial contracts allows to cut the middleman and reduce the costs. Simultaneously, it creates a global money market with more competitive lending and borrowing rates.
The great thing about it is that it is already available and fully-functional. People can earn high-interest rates on deposits in crypto. The existence of stablecoins such as DAI which price is pegged to the US dollar makes it possible to earn interest on top of fiat currencies as well. At the same time, crypto-to-fiat gateways such as Wyre allow for seamless integration with the traditional financial system (credit cards, bank accounts).
What it does
Defy mobile app allows people to connect their bank account, go through a simple KYC procedure, deposit US dollars and start earning interest straight away. The current rate is around 6.4% annually. There is no lockup period, money can be withdrawn at any time.
How we built it
To make the app work, we integrated several public APIs as well as Compound which is a protocol that runs on Ethereum. We used:
- Wyre (https://www.sendwyre.com/) to verify user identity and buy DAI (a stablecoin pegged to $1) with the US dollars.
- Plaid (https://plaid.com/) to connect users' bank accounts
- Compound (https://compound.finance/) to earn interest on top of DAI
- Alchemy (https://alchemyapi.io) to propagate transactions to the Ethereum network
- Ethereum as the underlying smart-contract technology that enables Open Finance
Challenges we ran into
When we started integrating Wyre, we found that their development environment is down. We reached out to their team but all the developers were out (that was a Friday night after all). Kudos to their CTO who had his laptop with him and managed to make their systems work again!
Also, we planned to use Bitski for the private key management but their flow was too complicated for our target audience, and it also did not work with one of the libraries we used.
Accomplishments that we're proud of
Our greatest achievement is that we mocked as little functionality as possible! All the integrations such as Wyre, Plaid, and Compound are functional in test environments. This means that with some additional paperwork and fleshed out integrations users will be able to open a high-yield saving account.
What we learned
We proved to ourselves (and, hopefully, to others) that it is possible to build blockchain-based applications that are both valuable and accessible to the average consumer.
At the same time, while abstracting away the underlying complexity, it is possible to keep the non-custodial nature of such applications and ensure that no third party (including us) takes custody of user funds at any time.
What's next for Defy (Better savings account)
There is a lot of room for improvement!
First off, for the demo, we use a private key generated locally to sign all Ethereum transactions. It works perfectly fine unless the app is deleted or the device is lost. For the real product, we need a more reliable solution. We plan to store deposited money on a smart-contract based wallet and use the device private key to access it. There will be a second key created with an external custodial service (Fortmatic: associates a private key with a phone number; Bitski: associates a private key with an email) that can be used for recovery. The good thing is that users do not even need to know about all of it. The interaction with the interface will remain exactly the same.
Compound is not the only protocol that allows earning interest on top of the deposits. To provide people with the best interest rates available, we'll need to integrate more protocols, especially ones that provide access to fixed interest rates, such as Dharma.
Decentralized Finance is much more than just lending. In the future, it's possible to add loans and create a fully-featured decentralized bank.