About the Project: Suicket
Inspiration
The idea for Suicket was born out of the need to create a decentralized, secure, and transparent ticketing system. Traditional ticketing platforms often face issues such as fraud, lack of transparency, and centralized control. By leveraging the SUI blockchain and the Move programming language, Suicket aims to revolutionize the ticketing industry by providing a trustless, efficient, and user-friendly solution for event organizers and attendees.
Core Features
- Event Creation and Management: Event organizers can create events with details such as the number of spots, ticket price, and other relevant information. They can also modify event details as needed.
- Ticket Purchase and NFT Issuance: Users can purchase tickets for events, and each ticket is issued as an NFT, ensuring uniqueness and security.
- Check-In Functionality: A check-in function is available to mark tickets as used, preventing reuse and ensuring event integrity.
- Multiple Ticket Purchase and Transfer: Users can purchase multiple tickets and send them to friends and family using the
zksendfeature, enabling seamless ticket sharing.
What We Learned
Throughout the development of Suicket, we gained valuable insights and skills:
- Move Programming Language: I deepened my understanding of the Move language, particularly its resource-oriented programming model, which ensures the safety and uniqueness of assets like tickets.
- Blockchain Development: I explored concepts such as smart contracts, decentralized ownership, and tokenized assets.
- Event Management Logic: Designing the logic for event creation, ticket sales, and updates required careful planning to ensure fairness and scalability.
- Error Handling: Implementing robust error handling mechanisms to prevent misuse and ensure the integrity of the system.
- Decentralized Storage Systems: We utilized decentralized storage systems like Walrus to manage files on the blockchain, ensuring secure and distributed file management.
How We Built the Project
- Smart Contract Development:
- The core logic for Suicket was implemented in the
suicket.movefile. - Key modules include:
Event: Represents an event with details like name, description, ticket supply, and price.Ticket: Represents a unique ticket for an event.EventCap: Provides event owners with the ability to manage their events.
- Functions were created for organizing events, buying tickets, transferring tickets, and updating event details.
- The core logic for Suicket was implemented in the
- Frontend Integration:
- The frontend was built using React and TypeScript.
- Components like
CreateEvent,MintTicket, andMyEventsprovide an intuitive interface for users to interact with the blockchain.
- Backend Services:
- A lightweight backend was implemented in Node.js to handle email ticket distribution.
- Blockchain Deployment:
- The Move modules were compiled and deployed to the Sui blockchain.
Challenges Faced
- Designing Ticket Validation Logic: Creating a robust and efficient ticket validation system that replicates the seamless flow of checking in to an event was a significant challenge. Ensuring that the process was both user-friendly and secure required careful planning and iteration.
- Handling Coin Merging and Splitting: Managing the edge case of merging and splitting coins before ticket payment was complex. This required a deep understanding of the Move programming language and its resource-oriented model to ensure accurate and secure transactions.
- Scalability and Performance: Designing the system to handle a large number of events and tickets while maintaining performance and scalability posed additional challenges.
Conclusion
Suicket is a testament to the power of blockchain technology in solving real-world problems. By decentralizing ticketing, it empowers event organizers and attendees with transparency, security, and control. This project not only enhanced my technical skills but also deepened my appreciation for the potential of decentralized applications.
Built With
- move
- sui
- typescript
- vite

Log in or sign up for Devpost to join the conversation.