Inspiration
Do you know what is hilarious? Going to a web3 event that talks about how the blockchain is the future but the tickets still rely on terrible web2 platforms.
Currently, all NFT Ticketing platforms require special software to create and process tickets instead of creating a simple ticket that exists 100% as an ERC721 token. You should be able to create and saleyour ticket like a normal NFT.
What it does
FutureTickets let's you create an NFT with just one click in less than 10 seconds, without needing a wallet or paying any gas fees. The NFT contains a QR code that can be scanned by ANY QR code scanner or through Metamask's QR scanner. Oh and the NFT is actually dynamic - meaning the artwork and its properties changes after checking in!
You don't need to know how crypto works. You don't need to pay any gas fees. You don't even need a wallet. Same for your attendees. They can use their ticket just with their email address. Whenever they are ready, they can transfer their NFT ticket to wallet to have full custody.
The NFTs (images and metadata) are stored on IPFS, FileCoin (thank you NFT.Storage) and on Google Storage for caching.
How we built it
Alchemy was used for all blockchain interactions as we require for the user to connect a wallet. For example, transfering an NFT or minting. The API has been initialized here.
The smart contract is deployed on the Polygon blockchain.
IPFS/Filecoin for (uploading NFT images and metadata when creating events and minting NFTs).
The whole platform runs on Python/Flask, with TailwindCss and AlpineJS. The smart contract that creates NFTs and keeps track of payments (not integrated with the UI as of today) was built with Solidity.
The app runs on Google Cloud Run, in a container and gets deployed automatically from the main branch on Github.
Here are some devlogs that describe everything in detail.
More details in the ReadME.
Challenges we ran into
- Creating a test environment that is 100% separate from the production
- Executing transactions and calculating the correct maxFeePerGas and maxPriorityFeePerGas (solved it using a Gas Station)
- More documentation on full examples (web3+backend)
- Create a flow that doesn't require a wallet until the user is ready to use a wallet
- Building the "check if transaction was mined successfully" engine. That was hard but works pretty good.
Accomplishments that we're proud of
- Claiming tickets is epic. Just with an email address and one click you get to own an NFT ticket. Almost 100 people have claimed tickets and the majority of them have never used crypto.
- Creating events/NFTs. By far the fastest on-boarding I've seen when it comes to creating NFTs
- Dynamic NFTs - changing the artwork and metadata after an event
What we learned
- Polygon is awesome. This couldn't have worked in any other chain - trust me, I tried.
- There is a huge market for "POAP but scannable" tickets.
- If people get introduced to crypto slowly, they get to understand it better
What's next for FutureTickets
- More testing
- Release the paid tickets (smart contract is ready but I need to make changes on the UI)
- Airdrops to attendees: The event organizer can see the attendees but I would like to have an engine where they can airdrop tokens to anyone that attended.
- "Commitment" tickets: You pay for a ticket and you get a refund if you attend the event. It cuts down the "flakes" and "no-shows" and it is a feature than no-one else has!
Built With
- alchemyapi
- alpinejs
- filecoin
- firebase
- flask
- google-cloud
- ipfs
- passwordless
- polygon
- python
- solidity
- tailwindcss
- web3js
Log in or sign up for Devpost to join the conversation.