Chara is a next-generation Web3 ticketing platform. We transform real-world event tickets into strictly regulated Soulbound NFTs to eliminate scalping, eradicate fake tick




Try it live: https://chara-frontend.vercel.app/
Project Description
Chara is an RWA smart-ticketing platform on Robinhood Chain Testnet. Every ticket is an ERC-721 NFT whose rules live in the smart contract: a resale price cap, controlled resale, organizer royalties, and a signed QR for gate entry. Fans log in with Google or email through Privy embedded wallets, so there are no seed phrases to manage.
Problem & Solution
The problem
* Tickets sell out in minutes, then reappear at inflated prices.
* Scalpers use many accounts to bulk-buy.
* Static QR codes and screenshots can be sold to several buyers.
* Organizers earn nothing from resale, and buyers have little protection if an organizer disappears.
How Chara solves it
* NFT tickets give verifiable on-chain ownership.
* Resale happens only through our internal marketplace, capped at 2x the highest price in the ticket's category. Direct wallet-to-wallet transfers are disabled.
* A human-verification gate, 1 ticket per wallet per event, and a max of 5 tickets per transaction limit bulk buying. Group buys are sent straight to friends' verified wallets.
* The gate scanner checks a signed QR against on-chain ownership.
* Every resale pays the organizer a 6% royalty, and 20% of event revenue stays locked until the event ends.
Onchain Implementation
Network: Robinhood Chain Testnet (Chain ID 46630)
* TicketFactory: 0x0dB0a481Ef2d53228eD1dD269dFbc0b9fA2559f8
* MockUSDG: 0x29e688092F42e533A69dB2dA0Df576579a5cd7f9
* MockHumanVerifier: 0xaC3B0754697BfEB5A094B4578ba46848715C220F
* EventTicket: one contract per event, deployed by TicketFactory.createEvent()
* Explorer: https://explorer.testnet.chain.robinhood.com
What the contracts enforce
* Tiers (category x phase) with price, quota and sale window, up to 20 per event. Terms are immutable after publish.
* Price cap: max resale price = 2x the highest tier price in the category, computed at deployment.
* Transfer lock: transferFrom, approve and setApprovalForAll always revert. Tickets move only through buyTicket(), and only before the event starts.
* One ticket per wallet per event. Minting supports up to 5 recipients, and the buyer and every recipient must pass IHumanVerifier.
* Fees: 2% on primary sales; on resale, 4% platform + 6% organizer royalty.
* Holdback: the organizer can withdraw up to 80% before the event ends, and 100% after.
* State machine (SaleOpen, EventRunning, Ended) based on time. A demo-only time offset lets organizers jump between states for testing.
* Built with OpenZeppelin v5, ReentrancyGuard, SafeERC20 and checks-effects-interactions.
Gate check: the scanner recovers the signer from the owner's EIP-191 signature, compares it to ownerOf() on-chain, applies a +/-3 minute freshness window, and confirms the event state through the contract.
MVP status: the human verifier and USDG are mocks behind swappable interfaces (World ID / Gitcoin Passport and Paxos USDG are the next step). Cancellation with refunds is on the roadmap.
GitHub Repository
* Frontend (dApp): https://github.com/MuhammadZaidan1/chara-react-dapps
* Smart contracts: https://github.com/RajaswaRai/smart_ticket_contracts
## Tech Stack
* Smart contracts: Solidity, Foundry, OpenZeppelin v5
* Chain: Robinhood Chain Testnet (Arbitrum stack)
* Frontend: React 19, Vite, Tailwind CSS 4, React Router 7
* Web3: Viem 2, TanStack Query, Privy (embedded and external wallets)
* Storage: Pinata IPFS for event and ticket metadata and images
* QR: qrcode.react, html5-qrcode
* RPC: Alchemy. Hosting: Vercel
RWA Use Case
* Real-world asset: access to a live event. It is real-world utility, paid for with real money (stablecoin) and redeemed once, in person, at the venue gate.
* Tokenization: one ERC-721 per ticket, issued per event by the organizer through the factory, with metadata on IPFS.
* Rights in the token: single entry, resale capped at 2x, transfers only through the marketplace until the event starts, locked afterward.
* Link to the real world: the owner proves ownership at the gate with a signed QR checked against on-chain data.
* Why on-chain: rules are enforced by code, and anyone can audit supply, prices and revenue.
* Target market: live music ticketing, a $40B+ market (Omdia, 2025).
Try it: open /get-started, claim 1,000 mUSDG, click Verify Me, then browse events.
During the ETHJkt Hackathon, our team successfully built and deployed the entire end-to-end Chara platform on the Robinhood Chain Testnet (Chain ID: 46630).
Technical Milestones Achieved:
Smart Contract Architecture: Developed and deployed the TicketFactory, EventTicket (ERC-721 based), MockUSDG (ERC-20 payment token with faucet), and MockHumanVerifier (Identity layer) contracts using Solidity and Foundry.
Frontend & Integration: Built a fully responsive frontend using React 19, Vite, and Tailwind CSS. Successfully integrated Viem v2 for blockchain interactions and Privy for seamless wallet authentication.
Complex State Management: Implemented an Organizer Dashboard that handles multi-tier pricing matrices, draft saving via localStorage, and direct smart contract deployment.
Security & Verification Logic: Successfully implemented the EIP-191 personal_sign logic for QR generation and built the off-chain ecrecover validation system within our web-based Gate Scanner.
Time-Control Mechanisms: Built a specific "Demo Time Offset" feature into the smart contract and UI, allowing organizers to manipulate time (jump to 'Event Running' or 'Ended' states) specifically to facilitate rapid testing and judging during the hackathon.
Currently bootstrapped. We built Chara specifically for the ETHJkt Hackathon to validate the core technical architecture and market thesis. We have not raised any external capital or received grants prior to this submission. We are open to exploring grants, accelerator programs, or seed funding opportunities post-hackathon to further develop the platform, integrate real-world stablecoins (like Paxos USDG), and implement decentralized identity solutions (such as Gitcoin Passport or World ID).