RTF Ticketing Service
Our solution is a platform designed exclusively for minting and reselling of tickets for RTFight by leveraging RTF network and the ERC-721 standard, it ensures indisputable proof of authenticity and ownership for each ticket. Connect your wallet. Mint new NFT tickets for RTF boxing events. View and manage your inventory of verified tickets. Resell and buy tickets with ease.
Smart Contracts
RTFTicketscontract:- Inherits from the OpenZeppelin
ERC721URIStorageandOwnablecontracts. - Holds an interface to the
MockRTFTokenERC-20 contract. - Maintains mappings to store ticket prices and listed sale prices.
setTicketPrice&mintTicket: Allows the contract owner to set ticket prices and mint new tickets by transferring the required amount of MRTF tokens from the minter's account to the contract.listTicketForSale: Enables ticket owners to list their tickets for sale by setting a sale price.buyTicket: Allows users to buy listed tickets by transferring the required amount of MRTF tokens from their account to the seller's account.- Emits events when tickets are listed for sale and sold.
- Includes helper functions for checking token existence (
isTokenMinted) and retrieving token metadata (getTokenMetadata). - (Deployed contract address: 0x0E77F3E63A43076E8E1795C2eeAc9b1434109B91)
- Inherits from the OpenZeppelin
MockRTFTokencontract: This is a simple ERC-20 token contract that mints an initial supply of 1,000,000 tokens to the deployer's address upon deployment. It also includes amintfunction that allows the contract owner to mint additional tokens. This mock token is for testing purposes only. (Mock RTF "MRTF" Token deployed contract address 0xa356c6Fc5D93e638124a8C6BfBA3643FB45F853a)Tests: The tests are written using Hardhat's testing framework and Chai's expect library. The tests cover the following scenarios:
- Setting ticket prices as the contract owner
- Minting tickets as a user
- Listing tickets for sale as a user
- Buying listed tickets as a user
- Verifying ownership transfer after buying a ticket
deployRTFTickets.ts: The deployment script deploys the RTFTickets contract and sets the MockRTFToken contract address as a parameter. It also logs the contract addresses to the console.
Frontend Features
- Ticket Minting for Authentication: Utilize ERC-721 Standard to create digital tickets.
- Inventory for reselling: A secure and transparent platform for managing your tickets.
- NFT Marketplace: Allows users to buy unique digital tickets for RTF boxing events.
Example dApp is served on Vercel
Demo
Future Implementations
- Ticket Cancellation: Add a function to the
RTFTicketscontract that allows ticket owners to cancel their listed tickets. This could be useful if a ticket owner wants to remove their ticket from the marketplace. - IPFS Integration for Metadata: Integrate IPFS (using Pinata) to store ticket metadata. This will allow for decentralized storage of ticket metadata, making it more secure and transparent.
- Ticket Transfer Functionality: Implement a function that allows ticket owners to transfer their tickets to other users. This could be useful for gifting or transferring tickets to friends or family members.
- RTF Network Integration: Integrate with the RTF Network, such as using their APIs to fetch event data or authenticate users.
- Ticket Refund Mechanism: Add a function to the
RTFTicketscontract that allows for refunds in case of event cancellations or postponements. - Enhanced User Experience: Improve the user experience of your dApp by adding features such as:
- Filtering and sorting options for tickets
- Ticket recommendations based on user preferences
- User profiles to display ticket ownership and purchase history
- Notifications for ticket listings, sales, and cancellations
- Integrate with Other Wallets: In addition to WalletConnect, integrating with other popular wallets such as Coinbase, Trust Wallet, or Ledger Live.
- Analytics and Reporting: Add analytics and reporting features to track ticket sales, revenue, and user engagement.
Built with:
- OpenZeppelin: ERC-721 Standard
- ERC-20 Standard
- RTF Network
- Node.js, Express.js & npm
- Solidity 0.8.20
- Hardhat
- Ethers.js
- Chai
- Next.js 12.0.7 / Typescript
- Axios
- WalletConnect web3modal (wagmi & viem)
- Chakra UI
- Icons from React Icons (Material Design) & @chakra-ui/icons
- Vercel
- Code style and formatting: Prettier, ESLint

Log in or sign up for Devpost to join the conversation.