One of the biggest knocks against blockchain and crypto is how unapproachable it is to those not entrenched in the space. How do you explain public/private keys? What’s a smart contract? What are tokens? How much is it worth? What even is a blockchain? It’s a never ending black hole of one definition leading to another definition leading to another that leaves people more confused than when they started.
We set out to change that by showing, not telling, people in Omaha what the future of decentralization and blockchain was going to be about. How? We built a token and partnered with the NEXT Society, a speakeasy series dedicated to highlighting new technology, for an event to educate around blockchains, tokens, and smart contracts. This post will dive into the creation of our ERC20 NEXT token, how we on-boarded attendees with their own wallets, and the event experience of earning tokens throughout the night.
The premise of the night was to get attendees to learn from local blockchain and crypto experts about various subjects at "smart contract" stations and be rewarded with tokens for doing so. To accomplish this, we built an ERC20 token called the NEXT token with a pre-mined supply of 10,000 tokens. This token, worth $0, allowed experts at stations to send tokens to attendees throughout the night. This was built to illustrate how tokens and smart contracts worked in an analog, physical way.
Again, this was an event filled with first timers. This meant that before we could send tokens to everyone, we would have to set them up with a wallet. Unfortunately, crypto on-boarding is a nightmare. This is especially true when you need to get 60+ attendees setup with a wallet within minutes of walking in.
To begin on-boarding, we needed an Ethereum wallet app. We chose to go with the Trust Wallet app as it was the only one we could find that accepted ERC20 tokens while having QR scanning capabilities for both iOS and Android. As a pre-event requirement, we sent out emails asking all attendees to have the Trust app downloaded to their phone before showing up.
Once in the event, we provided cow tags (Nebraska is The Beef State after all) with a QR code and an identity. Every cow tag had an identity represented as a color, animal, and then a QR code that was printed on it that the attendees could use to track token transactions amongst the event. As an example, one attendee’s identity might be a green monkey while another could be a red cow.
This is where it got a little wonky on the technical side. We provided the private keys with their identity. This meant that the QR code was actually their private key used to import to their Trust wallet through the app's QR scanner. Those familiar with the technical side would recognize this as a massive security problem. But, we had our reasoning.
First, we wanted the event to be as easy as possible. This forced us to sacrifice security for ease of use. We made it very clear that people should never use these as their address again. Second, we wanted all of the addresses to be associated with an identity in our system and preloaded with enough ether to handle gas costs throughout the night. Controlling the private keys seemed like the easiest way to go about it.
Once the attendees were fully on-boarded, they were then ready to start going to any of the 5 "smart contract" stations to learn about a blockchain or crypto topic. This would involve spending a few minutes interacting with experts and learning more about various topics. After engaging with the station, the expert would send 1 token to the attendee for spending their time learning. This token transaction was accomplished utilizing the Trust app's QR scanner and scanning the attendee's public key on their phone.
Token transactions in and of themselves are kinda cool but the attendees needed more to fully experience blockchain. To do so, we provided a user interface that was pulling live token data from our smart contract system and projected it on screen for attendees to watch. As a station sent a token to an attendee's address, the attendee could look for their identity on the screen and watch it come through. This screen allowed everyone at the event to see tokens transferring around them in real-time.
As the attendees received tokens for listening to the stations, they could then use them to purchase drinks (Cryptotinis!) at the bar. Each drink would require two tokens to purchase. With two tokens in their wallet, the attendees could go to the bar and send their tokens to the bar point-of-sale system by scanning the bar's QR code public address.
The bartenders, just like the rest of the event, had a screen that they could watch to see the tokens come through to the bar wallet. Essentially, we created a pos system for the bartenders which included a simple filter that only streamed token transactions coming to the bar. Once the bartender could verify that 2 tokens came from the attendee's identity (Green Monkey sent 2 tokens to The Bar), they could serve the attendee their drink. If the attendee wanted another drink, they would need to go to a couple more stations. Or, even, create a black market exchanging cash for tokens :)
Overall, we believe it was a good first event showcasing the basics of blockchain technology, smart contracts, and the concept of cryptoeconomics. However, it was important that we spent time prepping attendees for various difficulties from the infancy of the technology.
One of those difficulties involved transaction confirmation times. On average, transactions were taking 1 to 2 minutes to go through. We expected this problem and felt that transaction speed was part of the story that needed to be told about public blockchain technology and Ethereum specifically. We compared it to dial-up speeds of the earlier internet and used it to show how far the technology still needed to come before mainstream adoption.
Our other difficulties were with the Trust Wallet. As a note, we would recommend Trust overall because of its feature set and UI/UX design. But, there were still some issues that caused friction for the attendees. First, Trust doesn't allow users to choose gas prices to send transactions through quicker. Makes sense from an ease of use perspective but really limits flexibility.
Second, Trust had just completed an update of their app that broke the QR scanner for iOS. This forced the attendees to use their iOS camera, copy the address, and then paste it to import the wallet and send tokens for the rest of the night. Again, Trust is a great app but still has room to grow.
Edit: Great convo with the Trust team correcting us on the gas functionality and addressing the QR code problem here.
WHAT WOULD WE CHANGE?
If we were to do it again, we would definitely have the attendees generate their own wallet so we don’t have such a security problem associated with the system. We would then have the attendees attach their identity to their wallet. In an optimal system, we would use something like uPort or a custom built solution to handle identity. Finally, to handle the issue around attendees not having ether to exchange tokens, we would have a faucet onsite for people to receive gas.
You can see all of the transactions of the event here: https://etherscan.io/token/0xd7bf4d1e9bbb3c01abbc6ab4d3cd236416f65e2e
Thanks to Kevin Owocki and the #ETHDenver crew for inspiring us with their Colorado Coin to use tokens to teach blockchain.
The dapp was built by the BlockEra team in Omaha, Nebraska.