Mintatix is a full-stack Web 3 solution that turns event tickets into non-fungible tokens (NFTs) on Ethereum. It pairs a gas-optimised, upgradeable Solidity smart-contract (ERC-721A) with a React + Wagmi front-end so organisers can mint, sell and validate tickets while protecting fans from scams, fraud and price gouging. You can try the final version deployed on Sepolia Network at: https://mintatix.ddns.net
| Category | Highlight |
|---|---|
| Primary flow | • Mint primary-stock tickets (one or many per adress) • Secondary market with fixed-limit price resale |
| Limit per address | Each wallet can hold up to maxTicketsPerAddress tickets |
| Price control | Resellers cannot list above +30 % of original face value, stopping predatory mark-ups |
| Fraud defence | State machine (Active → Pending → Redeemed) blocks sales of already-used tickets |
| Time windows | Event start/finish limits disable trading or redemption after the show ends |
| Secure redemption | Commit-reveal scheme + QR code lets gate staff validate tickets |
| Gas efficiency | Uses ERC-721A Upgradeable and custom errors to keep byte-code size & gas low |
| Chain agnostic | easily switch RPC for Mainnet, Gnosis, etc. |
- Smart contract: Solidity 0.8.x, Hardhat, OpenZeppelin upgradeable libs, ERC-721A
- Front-end: React 18, TypeScript, Wagmi + Viem for wallet/contract I/O, React Router, QRCode.react
Prerequisites
- Node ≥ 18 & npm (or pnpm/Yarn) https://nodejs.org/en/download
- A MetaMask wallet with at least one of the Hardhat tests adresses:
Account #0: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
Private Key: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
Account #1: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8
Private Key: 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
Account #2: 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC
Private Key: 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a
git clone https://github.com/lucas12avl/Mintatix.git
cd Mintatix
npm install
npx hardhat node # starts the Hardhat Network
npx hardhat test # run unit tests (optional)In another terminal inside mintatix directory:
cd ./modules
npx hardhat ignition deploy ./Mintatix.js --network localhost # this file will deploy the smart contracts on your Hardhat NetworkIn another terminal inside mintatix directory:
cd frontend
npm install
npm run dev # starts Vite dev server on http://localhost:5173- Connect Wallet – Open the DApp, connect MetaMask and switch to the network requested by the ChainSwitcher popup.
- Buy Primary Tickets – Visit Events page, pick a show and click Purchase. Hardhat network or Sepolia will prompt for gas.
- Resell – Go to My Tickets, choose a ticket in
Activestate, set a price ≤ 130 % face value, and list. - Redeem at Venue – In
Activestate press Redeem to generate a one-time QR; gate staff scan within 10 min to finalise. - Admin tasks – Organiser wallet can add validators, withdraw funds, or update base URI (smart contract only).
Lucas Dalmau




