Splunk DLT
Published in

Splunk DLT

How We Powered Buttercup NFTs at .conf22

“Whoa, Nelly!” said Buttercup to her friend at .conf22 in Las Vegas. “Check out all the on-chain pony activity!” Attendees were able to mint unique Buttercup NFTs and donate to charity. Over the three-day conference, 318 attendees minted 836 NFTs.

Example Buttercup NFT

There were a lot of moving parts involved with delivering an NFT experience to .conf participants, most of whom had no blockchain knowledge, let alone a crypto wallet. In this post, we’ll discuss how we designed our infrastructure and monitoring to provide the best experience for our participants.

Designing For Simplicity

We prioritized minimizing the barrier to entry for our users. First, they weren’t required to download a cryptocurrency wallet onto their phones to participate. To address this, we built a frontend web application that interacts with our smart contract on the blockchain.

Throughout the conference, users could scan QR codes that would fund their account with Buttercup Bucks. They could spend their Buttercup Bucks at our “slot machine” to mint their own unique Buttercup NFTs. To simplify key management, we used Magic Link to authenticate users.

The slot machine we used to dispense Buttercup NFTs and Splunk dashboards visualizing blockchain data live

Next, we wanted to provide a scalable user experience, which meant using established industry vendors like Ankr and OpenZeppelin. We polled the Ankr Gnosis endpoint more than a million times throughout the three-day conference. We used OpenZeppelin’s Defender Relay to provide a faucet where users could receive Buttercup Bucks without needing gas in their wallets. We deployed our smart contract on the Gnosis blockchain because it has short blocktimes and small transaction fees.

Finally, we wanted visibility into how our application was performing. We logged events from our web application, minting service, and defender relay into Splunk. We also used Splunk Connect for Ethereum to ingest blockchain data into Splunk.

Overall Architecture

Architecture Diagram

The Buttercup NFT experience involved several moving parts:

  • ERC 1155 smart contract deployed on the Gnosis blockchain, which issued both Buttercup Bucks, a fungible token, as well as Buttercup NFTs.
  • A minting web service that listened to contract events and generated NFT images.
  • A “slot machine” cabinet, which interacted with the minting web service, where users mint their Buttercup NFTs in exchange for Buttercup Bucks.
  • IPFS nodes which stored the minted NFT images
  • A front-end web application that users used to scan QR codes throughout the conference to earn Buttercup Bucks, as well as to interact with the slot machine.
  • An OpenZeppelin Defender Relay, which the front-end web application uses to interact with the Gnosis Blockchain.
  • An Ankr Gnosis RPC, which the front-end web application uses to interact with the Gnosis blockchain.
  • Authentication & Private Key Management with Magic Link.
  • Splunk Enterprise & Splunk Connect for Ethereum

Challenges

One of the challenges we encountered during the conference was session management. We experienced 15 minutes session timeouts, requiring users to login more frequently than expected. We worked with Magic Link to better understand timeout issues we saw in the wild, in the variety of mobile devices that interacted with our mobile frontend. We expect those issues are linked to an aggressive iOS security setting which wipes third-party local storage content as an anti-ad strategy. We believe we could address this by moving session management to our own domain.

Another challenge we encountered was network congestion. Though we intentionally chose the Gnosis blockchain over others because of its low transaction fees and latencies (~5sec), we still noticed that our transactions were sometimes slower than we expected during extremely high load (e.g. when several hundred concurrent users scan a QR code during a keynote session). We expect that we could have reduced this latency by better increasing transaction fees during peak demand.

Reception

Buttercup NFTs were well received by our conference attendees. Despite some initial hiccups, we were very happy with our infrastructure’s ability to support the incredible demand.

Throughout the conference, 836 NFTs were minted from 318 distinct users. Over a 48 hour period starting at 8am PDT on Tuesday, June 14th, Buttercup Bucks was the 8th most transacted contract on the Gnosis blockchain.

Some users were interested in what was going on behind the scenes as their NFTs were being minted. We explained that there is an on-chain contract using a randomly generated seed to determine the characteristics of their pony and that the generated image is stored on IPFS. We showed how we could monitor both application and infrastructure metrics live in Splunk dashboards.

One of our monitoring dashboards

While some users were interested in how the NFTs were generated on a distributed blockchain and stored on a distributed file system or how to Splunk this data, the most common question that our users asked was: so what can we do with these NFTs? As if being told that this picture of a beautiful pony belongs to them wasn’t enough. We explained that their NFT uniquely belongs to them (unless they decide to transfer it) and that it is proof of participation in conf22. We’re prepared and looking forward to incorporating Buttercup NFTs with future conferences.

This post focused on our architecture design and is part of a series of blog posts on Buttercup NFT. To see how we analyzed onchain data during the conference, see our other post, Splunking NFTs in a Web3 World.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store