NFT Ticketing (Polygon)
How NFT tickets are minted, transferred and used for event entry
NFT Ticketing on Polygon
MomentMM mints ERC-721 NFT tickets on the Polygon network. NFT tickets provide verifiable ownership, transferability, and collectible value.
How NFT Tickets Work
- When a user's RSVP is confirmed and paid, the platform mints a unique ERC-721 token containing event metadata (date, location, seat, host, tier).
- The token metadata is stored on IPFS (preferred) or centralized storage and the tokenURI references that metadata.
- Initially, tickets may be held in the server wallet and transferred to the user's wallet for free (MomentMM pays gas for the transfer).
Minting Flow
- Backend calls
/api/mint-nftwith the user address and token metadata. - The Polygon contract mints the token and returns a transaction hash and token ID.
- The system stores the token record in
nft_ticketswith statusminted. - When transferred to the user, status updates to
transferredand the user's collection is updated.
Claiming & Transfers
- Users can transfer tickets to their personal wallets via the NFT Dashboard.
- Tickets are tradable on secondary markets (OpenSea, Blur, etc.) once transferred to user-controlled wallets.
- Ticket transfers, listings, and sales are governed by the ERC-721 contract's standard behavior.
Event Entry & Verification
- Hosts verify entry by scanning a QR code which references the token ID and checks ownership on-chain.
- Attendance is recorded immutably once verified, enabling reputation and collectible history.
Gas & Fees
- Polygon gas fees are minimal. MomentMM may cover the mint and initial transfer gas as part of onboarding.
- Secondary market transactions are borne by the buyer/seller.
Privacy & Metadata
- Event metadata should avoid storing sensitive personal data directly on-chain.
- Use IPFS or encrypted off-chain storage for any personal attributes that require privacy.
Troubleshooting
- If a mint fails, check
api/mint-nftlogs and polygon transaction status. Admins can re-mint if necessary. - If you don't see your ticket in an external wallet, ensure the transfer from server wallet completed and that you are connected to Polygon network in your wallet app.