This guide is organized into the following sections:
NFT ticketing setup
To begin, you’ll need to set up the smart contract for your tickets. This smart contract will mint the tickets for your attendees, handle payments, and is the blockchain mission-control center for your event. The Unlock Dashboard provides the easiest interface to deploy your NFT ticketing smart contract, or “lock.” But before we do that, let’s get the things we need all in place.
Gathering all your event details
There are a few considerations in setting up your smart contract (which we call a “lock”). They are:
- What’s the name of your event?
- How many tickets do you want to make available? For example, if this is for a physical event, what’s the maximum capacity of the venue?
- If you’re selling tickets, at what price, and in which currency? Note: You can make them free, too.
- Do you want your tickets to be transferrable after they are minted, or do you want them to be non-transferrable (e.g. “soulbound”)?
- Last but not least, is your ticket visual? That is, does your ticket have artwork or a design that you want attendees to see? If so, have that artwork file available.
For this example, we’re going to set up NFT ticketing for a side event at the upcoming ETHDenver conference. Looking at the checklist above, here’s what we will be setting up.
- Name of the event: ETHDenver 2023 Happy Hour
- How many tickets will be available: 200
- Ticket price: Free
- Are they transferrable? Yes
Great! We also have some sweet art for the ticket as well.
That’s some sweet art.
Setting up the smart contract for the event
We have those items answered! Now, let’s walk through the setup of a smart contract and NFT ticketing experience for the event.
Sometimes a video is worth a thousand words. Here it is. In about two minutes, we’ll set up the smart contract for the ticket for this event.
And with that, you’ve set up the smart contract for your tickets! Now, folks need to be able to mint and purchase them.
Selling tickets on your website
Setting up the checkout with a checkout URL
The most straightforward way to add a checkout experience where folks can purchase or claim the tickets for your event is with Unlock’s Checkout Builder.
You can copy the URL from the Checkout Builder from your lock, and attach it as the link on a button on your website.
Collecting attendee information
Most events will need to gather some attendee information (name, email address or tee-shirt size for example). For this, you can add some configuration metadata to your checkout. The Checkout Builder above helps you do that as well! Please refer to the metadata configurator for more details.
Listing all attendees
As an event organizer, you may want to list the attendees coming to your event. This is possible through the Unlock Dashboard.
You will be able to list all of the key owners (attendees who have RSVP’d) as well as the information that you have collected.
You can export the list as a CSV from that page.
Attendee QR code tickets
Attendees receive a Non Fungible Token in their wallet when they purchase a ticket. This NFT is their ticket. However, to prove that they own the NFT, they can generate a unique QR code.
For this, they can use the Unlock key-chain. The key-chain lets user manage all of their Unlock keys, including, of course, their tickets to your event.
On each of their keys, a button lets them generate a QR code which is a cryptographic signature of their NFT. They can even choose to receive this QR code by email, should they want to use it without their crypto-wallet or the key chain.
The QR code cannot be forged, which means that a verifier can instantly make sure that it is valid and was indeed signed by the owner of a ticket.
Attendee check-in at the event
Congratulations! You’ve made it to the day of the event. On the day of your event, you will ask attendees to show you their QR codes, per the section above.
Checking attendees in
The attendee’s QR code can be scanned with a mobile phone camera application. The application will prompt the web browser to open the verification page. This page, once loaded, will show whether the ticket is indeed valid.
Additionally if the verification page is loaded from a web browser which has the same crypto wallet as the lock creator, then the verification page will show all of the tickets’ collected attendee information.
Additionally, a button will be visible to mark the ticket as “checked-in”. This step can be done at any point, and after that, the ticket will forever be marked as having been used. This means that the next time the ticket is scanned, a message will indicate that the ticket has already been checked-in. This prevents someone from “re-using” the QR code that someone else already used.
Setting up your “verifiers” to check in attendees
Using a regular mobile phone camera, anyone can scan the QR code of any Unlock Protocol NFT to see if it is valid. However, to check-in a ticket so it can’t be reused, individuals, called Verifiers, can additionally mark tickets as “checked in” using a convenience application provided by Unlock. Verifiers are usually stationed at the entrance to the venue and check individuals in as they enter the venue or when they pick up their swag bag, badge, or lanyard.
In the weeks leading up to the event, a Lock Manager will need to set up one or Verifiers using the Verifiers page in the Unlock Dashboard (see “Setting up Verifiers with the Verifiers dApp” below for detailed instructions). This is to ensure that only verifiers are able to check-in tickets at the venue.
There are two ways for Lock Managers to add approved verifiers:
- If the Lock Manager knows the wallet address of every individual who will be a verifier, the Lock Manager can set each verifier up individually in the Verifiers page in their Dashboard.
- Alternatively, if a large number of individuals will act as Verifiers for a particular event, the Lock Manager may choose to set up a single Unlock Account with an email and password, and have all the Verifiers sign into the verification system using that one shared Unlock Account. This reduces complexity through having a single shared verifier account, instead of the Lock Manager needing to manage a large number of verifier wallet addresses in the verification system (one for each Verifier).
Once a Verifier is set up in the Verifiers page of the Dashboard, they can immediately use their smart phone camera to check in tickets.
To check in attendees, a Verifier needs to do the following
- Turn on their smart phone and go to the verification page using their smart phone browser: http://app.unlock-protocol.com/verification
- Log into the verification Dapp from their phone with either an Unlock Account using an email and password provided by the Lock Manager, or by connecting to the verification Dapp with their wallet (depending on how the Lock Manager has set up the Verifiers)
- Allow the use of their camera
- Scan a ticket
The attendee must present their QR code for it to be scanned. If the individual has lost or misplaced their QR code, the Lock Manager can send the attendee their QR code again from the lock’s members page.
If a ticket has previously been scanned and is marked as checked-in, information about the last check-in time will be visible and the ticket will have an orange background.
Other features and capabilities for NFT tickets
Airdropping tickets to attendees
An event organizer may wish to give away or “airdrop” NFT tickets for free to certain individuals. This can be done directly through the Unlock Protocol dashboard, or programatically. Airdropped tickets can be sent to a single individual, or a group. You can learn more about airdrops with Unlock in “Airdrops for NFT memberships.”
Sending ticket QR codes via email
As noted above, the Unlock creator dashboard includes the functionality where a Lock Manager can airdrop keys to a list of recipients. You can also send an email simultaneously when airdropping a ticket to a recipient, or at any time via the Unlock Dashboard, as shown below.
The email generated will include a QR code of the signed NFT that an attendee can use to prove that they own it when attending in-person events and a link to view their NFT.
How to handle multiple types of tickets
You can deploy one or more locks. If you have different tiers of attendees (e.g. general admission, VIP, staff, sponsor, etc.), you’ll want to create a unique lock per class of tickets.
You will also want to create different locks if you have multiple types of tickets, for example a limited number of “early bird” tickets, or tickets which provide multiple admissions (day 1 workshops and day 2 conference, etc.).
Making tickets non-transferable
The contract for any ticket can be set so that the tickets issued by that lock are non-transferrable to prevent secondary market sales or transfers. You can learn more about this capability in the document “How to make keys non-transferrable.”
Cancelling a ticket
In certain instances, an event organizer may want to cancel a ticket due to changes in circumstances, an attendee running afoul of terms of service, or another reason. In this situation, an event organizer can cancel a ticket, and optionally offer a refund of the ticket price.
Setting up Verifiers with the Verifiers dApp
A Lock Manager can use the Unlock Dashboard to add ticket “verifiers”. From the “Lock Settings” page head to the “Roles” section and expand the “Verifier” subsection. Verifiers are trusted users at an event who can use a smart phone camera to scan a ticket QR code at the check-in to a venue and mark a ticket as checked-in. Checking a ticket in prevents double-use of NFT tickets. Once a ticket has been checked in, it is marked as such.
While anyone can use a smartphone camera to scan a ticket for validity, only wallets that have been set up as Verifiers can check-in tickets and mark them as “used.”
When a Verifier’s mobile wallet is connected and the Verifier scans a ticket’s QR code with their smart phone, the Verifier can:
- Mark a ticket as checked-in
- See the ticket’s metadata
Verifiers page and Lock Managers
The Lock Manager can perform the following actions on the “Lock Settings” page, “Role” section, Verifier subsection:
- See list of all the Verifiers
- Add new Verifiers
- Delete an existing Verifier
Testing the Verifiers dApp
- Go to the “Lock Settings” page and click on “Roles” on the menu. You will see a verifier subsection.
- Try to add/remove/show list of Verifiers
A Lock Manager should test that they can perform the following actions for their ticketing lock:
- Add new Verifiers from “Lock Settings” page
- Remove Verifiers from “Lock Settings” page
- View the list of Verifiers from “Lock Settings” page
- Mark a ticket as checked-in
- View metadata for a scanned ticket
A Verifier can only perform tasks that are needed to review and check-in tickets at the venue. A Verifier should be able to:
- Mark a ticket as checked-in
- View metadata for the scanned ticket
Note: If a large number of individuals will act as Verifiers for a particular event, the Lock Manager may choose to set up a single Unlock Account with an email and password, and have all the Verifiers sign into the verifiers page using that shared account. This reduces complexity through having a single shared verifier Unlock Account, instead of managing a large number of verifier wallet addresses in the verification system (one for each verifier).
Managing “Verifiers” in production
- Connect your wallet at https://app.unlock-protocol.com/dashboard
- Click on your lock to view details.
- Click on the “Tools” button in the right hand corner.
- Click on “Roles” in the left hand menu.
- Expand the “Verifier” section.
- Add and manage Verifiers as needed for your event