What is the Ticket Engine?

The Ticket Engine provides a way to programmatically register events and ticket interactions within GET Protocol with ease and is the primary interface for writing changes to the blockchain NFT state.

Writing data to the blockchain directly can be challenging due to some lack of guarantees, as well as knowledge of lower-layer implementation detail. Ticket Engine abstracts away the complexity of managing blockchain transactions yourself and provides cleaner, more convenient interfaces for using your event and ticket data.

šŸ‘

Use the Ticket Engine to:

  • Register your events on the blockchain.
  • Define metadata for your events (start time, currency, images...)
  • Update your events.
  • Register sold, resold, scanned, and invalidated ticket interactions.
  • Define callback URLs to receive processing updates.
  • Fetch information on a given blockchain transaction.

A Digital Twin

The Ticket Engine API is designed to complement and add to your existing infrastructure rather than replacing it, so the tickets produced through this API integration are often referred to as a digital twin of your primary ticket instance.

This provides a mechanism to issue blockchain-based NFT tickets without impacting your primary ticketing infrastructure or migrating any source of truth.

Writing to 'The Blockchain'

We often refer to blockchain operations without referring to a specific blockchain. This is because a design goal of GET is to be blockchain-agnostic. This doesn't mean that design decisions can ever be completely unopinionated, but it's important to recognise that this is a fast moving industry and we ensure that we operate on platforms that can support the level of demand and traffic we need, without inflated costs.

Because of these constraints, we write our event and ticket data to Polygon as this has been proven to be able to support our current demand.

Klaytn integration is also available upon request.

What information do we store?

To not impose too strict of a model definition on the consumer, we only keep the necessary information needed on the blockchain itself. This allows for all base operations and interactions without inflating the blockchain state. Writing data to any blockchain operation is expensive so we attempt to minimise this for this reason also.

The three main entities exposed via the Ticket Engine API are Events, Tickets , and Transactions.

Ticket Engine - Simple ERDTicket Engine - Simple ERD

Ticket Engine - Simple ERD

Events

Events are the entity which contains metadata on the virtual or real-world occasion, and is granted right of entry through the usage of a ticket. This is not to be confused with a programmatic or blockchain event. Events have many tickets.

Tickets

Tickets define a right of access to an event. Association to this event is maintained by the eventId property on the ticket and this must be passed upon creation of a ticket.

Transactions

Unlike the above models that are defined by their domain model (in relation to the events industry), a transaction refers to the blockchain transaction that contains the data as written by the Ticket Engine.

Writes are handled asynchronously and an optional callbackUrl can be submitted with creation of an Event so that the transaction hash and success status can be returned to you.

Blockchain transactions are a large topic, and the Ticket Engine API handles the implementation detail of this, but more information is available: