Inspiration
I decided to build Greenwood for my hack because I've experienced how complicated using decentralized finance is and I've noticed how confusing it is for beginners.
What it does
Greenwood is a hosted Ethereum smart wallet that makes decentralized finance easy for people with a Coinbase account by handling all of the complexity of interacting with the decentralized finance ecosystem behind the scenes.
How I built it
I built Greenwood by integrating with the Coinbase API using Oauth, piping Coinbase user data into a React frontend, and connecting the React frontend to a node.js backend running web3 that for creating, signing, and sending raw Ethereum transactions via Infura. The Greenwood hack allows users to buy DAI with USD directly, skipping the intermediate step of having to purchase ETH or USDC and then deposit DAI into the Compound Protocol and earn interest.
Challenges I ran into
I ran into some hiccups trying to integrate with Coinbase as their documentation is rather sparse and their error codes are vague. I also ran into issues with broadcasting transactions to the Ethereum network because there are a bunch of rules and if a transaction violates any of them the EVM will revert the transaction. I also broke my Coinbase account when trying to build out the withdrawal feature by sending a transaction to Coinbase with a price per coin of NaN.
Accomplishments that I'm proud of
I'm super proud that I was able to build out an interface that was similar to the designs I made because I'm not a great frontend dev. I'm also proud of the fact that I was able to overcome my challenges with Coinbase and get deposits to Compound working!
What I learned
I learned that I need to build out tooling for Ethereum testnet development because developing on mainnet is time-comsuming and risky. Also, I learned that it's probably not smart to continue to add functionality as hackathon deadlines approach.
What's next for Greenwood
I'm going to finish the withdraw from Compound functionality and then build out integrations with Maker, dy/dx, Uniswap, and Set Protocol. Ultimately, I'm going to build the easiest way for people with a Coinbase account to create and manage a decentralized finance portfolio!
Built With
- coinbase
- heroku
- infura
- node.js
- postgresql
- react
- web3
Log in or sign up for Devpost to join the conversation.