Lummy Ticket
Overview
Born out of my own frustration with concert ticket scalpers, Lummy is an NFT-based decentralized ticketing platform built on the Lisk blockchain that addresses Indonesia's chronic ticket scalping problem. Anti-scalping rules are enforced directly in the smart contracts, not as off-chain policy. Led the project end-to-end as CTO with a 4-person team, graduated from Lisk Spark Incubator with USD 4,600 grant funding, and won Top 5 + Social Media Challenge of the Lisk Builders Challenge Round One.
Tech Stack
- Solidity + Foundry for smart contracts using EIP-2535 Diamond Pattern (upgradeable, modular)
- Next.js + TypeScript for the web app (organizer dashboard, customer storefront, staff scanner)
- TailwindCSS for styling
- viem + wagmi for wallet and contract interactions
- Lisk L2 as the deployment chain (Ethereum-compatible, low gas fees)
- IPFS via Pinata for NFT artwork and metadata
Features
- NFT Ticket Minting. Each event deploys its own ticket contract (ERC-721 + ERC-5192 soulbound) so supply is fully auditable on-chain.
- Anti-Scalping Smart Contracts. Resale price caps, mandatory royalties to organizers, and soulbound locks prevent scalper markup at the protocol level.
- Marketplace. Controlled resale with price ceilings enforced in immutable code; royalty splits between organizer and platform.
- Staff Scanner & Check-in. Mobile-first QR scanner marks tickets as USED with on-chain audit logs to prevent duplicate entry.
- Organizer Dashboard. Create events, configure tiers and pricing, deploy contracts, and track sales plus check-in analytics.
- Escrow & Revenue Distribution. Per-event escrow holds funds until events complete, then auto-distributes to organizer and platform.
Challenges & Solutions
Upgradability without breaking deployed events. Standard contracts can't be patched after deployment. Solved using Diamond Pattern (EIP-2535) with 5 facets (Ticket, Marketplace, Escrow, Staff, Admin) so logic upgrades without redeploying or migrating existing tickets.
Auditable supply for fair sales. Hidden inventory enables scalping. Per-event clones via factory pattern make every tier's max supply visible on-chain, eliminating insider stock dumps.
Preventing scalper resale loopholes. Off-chain rules can be bypassed. Resale logic lives in the smart contract itself: price caps, royalty splits, and soulbound locks enforced before any transfer succeeds.
Test coverage at production grade. A bug in ticketing means lost revenue and angry customers. Foundry test suite hits 100% line and branch coverage across all facets, running on every commit.
Time pressure during the incubator. Lisk Spark Incubator imposed a fixed timeline to ship a working MVP. Scoped ruthlessly to core flows (mint, resell, check-in) and shipped on schedule.
Lessons Learned
- Smart contract design is product design. Anti-scalping rules baked into immutable code beat any policy-based system.
- Diamond Pattern earns its complexity for products that will evolve. Upgradeable facets let me ship core logic first and extend without migrations.
- Incubators are forcing functions for shipping. Lisk Spark's milestones turned a hobby project into a fundable product.
- Auditable on-chain state is a feature, not a side effect. Showing the supply is a strong selling point to organizers tired of black-market resale.