TixChain is a 100% blockchain-based ticketing platform that connects fans, sellers, and event organizers directly and transparently. It uses the Internet Computer Protocol (ICP) to ensure secure logins and clear transaction records, eliminating the risk of counterfeit or duplicate tickets.
- Blockchain Integration: Utilizes Internet Computer Protocol (ICP) to address the problem of transaction transparency and security, ensuring all transactions are recorded securely.
- NFT-Based Ticketing: Solves the issue of ticket counterfeiting by issuing tickets as Non-Fungible Tokens (NFTs), ensuring each ticket is unique and verifiable.
- Secure User Authentication: Tackles security concerns by integrating Internet Identity for encrypted login and registration processes.
- Resale Ticket Control: Prevents scalping by enabling users to resell tickets with price control set by event organizers.
- Payment and Financial Features: Supports ticket purchases using ICP tokens, with a low platform fee of 5%, addressing the issue of high transaction costs.
- Internet Computer Protocol (ICP)
- Motoko
- ICP Ledger
- Internet Identity
- Next.js
- Typescript
- Tailwind
- Pinata Web3
Ensure you have the following installed:
- DFX (Dfinity SDK) - Installation Guide
- Node.js (Latest LTS version) - Download
- Pinata Account - Sign Up
dfx start --clean --backgrounddfx deps pullnpm installnpm run setup
Then setup pinata with the following steps:
- Log in to Pinata
- Navigate to API Keys
- Create a new API key:
- Provide a descriptive name
- Set appropriate permissions
- Copy the generated JWT Token
- Go to Gateways and note your domain
- Insert NEXT_PUBLIC_PINATA_JWT and NEXT_PUBLIC_PINATA_GATEWAY_URL into the
.envfile
Follows the same steps on the Setting Up section, then run:
npm run devAfter making changes to the backend, you can redeploy it by running:
npm run deploy:beAfter making changes to the frontend, you can redeploy it by running:
npm run deploy:feOr you can deploy both at the same time by running:
npm run deployCheck the balance of the ledger account:
dfx ledger balance $(dfx ledger account-id)Transfer ICP from the ledger account to the user wallet:
dfx ledger transfer --amount AMOUNT_IN_ICP --memo 0 RECEIVER_ACCOUNT_IDNote: RECEIVER_ACCOUNT_ID is the user deposit address
We'd like to extend our heartfelt gratitude to the incredible team at nekotip. Their amazing work served as a wonderful inspiration and reference during our hackathon development journey. Their contribution has been invaluable in shaping our project. Thank you for paving the way! 🙏✨🚀
