Inspiration
Frustrated by the inefficiency present in the current environment of ticket creation, purchasing, and resale, we believe that Web3 technology can be used to connect artists and event organizers directly to consumers, eliminating rent seeking intermediaries that now plague the market.
What it does
In its current form our protocol allows you to create an event, specify the number of tickets available and price of each ticket, purchase/sell a ticket, and redeem a ticket. Individual ETH balances are also maintained for every account and handle adding/removing ETH and paying protocol fees/rewards. Behind the scenes the protocol mints ERC721 NFTs and utilizes a Chainlink powered API for ticket redemption. An end-to-end flow for ticket redemption and validation using QR codes is also prototyped. Ticket metadata is permanently stored using Filecoin.
How we built it
We built this protocol on Rock and Roll...and smart contracts. Our project design was driven by these overarching principles: Utilize NFTs as the underlying smart ticket technology, harness the blockchain to create new innovative financial structures, and leverage the cloud to streamline system development. The project architecture consists of a react-js website as the frontend with both an Ethereum smart contract and a battery of Google cloud serverless functions as the backend. The design and development of the smart contracts was the driver for the system as whole and great effort was made to incorporate both the ticket resale passthrough and ticket deposit financial incentives. Particular emphasis was placed on ensuring our design could realistically work at an event. We knew that having only on-chain code would not allow us to connect with the intended user of the protocol, which is your average event attendee. The decision to integrate QR code redemption into the protocol through a Chainlink API allowed us to adopt technology used right now at events while maintaining the decentralized benefits of the blockchain. The use of ERC721 NFTs allowed the protocol to handle each ticket as a unique item and emulated the attributes of a paper ticket digitally. It also opened up the possibility to treat each ticket as a collectable item with value long after the event. Further innovations to ticket sales and redemption became obvious as we viewed the problem through the lens of a web3 implementation. With smart contracts we were able to remove middlemen from the ticket selling process and direct new revenue streams to artists and event organizers. This was accomplished by attaching metadata on-chain to every smart ticket. We were also able to create a new financial incentive for ticket owners to attend an event through the deposit mechanic of the system. Deposit amounts are also attached as metadata to the ticket and tracked within the protocol. Further information on the design can be found in our github repo: https://github.com/torrential-ops/hackathon-2021.
Challenges we ran into
-Balancing gas costs with decentralization and protocol features. -Properly configuring the solidity optimizer and keeping the smart contract lean enough to fall within the gas limit. -Website design and development using HTML, CSS, Javascript, Typescript, React-JS, ect. When coding the website there were alot of new elements to conceptualize; Frontend development is hard. -Configuring the Chainlink consumer contract and Chainlink node job for a custom ticket redemption API. Many testnet Link were spent debugging this interaction. -Design of the overall ticket deposit redemption loop. It involves several cloud functions, signing of data w/ wallets, the Chainlink node, multiple smart contract, and the web front end. -Making API calls to the cloud functions from javascript website. -Javascript requires additional configuration whereas python scripts, the Google cloud testbed, and online API checkers all work. -Dynamic generation of webpage elements based on blockchain data. -Populating the event and ticket lists on the website was complicated and required learning a lot about react and typescript. -Type errors in typescript. -One anti-challenge: Hosting the website in the cloud was actually very easy using firebase and took 5 minutes with no prior experience. This was an unexpected (positive) surprise.
Accomplishments that we're proud of
-Learning Solidity and writing our first smart contracts: prior to this Hackathon, our team had 0 experience coding in Solidity and had never created any smart contracts. -First time creating a website/frontend without a website builder like squarespace. Lots of hours spent to get the website (mostly) working. Had never used any frontend programming languages. -Serverless architecture in Google cloud. We have been using the cloud now for ~6 months in the Graph protocol as a node operator, but that design uses compute engine and has VMs up 24/7. For this project we challenged ourselves to create the most cloud native design possible. We were able to leverage a bunch of Google cloud services like cloud functions, api gateway, datastore, and pub/sub to do all of the off-chain backend computation. -Getting very close to having the entire end to end flow completed in under one month. 90% of the planned functionality is present in the system at hackathon submission and can be interacted with through etherscan or our website. -Learned a ton and added new skills to our toolbox. Will be using the lessons learned in the last month to improve our other efforts in this space and future projects.
What we learned
Solidity, ERC721 & 1155 specs, gas and storage optimization of smart contracts, Hardhat, VSCode editor, deploying contract to testnet, validating contract on Etherscan, Google Cloud functions/api gateway/datastore/pub-sub,firebase website hosting, html/css/javascript/typescript/React-JS, prototype and iterate vs perfect upfront.
What's next for raindrops by torrential.
Our focus moving forward will be centered around improvements to the Raindrops marketplace. Aside from UI/UX improvements, we would like to integrate functionality such as Resale Revenue Tax, Chainlink VRF-powered seat upgrades, and the ability for organizers to sell the rights to an events revenue prior to an event being hosted.


Log in or sign up for Devpost to join the conversation.