No-code on-chain Event Ticketing powered by Keypom and BOS . This project brings the benefits of on-chain ticketing eliminating the need for attendees to have a pre-existing wallet.
The most common form of event ticketing in Web3 is NFT ticketing. Given that the attendee must hold the NFT as their ticket, the primary problem with this technique is the prohibitive nature with respect to non-crypto natives and hardware wallet users.
By leveraging Keypom and NEAR's access key model, this project aims to bring a ticketing solution that accomplishes the following:
Through the use of access keys as tickets, the event organizer is also able to see analytics such as attendance and attendee retention. This approach also opens the door to creating an instant crypto experience through Keypom trial accounts and instant-sign-ins; though not implemented due to current BOS constraints.
In addition, this project presents a no-code solution, allowing non-technical event organizers to create their own customizable ticketing systems with aspects such as customizable POAPs. The entire project is built on NEAR's BOS to ensure composability and open source spirit, which will encourage further customizations to the ticketing experience.
The project consists of 3 main components.
The first is the BOS component. As composability was a primary focus here, the main homepage component is a composition of various other components, such as the ticket page, the drop information page, and the drop creation page. Data is passed between all these components.
The next aspect is the ticket scanner. This component must detect QR codes, and claim linkdrops based on embedded information. All aspects of this component required React, various NPM packages, and webcam access. This necessitated building a custom NEAR Discovery gateway. This is because common gateways, such as NEAR Social or near.org do not support npm packages and webcam access. The gateway is hosted at https://keypom-scanner.sctuts.com/#/scanner
The final component was a custom Express API capable of filling gaps where BOS currently falls short - in particular returning data from npm packages such as @keypom/core. The API served two purposes: