Welcome to EGS Garage with Chaz

Hello. My name is Chaz Schmidt. I’ve been involved in the Ethereum community since January 2016, and I can tell you that over the years I’ve pored over dozens and dozens of smart contracts. But until recently, I had never tried writing one for myself. While I do have some programming experience, the vast majority of my knowledge about Solidity comes from years of tinkering with others’ smart contracts.

My idea

I think we’ve all had times where we’ve come up with an idea for a DApp but simply don’t have the time, energy, or skills to make it. Maybe the idea inspires someone else to pick up the torch and run with it, but a lot of times, the idea is laid to rest in a comment on social media.

My ideas usually suffer the same fate…until now. In January, I was thinking about how my Spanish class required students to attend 30-minute sessions each week to practice speaking. Some of these sessions required students to pay for a service called TalkAbroad that paired us with native Spanish speakers. I was assessing how the both the social and financial pressure kept me from skipping any sessions. And that’s when I had an idea for a DApp that wasn’t half bad. I thought I’d throw it out to Twitter for some free internet points and an interesting conversation.

Idea for a dapp: Both parties commit some ETH or tokens to a smart contract pledging that they will attend a video call at a certain time. Don't show up, you lose your funds.

Companies could value their time for meetings. It could also be a fun way to keep a date night. #Ethereum — Chaz Schmidt (@ChazSchmidt) January 5, 2019

BridgeBurner

The Twitter thread quickly started taking shape. I wrote out all the details I could come up with. Ethereum community members started replying with supportive comments and helpful suggestions. I had underestimated the power of writing down an idea in public. Normally, if an idea like this pops up, I share it with a friend, and the idea fades away once the conversation passes. But this time I took the leap and started designing and refining the idea. The momentum created by the collaborative process created the spark that would set my mind ablaze!

And so, BridgeBurner was born. The initial idea was to create a teleconference DApp where the involved parties would put down a deposit, and if either party ended up being a no-show, they’d lose their deposit. I recommend you read the complete Twitter thread to watch the idea develop. The concept grew leaner with each iteration cycle. I had to make certain design decisions that would determine the entire approach of the smart contract.

Decisions, decisions

I had many questions to answer before I started developing. For example, what level of trust do the parties require? If the parties have a reasonable level of trust – like friends, significant others, or business associates – there is no need for a complicated oracle to determine who showed up or not. Business meetings could still pair a simplified DApp with a legal contract in jurisdictions that allowed it. I determined that if the involved parties required a more sophisticated oracle process, they could still build on top of my DApp.

What should be the punishment for not showing up? Should both parties be punished or just the one who didn’t show? Where should the penalty funds be sent? This aspect of the DApp was the hardest for me to wrestle with, and I think I may produce a few versions of the DApp for different contexts. For lunch with an old friend, you could take the penalty from both parties and give it to a “friendship DAO.” Or you could give the money to charity. I ultimately decided that burning an equal proportion of each party’s money would generate the most social and financial pressure to keep the commitment. If you failed to attend the scheduled date, you would literally be burning the bridge with the other person (thus the name BridgeBurner).

After BridgeBurner is done, I’ll likely produce other versions of the DApp that I’ve codenamed DateMaker. One version of DateMaker would allow for the target “burn” address to be set to a desired address (charity, friendship multisig/DAO, etc), and another would allow both parties to trade ERC721 collectibles in the case of a no-show.

Current spec

BridgeBurner is a work in progress. I’d like to give a quick shoutout to Paul Berg for all his help so far. I’m still nailing down the last of the code and the final design, but here’s my current thinking:

BridgeBurner is designed for two parties. The host puts down a deposit of the desired ERC20 token and lists an invited address. The invited address must agree to the terms by putting down an equal or greater deposit (ideally, you’d require that one friend who’s always late to put more on the line). Both parties must check in to the meeting within approximately 5 minutes of the scheduled time, or the funds start burning at an even rate. As soon as both parties check in, the burning stops. The idea is that either both parties show up on time and preserve the funds in their entirety, or the late or no-show party will be punished both socially (by having to contact the on-time party with an excuse before the burning starts or by angering the on-time party about the burned funds) and financially (by losing their deposit).

EGS Garage with Chaz

This blog series will follow my trials and tribulations as I turn my idea into a reality. I hope that by documenting my journey, I can inspire other community members to take a stab at creating something for themselves. Maybe by learning from the roadblocks I encounter, we as a community can help make it a little easier for the next genius DApp developer to get started.

I’ve been working on BridgeBurner behind the scenes for a few months now and have lots of ideas for how the idea can grow. I have an MVP of BridgeBurner that I have been testing on the Rinkeby testnet. You can find the code here. In the next few installments, I’ll be getting you guys up to speed on the development process.

My vision for this series is to bring the community together around building and using fun and accessible community-oriented projects. And while BridgeBurner will be the first project covered in this series, I hope that eventually EGS Garage can feature more members of the community. I look forward to interacting with all of you and the collaborative process I hope this blog becomes!

Thanks for reading.