Skip to content

shogo0525/thirdevent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 

Repository files navigation

thirdevent

NFT を活用した、イベント・勉強会運営プラットフォーム

目的

NFT を活用したイベント・勉強会運営プラットフォームを開発し、貢献・学習の可視化をしたい!

課題

従来のプラットフォームでは、イベントや勉強会の運営したり、参加しても、運営および参加した証は発行されず、貢献や学びを可視化することができない。

特にイベント運営や登壇はその行動価値が高いにもかかわらず、登壇を証明する手段がない。

さらに、イベント(特に勉強会)の運営は、有志のチームがボランティアで主催することも多く、継続的に運営をするためには参加費を徴収する必要がある。しかし、現行の決済サービスでは高い手数料が発生したり、収益の分配が煩雑である。

背景

私は普段地方で IT 勉強会を開催しているが、登壇者(LT 発表者)への感謝の証として登壇証明書(SBT)を発行し、その証明書がその人にとって今後何かしらの役に立つといいなという思いがある。

同様に、貴重な時間と資金を投じて学びに参加する参加者に対しても参加証明書を発行したい。

意図

学習や発表という行動を証明できることで、個々のキャリアアップや転職を支援する世界観を目指している。

また、「X イベントの参加/登壇 NFT を持っていると、Y イベントに参加できる」といったような NFT を基盤としたマーケティング手法をイベント運営者に提供したい。

中長期的には、プラットフォーム(thirdevent)の売上の一部をトレジャリーに保管し、その資金の使い道をプラットフォーム利用者で決めるといったような、DAO 要素を入れたい。

例:海外から人を招待し大規模なイベントを開催する

例:イベント開催時に排出されてしまう CO2 をオフセットする

ソリューション

NFT ベースのイベント運営プラットフォームを開発する。

登壇者・参加者・Zoom 参加者・サポーターなど、チケットの種類に応じて NFT を発行しする。NFT 購入者はイベント参加時や参加後に参加証明を claim することができるようにする。

また、暗号資産による NFT 発行と決済を通じて、決済手数料をゼロに抑え※1、かつチーム内での収益の分配を自動化する。

このようにして、学習の価値を可視化し、参加者の学びと成果を持続的に記録する、今までにないイベント運営プラットフォームを提供する。

※1 ガス代およびプラットフォーム手数料を除く

技術スタック

  • フロントエンド: Next.js, TypeScript, Chakra UI

  • スマートコントラクト: Solidity, Hardhat

  • DB・ストレージ: supabase

  • ホスティング: Vercel

今後の課題

  • メタマスク以外のウォレット対応

    • ローカルウォレット
  • 対応通貨の拡充

    • 日本円、ステーブルコインなど
  • ガスレスによる UX 向上

    • ガス代を個人ではなく、グループで負担する(Account Abstraction によって実現可能見込み)
    • イベントごとに募ったスポンサーが負担
    • プラットフォーム側でキャンペーンとして負担
  • 売上の引き出しのマルチシグ対応

  • セキュリティの向上

    • supabase の RLS を設定
  • チケット NFT のマーケットプレイス

  • イベントに対する機能充実

    • イベント検索
    • ハッシュタグ
  • その他、オフチェーンで管理しているデータリソース CRUD

  • 全体的な UIUX の向上、エラーハンドリング

DEMO

動作確認

全ユーザー共通

  • 右上のログインボタンをクリックし、MetaMask の署名の上ログイン
  • ハンバーガーメニューからログアウト

イベントオーナー

  • グループ作成(要 MATIC)
    • イベント運営するためのグループを作成
    • ハンバーガーメニューから グループ作成 をクリックする
    • グループ名、画像を設定して、グループを作成する
  • イベント作成(要 MATIC)
    • グループを選択、イベント名、説明、画像を設定して、イベントを作成する
  • チケットの追加(要 MATIC)
    • イベント詳細ページで、+ボタンをクリックし、チケットを追加する
    • チケット名、料金(MATIC)、定員、参加者タイプ、購入条件の要否、画像を設定する
      • 参加者タイプは Listener(一般参加者)か Speaker(登壇者)を選ぶ
      • 購入条件
        • なしの場合: 誰でも購入可能な状態
        • ありの場合: 条件の種類を選ぶ(Allowlist, Code, NFT)
          • Allowlist: 購入できるウォレットアドレスを指定できる。カンマ区切りで入力する。
            • 入力例
            • 0x299aC31535F69cAdA4158d3C50660eB03095d57E,0xC274Db247360D9aA845E7F45775cB089B4622Ffe
          • Code: 購入の際に、クーポンコードや合言葉などの入力を条件にできる。
            • 入力例
            • thirdevent2023
          • NFT: 特定の NFT を保有していることを条件にできる。カンマ区切りで入力する。(現在は Mumbai のみ対応)
            • 入力例
            • 0x750dc4efa142f04a1ab6b5cd93dd54ff4db1f779,0x9f9ff88a45f2e73096a044779395003210701cd9
  • QR コードの発行
    • 参加受付のための QR コードを発行する。この QR を参加者が読み取ることで、チケット NFT が転送不可の「参加証明 SBT」としてブロックチェーンに刻まれる
    • イベント詳細ページで、イベント管理ボタンをクリック(グループメンバーのウォレットでログインが必要)
    • QR コードの発行で、QR の読み取り期限を設定し発行する
  • 売上分配の設定
    • 売上分配設定をしていない場合、チケット購入された瞬間に料金の 99%が グループコントラクト に自動送金される
      • グループ詳細ページから、任意のタイミングで指定のアドレスに引き出しをすることができる
    • 売上分配を設定している場合、チケット購入された瞬間に料金の 99%が Splitコントラクト に自動送金される
      • Split コントラクトはイベントごとに設定できるため、イベントごとの売上分配を実現できる
      • Split コントラクトは thirdweb で作成する
      • 作成した Split コントラクトのアドレスを、イベント管理ページで設定する(要 MATIC)
      • 最終的に引き出す際に、Split コントラクト作成時に設定した割合に応じて、MATIC が自動送金される

イベント参加者

  • チケットの購入(要 MATIC)
    • 欲しいチケットの購入ボタンをクリック
      • 購入完了後、OpenSea でチケット NFT が発行されていることを確認
  • イベントの参加確定(要 MATIC)
    • イベントオーナーが発行した QR コードを期限内に読み取り、Claim することでチケット NFT を SBT にすることができる