We're a team of two engineers from Facebook who have no blockchain experience. Often when we've travelled or wanted to tip someone really quickly without having to go the ATM and withdraw cash, Bitcoin and Ethereum don't particularly help. If the other person is offline or doesn't have a wallet, you're out of luck with blockchain transactions.

We wanted to merge digital and physical worlds in this way and bring the convenience of cash to the next level. With ETH Cash, you don't even have to go to the ATM. We hope that this enables the onboarding of more people onto using Ethereum in the real world.

What it does

All you need to get started on ETHCash is a printer. Step 1: Print random QR codes. You can carry these in your wallet. Step 2: At any point, you can imbune these without a certain amount of ETH by sending it over to our smart contract. Step 3: The other party can choose protect the money with a password that only they know so that you can't take it back Step 4: Whenever the other party feels like it, they can withdraw this ETH into a recipient address.

Throughout all these steps we provide a QR code reader to make the process easier :)

Security: We've given a lot of thought to making this system secure and trustworthy for both parties. For example, we provide locking mechanisms to prevent front running attacks that ensure that no other party can have access to your ETH. We leverage a doubly hashed verification mechanism for passwords so that your favorite password can be reused and doesn't have to exposed on that chain.

How I built it

We leveraged Web3, Truffle, Ganache, React and MetaMask to develop and test our applications. We've written a set of extensive tests to ensure that our smart contracts work as we expect it to. We leveraged open source libraries around common base utilities and QR code scanning to move faster. Several tutorials online also helped us along the journey.

Challenges I ran into

The biggest challenge was the fact that we were both brand new to programming in solidity and the blockchain. A lot of the concepts were new to us. We leveraged TDD to help us move faster with more confidence. Working through Truffle and solidity quirks were not easy given the lack of resources. One particular issue around the transaction of redeeming the final value from the smart contract took us a long time to find an answer too. The flakiness of Metamask and migrations played into it too.

Accomplishments that I'm proud of

I'm very proud of the fact that we have a working prototype despite that steep ramp up. The technology we built here has very clear real life applications for people and is something we look forward to deploying on the chain.

What I learned

We learnt A LOT about solidity, ETH and the developer tools built around helping you build web based dApps.

What's next for Eth-Cash

We would love to dive deeper into the project and really make it performant and risk free to enable us to put this on the blockchain for others to use.

Built With

Share this project: