Before we can properly discuss how the GET Protocol tokenizes the ticket asset, we need a proper definition of a ticket.
A ticket can be defined as the right to enter an area or venue during a certain time span. Tickets come into existence when they are issued in by the primary issuer, referred to as the primary ticket market.g
Ticket markets — Primary & secondary
The issued right of entry has both utility value for the current owner(the value of using the ticket) as well as a resale value(value of the ticket when resold). If — for a certain ticket owner- the resale value exceeds the utility value (note, this varies per person widely) the ticket will be offered for sale on a the secondary ticket market.
Now that we have established that a ticket is effectively a right — an asset that non-physical in nature. In addition we know that this asset is assigned different values for different people. Before diving into the composition of our ticket asset, let’s briefly explore how static tickets deliver this ‘digital right’.
The QR code —The original paper wallet seed
A QR code is a data format that can easily be interpreted by computers. In most cases QR codes encode a unique & secret URL. Only devices with certain authentication can successfully visit the URL endpoint and mark a ticket as validated.
In a sense, traditional QR codes are naked private keys. As merely sharing a QR code publicly will expose its secret message. Allowing anybody that has ever had access to that QR to utilize it . Even if the user isn’t the ‘official’ owner of the ticket. A static QR code is, evidently, static and thus cannot track who is the current owner of the ticket (and if multiple people own the same copy). In a way, a static QR code is ‘too dumb’ to enforce anything beyond encoding a string.
A static QR code ticket can only be used once. After validated, all other owners of the same QR code will now own a worthless asset (that was previously valid).
If the aim is to tokenize a ticket with an NFT, we need to be sure that the QR code can only be used by the owner of the getNFT.
Storing a secret in a public ledger
Blockchains are public ledgers. So it is not smart to store a secret QR code in the metadata field of an NFT. In order to encapsulate the right of entry within an NFT we will need a form of encryption only allowing the owner of the NFT to generate the QR code at the right time.
The type of encryption we are looking for is asymmetric encryption. Luckily, this is one of the most used types of encryption. For example, the green SSL lock you see in top corner of your browser is the product of such asymmetric encryption verification(SSL). The browser page as served to you right now is decrypted by your browsers private key (read more about SSL here).
Asymmetric encryption for ticket QRs
Tickets are a right of entry at a certain time. In order to ensure the getNFT retains its value when it is traded from wallet to wallet, it should only be possible to generate the QR after a certain time-lock (after which transferring the NFT should become disabled). Luckily this is the exact type of logic smart contracts are perfect for.
Ingredients for a getNFT to generate a QR code:
- A getNFT minted by a official GET Protocol NFT Factory Smart Contract
- The unique ticket identifier stored in the NFT at issuance(mapping to the ticket).
- The address of the owner of the getNFT at the time of the tickets activation
There are various ways the delivery of an getNFT could be approached. Encrypted QR codes could be published publicly or pushed directly to the smart phones of the NFT owning wallets.
TLDR benefits getNFT tickes
- NFTs enable true ownership of the digital asset that is the ticket.
- NFTs are transferable, making tickets truly safely transferable and shareable.
- NFTs can store metadata, effectively capturing resale-rules.
If you are more of a visual person, the diagrams below could be of some help!
How a getNFT becomes a QR code
Smart getNFT ticket
Traditional Ticket Static (PDF, screenshot)
Summary benefits of getNFT
getNFTs are indivisible, meaning that an getNFT can only be held owner by 1 address at the same time. This ensures that whomever owns a certain NFT will be the only one to decrypt the QR code.
By encrypting the QR code seed with the public key of the owner of the NFT at activation, the GET Protocol ensures that only 1 wallet will be able to generate the QR code.
In other words getNFTs allow a ticket to become personalized, without the owner having to show their ID card to a bouncer.