Introducing... Ticketbot
A new way to buy and sell tickets across the web using open standards and internet identities
As you may have heard, Wavlake is throwing its first concert in Nashville in July. We thought this would be a good opportunity to build and test out a new kind of ticketing system built on some technology we think is pretty cool: Bitcoin and Nostr.
What we built was Ticketbot: an open-source, proof of concept ticketing system that works better for artists and fans. While the easiest way to RSVP to this event is via the Wavlake app, we've designed the tickets in a way that would enable any client to purchase and receive a ticket as long as it understands how to speak the basic protocol of Nostr (more on that later).
The potential here is great. Imagine an artist having the ability to sell tickets to preferred individuals at scale, using prior engagement as a way to filter out the true fans from the resellers. Tickets could be verifiable using cryptography. Once sales open to the public, the availability of tickets could be transparent for all to see. And any secondary market sellers would not have to be locked into a specific website.
All of this is possible.
Of course, we didn't build all these niceties into Ticketbot – it is an experiment, after all. But we had all these features and use cases in mind when we started designing the project. And the potential is all there. Our intention now is to see how this nascent version operates in the wild and, assuming it works as we think it should, build further on this idea.
Because if it works, it could mean a whole new way to buy and sell tickets to concerts.
Background & Motivation
Ticketing has been broken for a long time, and over the past decade it seems to have gotten worse. We now appear to be reaching a tipping point. Just last month, a cadre of high-profile artists including Billie Eilish and Sia published an open letter calling for reform in the ticketing industry:
... the current system is broken: predatory resellers and secondary platforms engage in deceptive ticketing practices to inflate ticket prices and deprive fans of the chance to see their favorite artists at a fair price
If you've ever tried to get tickets to a concert you really want to see, you've undoubtedly experienced this pain in some way. Even if you're able to score tickets during the primary sale, the service fees can be ludicrous. Then there's the secondary market, where professional resellers can gouge customers even further. On top of that, these markets are often owned and operated by the same company selling the primary tickets. If you think that's suspect, you're not alone.
What all this boils down to is a system that shortchanges both artists and their fans while enriching people who have no interest in any part of this relationship – apart from what profits they can extract from it.
A New Way To Connect
We now have pretty neat and simple way to give people a portable identity across the web. Nostr, if you're not aware, is a communication protocol that uses cryptography to verify messages between individuals without the need for any intermediaries. That means I can send you a message signed by my private key and you can easily verify that it came from me without having to check with a centralized system.
What's nice about this is we can create a new kind of social network built around these identities. This is already happening with some Twitter-like clients, but the big advantage is these new networks don't have to operate within the same boundaries as the social media of the past.
The Wavlake mobile app, for example, uses Nostr identities to connect listeners to artists by linking the listener's zaps (micro-bitcoin payments) to the artist's songs. With this data, an artist can easily see what identities these zaps came from, and potentially use that information to market new music, merch, and events to those people.
Ticketbot uses this same mechanism to sell tickets. Someone with a Nostr identity sends a zap in exchange for a ticket, and we deliver it to them via an encrypted direct message. We are also able to record and verify that the ticket belongs to a specific person using their public key. Using this combination of an instantly settled payment and public identity, we can easily link a ticket to a person.
Limitations & Compromises
One of the known problems with the direct messaging protocol (NIP-04) we are using to deliver tickets is metadata leakage. What this basically means is anyone is able to observe that we interacted with you over direct message. While no one else is able to decipher what we communicated with each other, the fact of the communication itself is public.
This is not ideal for privacy over the long term, but in this particular case, we thought it was a compromise worth making because of the low-stakes of these messages and the need to deliver a working prototype in a short amount of time. Anyway, it's easy to use Nostr pseudonymously, and a simple workaround would be to use an identity specifically made to buy a ticket. Also, the Nostr dev community has just adopted a new standard for messaging (NIP-17) that aims to improve on privacy for DM's. We'll be tracking this closely.
Another shortcoming: we don't have a great way for people to resell or transfer tickets apart from just sharing their ticket code with someone else. This introduces the risk of scammers selling counterfeit or duplicate tickets in resale markets. It would be possible, however, to digitally "burn" old tickets and issue new ones to a particular user in the event of a sale or transfer. This would help reduce the possibility of scam sales.
Implementation
The foundation of our ticketing system is built around a mostly standard Nostr Time-Based Calendar Event (NIP-52). You can see the raw event for our Nashville party here.
We stuck to the spec for the most part, with the exception of a new tag called fee
. This seemed to be the best way to modify the note without breaking the standard and gave us the ability to include a ticket price for the event (in this case, 1 msat).
With this additional piece of data, we've enabled any Nostr client the ability to purchase a ticket to the event by zapping the note with a minimum 1 sat payment. As long as the client zaps the note like a standard zap (according to the NIP-57 spec for parameterized replaceable events), the user sending the zap will receive a DM with their ticket info once the payment is settled.
So, while the easiest way to RSVP to our Nashville party is through the Wavlake mobile app, theoretically anyone could build a client to enable users to purchase a spot to the party. Whatever path people take, as long as a Nostr user has access to their DM's, they'll be able to see their ticket and bring it to the show.
Future & Feedback
We're excited to see where this goes! To reiterate, this is still a very early experiment, but we think there's a lot of potential in a open ticketing system like this. So please give it a try if you're planning to be in Nashville this summer, and let us know what you think. Hopefully there's a germ of an idea in here that could grow into something powerful.