TokenGate — NFTチケットとダイナミックQRでの入場管理

Web

概要

TokenGateはNFTをチケットとして発行し、イベント入場を安全かつスムーズにするためのサンプル実装です。各チケットはERC‑721準拠のNFTとしてミントされ、所有者はウォレットでチケットを管理できます。入場時には動的に生成されるQRコードを使って「一度きり」のチェックインを行い、オンチェーン/オーナー確認によって二重使用を防止します。WalletConnect(Reown AppKit経由)を使ったウォレット接続機能を備え、転売や二次流通にも対応できる点が特徴です。本リポジトリにはスマートコントラクト、フロントエンド、デプロイ/ユーティリティスクリプトが含まれており、プロトタイプや学習用途に適しています。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 8
  • ファイル数: 6
  • メインの言語: JavaScript

主な特徴

  • NFT(ERC‑721)でのチケット発行と移転(転売)をサポート
  • オーナー限定のチェックイン(オンチェーン検証)で二重使用を防止
  • フロントエンドでの動的QRコード生成(ワンタイムQR)
  • WalletConnect(Reown AppKit)を使ったウォレット認証フロー

技術的なポイント

TokenGateはブロックチェーンと通常のWebフロントエンドを組み合わせる典型的なアーキテクチャを採っています。スマートコントラクト側ではERC‑721トークンによりチケットを発行し、トークンの所有権(ownerOf)に基づいて入場権を判断します。チェックイン処理は「オーナーのみ実行可能」にすることで、正しいウォレットが提示された場合のみ入場済みフラグ(あるいはburn/ロック)を設定する仕組みが想定されます。このオンチェーン状態により、物理的なQR検証だけでは不十分な「二重利用」「複製」を防げます。

フロントエンドはWalletConnect(Reown AppKit)を介して利用者のウォレットと接続し、保有するトークン一覧やトークンIDに紐づく動的QRを生成します。動的QRは一般にトークンID+タイムスタンプやワンタイムノンスを組み合わせてフロントエンドで署名し、その署名を入場端末(リーダー)が検証する方式が採られます。より安全にするにはEIP‑712(構造化署名)やサーバ側での短期トークン発行+コントラクト照合を併用するのが有効です。

運用上のポイントとしては、ガス代とUXのバランスが重要です。オンチェーンでチェックイン状態を記録する場合、来場者側または会場側がトランザクションを送る必要がありガスが発生します。これを避けるために会場運営側がチェックイントランザクションを代行する、あるいはメタトランザクションでガスを吸収する仕組み(リレーヤー)を導入することが現実的です。また、QRのオフチェーン署名+オンチェーンの最終照合というハイブリッド方式はコスト削減とセキュリティの両立に有効です。

さらに、転売を許可するERC‑721設計は流動性を生みますが、転売後もチェックイン履歴や再発行の扱いに注意が必要です。イベント主催者は時間制限、ブラックリスト、入場権の無効化(burn)などのルールをスマートコントラクトで明確にすることで不正防止を強化できます。最後に、監査・テスト(ユニットテスト、フォーマル検証)と安全なKey管理、フロント/バックエンドの通信暗号化は必須です。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • contracts: dir
  • frontend: dir
  • scripts: dir

…他 1 ファイル

まとめ

NFTを用いたチケット運用の基本に動的QRとWalletConnectを組み合わせた実践的なサンプルです(約50字)。

リポジトリ情報:

READMEの抜粋:

🎟️ TokenGate

TokenGate is an NFT-based ticketing system with Dynamic QR Code Check-in and WalletConnect (via Reown AppKit) integration.
Each ticket is minted as an NFT, tradable on secondary markets, and validated at the event gate with a one-time QR.


✨ Features

  • 🎫 Mint unique NFT tickets (ERC721)
  • 🔑 Owner-only check-in
  • 🚫 Prevents double use
  • 📱 Dynamic QR generation
  • 🔗 WalletConnect integration
  • ✅ On-chain validation

📂 Repo Structure

  • contracts/...