Skip to content

boedegoat/tixchain

Repository files navigation

TixChain

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.

TixChain

Demonstration Video

Pitch Deck Video

🚀 Core Features

  • 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.

💻 Stack Used

Core ICP Technologies

  • Internet Computer Protocol (ICP)
  • Motoko
  • ICP Ledger
  • Internet Identity

Frontend Technologies

  • Next.js
  • Typescript
  • Tailwind

IPFS Provider

  • Pinata Web3

🛠️ Getting Started

Ensure you have the following installed:

Setting Up

  1. dfx start --clean --background
  2. dfx deps pull
  3. npm install
  4. npm run setup

Then setup pinata with the following steps:

  1. Log in to Pinata
  2. Navigate to API Keys
  3. Create a new API key:
    • Provide a descriptive name
    • Set appropriate permissions
  4. Copy the generated JWT Token
  5. Go to Gateways and note your domain
  6. Insert NEXT_PUBLIC_PINATA_JWT and NEXT_PUBLIC_PINATA_GATEWAY_URL into the .env file

Starting Frontend Dev Server

Follows the same steps on the Setting Up section, then run:

npm run dev

Deploying Changes to the Internet Computer

After making changes to the backend, you can redeploy it by running:

npm run deploy:be

After making changes to the frontend, you can redeploy it by running:

npm run deploy:fe

Or you can deploy both at the same time by running:

npm run deploy

Transfer ICP From Ledger to User Wallet

Check 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_ID

Note: RECEIVER_ACCOUNT_ID is the user deposit address


🙏 Credits and Acknowledgements

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! 🙏✨🚀

About

Revolutionize Event Tickets with Blockchain Magic!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors