Note: This repository exclusively hosts the Backend and Smart Contract source code. The Android mobile application is maintained in this separate repository => https://github.com/Mogza/Hype.-mobile-app.
This project was developed as the final term project for the Mobile Programming course at Dankook University.
Hype. is a decentralized event ticketing platform. It leverages NFT technology to create fraud-proof, verifiable tickets that users truly own. Event organizers can create events, and users can purchase tickets, which are minted as unique NFTs on the blockchain.
While the core academic requirement was limited to developing a standard client-side Android application, I significantly expanded the project's scope. I decided to implement a full custom Backend and Smart Contract infrastructure to handle real decentralized data, transforming a standard assignment into a full-stack engineering challenge.
I decided to extend this university project to align with my professional journey and deep interest in Web3 development. My objective was twofold:
- Mastering Go: I wanted to challenge myself by building a high-concurrency backend system from scratch, rather than relying on Backend-as-a-Service platforms.
- Exploring the Abstract Chain: I am incredibly excited about the Abstract Chain ecosystem. I wanted to use this project as a sandbox to learn how to integrate mobile platforms with the Abstract network.
- Decentralized Event Creation: Organizers deploy unique smart contracts for their events.
- NFT Tickets: Each ticket is an ERC-721 token, preventing fraud and enabling a secondary market.
- True Ownership: Users hold their tickets directly in their crypto wallets.
- On-Chain Royalties: (Future) Enforce creator royalties on secondary sales.
- Off-chain Metadata: The organizer inputs event details on the mobile app. The Go backend receives this, uploads the image/description to storage, and returns a metadata URI.
- On-chain Call: The mobile app uses the metadata URI to trigger the user's wallet to call the
createEventfunction on theTicketFactorysmart contract. - Deployment: The
TicketFactorydeploys a new, uniqueEventTicket(ERC-721) contract for that event and transfers ownership to the organizer. - Event Emission: The factory emits an
EventCreatedevent with the new contract's address. - Backend Indexing: The Go backend's listener service detects this event, parses the new contract address, and saves it to a local database for quick retrieval by the app.
- Blockchain: Abstract Chain Testnet (A ZK-EVM Layer 2)
- Smart Contracts: Solidity
- Contract Tooling: Foundry (
foundry-zksyncfork) - Backend: Go with Mux & GORM
- Mobile: Kotlin (Android)
The smart contract logic is contained within the hype-contract/ directory.
TicketFactory.sol: The central factory contract responsible for deploying new event contracts.EventTicket.sol: An ERC-721 contract representing a single event. Each instance handles the minting, supply, and finances for one event.