🔧 プロダクトと技術
動いているものが、すべてを証明する。
トークンのホワイトペーパーの多くは、まだ存在しないソフトウェアを記述します。この章が記述するのは、今日ダウンロードできるソフトウェアです。3つのネイティブiOSアプリはリリース済みでApp Storeに公開中、Webプラットフォームは本番稼働中、Solanaトークンサービスはすでにメインネット上で本物のNFTをミントし、本物の決済を検証しています。トークンの長期的な経済を司る2つのスマートコントラクトはコード完成済みで、段階的監査が進行中です — そして私たちは、正確にそのとおりのことだけを述べます。それ以上は言いません。
スイートの全体像
すべてのクライアント — iOSもWebも — はひとつのDjangoバックエンドと通信し、Solanaと通信するのはバックエンドだけです。アプリがチェーンに直接触れることはありません。ルールは常に アプリ → Django → Solana です。
⛩️ Matsuri — コンシューマーアプリ
ゲストと居住者のためのメインアプリ:予約、決済、ショッピング、クラウドファンディング、ライブ配信、マイニング、そしてフル装備のオフライン災害ライフライン — すべてがひとつの場所に、ゲストモードでも使いやすく。
アプリは5つのタブ — イベント、ショップ、レストラン、クラウドファンディング、マイページ — を軸に構成され、ライブ配信、検索、ウォレット、NFT、災害ハブにはどこからでも到達できます。各サーフェスには専用の章があり、この表はあくまで地図です。
| サーフェス | ひとことで |
|---|---|
| イベントと体験 | ツアー・イベント・交流会・教室の予約。QRチケットとスタッフチェックイン — 体験 |
| レストラン | 食事制限フィルター付きの発見機能と本物のテーブル予約エンジン — レストラン |
| ショップ | KYC承認済みセラーのマーケットプレイス。エスクロー注文とNFT商品 — ショップ |
| クラウドファンディング | ティア別MTCキャッシュバック付きのAll-or-Nothingキャンペーン — クラウドファンディング |
| ライブ | チャット・ドロップ・5レールのチップを備えた配信 — ライブ配信 |
| マイニング・ウォレット・NFT | 参拝マイニング、ARおみくじ、MTCウォレット、NFTギャラリー — マイニング |
| 災害ライフライン | オフライン避難所マップ、メッシュメッセージング、SOSビーコン — 災害ライフライン |
| 決済 | Stripe(カード、Apple Pay)、Solana Pay / Phantom、MTC残高 — 価格は常にサーバーサイドで再計算 |
機能だけではありません。アプリはiOSプラットフォームに深く寄り添っています:ホーム画面ウィジェット、Siri App Intents、Spotlightインデックス、注文・支援・ライブ配信のLive Activities、そしてユーザーごとにサーバーサイドでローカライズされるプッシュ通知。
災害ライフラインの内側
災害ライフラインの章は「何ができるか」を扱いました。ここでは「なぜ他のすべてが止まっても動くのか」を扱います。設計上の制約は苛烈なほどシンプルです。すべてのライフラインツールは、完全オフラインかつログインなしで動かなければならない。
全国の避難所データセットはアプリバイナリに同梱 — 避難所マップ、距離リスト、大圏方位の避難所コンパスはネットワークを一切必要としません。5言語の安全ガイドも同じ方法で同梱されています。
携帯網が死んだとき、スマートフォンがネットワークになります:オフラインのP2Pメッシュ掲示板が投稿を端末から端末へマルチホップ中継し、すべてのメッセージは発信端末によって暗号学的に署名されます — 5ホップを旅した投稿も、途中で偽造することはできません。
DisasterWatchdogサービスが起動時とフォアグラウンド復帰時にJMA(気象庁)の公開フィードをポーリングし、重大な事象があれば全画面の災害ハブを自動表示します — ゲストもログインユーザーも同じです。
「無事です」は、生き残ったどのチャネルからでも発信できます:メッシュ、SMS、システムの共有シート、そしてweb171 — 日本の公式災害用伝言板。
🛡️ GCF Admin — 運営者のアプリ
GCF(Global Community Friends)メンバーとスタッフのための運営アプリ:Web管理ポータル(gcf.works)でできることすべてを、スマートフォンで。
| サーフェス | ひとことで |
|---|---|
| ダッシュボード | KPIカード、収益チャート、クイックアクション |
| メンバー | メンバー一覧・詳細・ティア管理 — GCF |
| 収益 | コミッションのトラッキングと支払い管理 |
| コンテンツ | イベント・記事・ポッドキャスト・動画の作成と公開 |
| ガイドスロット | ガイドマーケットプレイスの公開と監視 — 体験 |
| 聖地とビーコン | 聖地の管理とスポンサードビーコンの設定 — マイニング |
| マイニング設定 | ベーシスポイント単位のおみくじ確率、リアルタイム調整の動的倍率 — マイニング |
| リファラル | ブランド入りQRコードの生成とリファラルのトラッキング |
マイニング経済の舵はこのアプリで取られます。訪問者を過疎地域へと導く動的倍率(0.01×–50×)、おみくじの確率テーブル、自治体や事業者が出資するスポンサードビーコン — すべてはハードコードではなく、ここから運用されています。
📰 J-Times — メディアアプリ
「日本を、世界へ / Japan, to the World.」文化メディアアプリ:記事・ポッドキャスト・動画 — 読むことそれ自体がMTCになる場所。
| サーフェス | ひとことで |
|---|---|
| 記事 | 読了進捗付きのリッチリーダー。編集部のスタックにはAI記事生成とTTSも — メディア |
| ポッドキャスト | Japan DecodedやTech Japan Forwardを含む6シリーズ |
| 動画 | シリーズものとショート動画 |
| メディアマイニング | 読む・聴く・観る・クイズに答えるとMTC — 1日上限50 MTC — メディア |
| プラン | Free / Premium / Proの読者ティア。プレミアムアイテムはStripeで単品販売 |
エンゲージメントはユーザーごと・コンテンツごとに進捗トラッキングされ、報酬レートは管理側で調整可能、報酬間には5分のクールダウン、そして1日50 MTCの上限 — 注意を報いつつ、蛇口にはならないマイニングです。
📦 共有されるひとつのコア:JCCore
3つのアプリはすべて、共有SwiftパッケージJCCoreの上に構築されています — リスクの高い配管を3つの漂流するコピーではなく、ひとつの実装として持つためです。
| モジュール | 役割 |
|---|---|
| JCAuth | Keychainベースのトークン保管、セッション管理、生体認証(Face ID / Touch ID) |
| JCNetworking | 型安全なAPIクライアント、WebSocket対応、snake_caseワイヤ形式の自動変換 |
| JCModels | 共有データモデル — ユーザー、トークン、ページネーション、メンバーシッププラン |
| JCDesign | テーマプロトコルとデザイントークン(スペーシング、角丸) |
| JCUtilities | 日付・文字列ユーティリティ |
ユーザーが体感する帰結のひとつ:正典の4ティアメンバーシップラダー(レベルとティア)は、どのアプリでも同じ意味を持ちます。同じコードがデコードしているからです。
🖥️ バックエンドプラットフォーム
バックエンドは、経済全体を運転する単一のDjangoモノリスです — 予約、エスクロー、クラウドファンディングの台帳、ライブ配信、マイニング、そして動くすべての1円と1 MTC。
- フレームワーク
- Django 4.2 + Django REST Framework
- 非同期処理
- バックグラウンドジョブのためのCeleryタスクキュー
- リアルタイム
- Django ChannelsのWebSocket — チャット、ライブインタラクション、プレゼンス
- データベース
- PostgreSQL
- ライブ映像
- LiveKit、Hetznerでセルフホスト — サードパーティ配信への依存なし
- 法定通貨レール
- カードとApple PayはStripe。セラーのオンボーディングと支払いはStripe Connect
- 決済の安全性
- 状態を変更するすべての決済呼び出しにIdempotencyキーを必須化
- 価格
- 価格は常にサーバーサイドで再計算 — クライアントが自分の価格を名乗ることはできない
- チェーンアクセス
- アプリ → Django → Solana、例外なし
暗号資産決済フローは、このアーキテクチャルールの実践例です。アプリがSolanaトランザクションを自ら構築・検証することはありません — ユーザーをPhantomへ、証明をDjangoへ手渡すだけです。
決済の途中で中断されても — 着信、バッテリー切れ、ネットワーク断 — アプリは次回起動時に保留中のPhantom決済を再開し、Idempotencyキーが予約の確定をちょうど1回だけ保証します。
🔏 トークンサービス — オンデマンドのミント
Solanaに実際に触れるすべてを、専用の3層スタック(メインネットで稼働中)が担います。
- Minting API(Django + DRF + Celery) — Matsuri・GCF・J-Timesの各プラットフォームが呼び出す、APIキー認証のエンドポイント。NFT/SBTの自動発行、トークン操作、オンチェーンメタデータ管理を担います。
- Solana署名サービス(Node.js + Fastify) — 署名能力を持つ唯一のサービス:SPLトークンの作成と送金、権限の放棄、メタデータ更新、SBTミント、Metaplex Core Collectionの管理。インデクサー遅延に耐えるリトライ/バックオフ付き。
- 管理ダッシュボード(Next.js) — コインとメタデータの管理:メタデータの恒久ホスティングのためのArweaveアップロード、クリエイター情報、検証フラグ。
これが、プラットフォームの本物のアセットをミントするスタックです:イベント参加NFTドロップ、御朱印おみくじNFT、GCF PlatinumのSBT証明書 — すべてMetaplex Coreアセットとしてコレクションにまとめられ、Phantomのようなウォレットで正しく表示され、すべてSolscanで検証可能です。
🔐 セキュリティとプライバシー
認証トークンはiOSのKeychainに暗号化して保管。Face ID / Touch IDが機微な操作をゲートします。
全面HTTPSに加え、アプリとバックエンド間には証明書ピンニング。
プラットフォームがユーザーの秘密鍵を持つことはありません。署名はPhantomに委譲 — アプリがリクエストを渡し、ウォレットが署名し、バックエンドがオンチェーンで検証します。
ウォレットとアカウントの連携には、サーバー発行の新しいチャレンジへの署名が必要です。傍受された署名を再利用して他人のウォレットを主張することはできません。
参拝マイニングのチェックインは200 mジオフェンス、GPS精度・近接チェック、1ユーザー・1聖地・1日1回の制限を強制します — テレポートするボットは何も稼げません。
MTC残高は監査された追記専用台帳に記録され、セルフカストディへの出金は限度額・クールダウン・不正スクリーニングを通過します。
✅ エンジニアリング品質
Rustのコントラクトは、アプリよりもさらに厳しい基準を自らに課しています。clippy警告ゼロ、プロダクションコードにunwrapもpanicもゼロ、ユニットテストと並走するプロパティベーステスト — 一度デプロイされたコントラクトコードは、火曜日にパッチを出すことができないからです。
⚖️ スマートコントラクト — オープンソースの設計
今日オンチェーンにあるもの:MTC SPLトークン(900M固定、mint・freeze権限とも放棄済み)、550M MTCのStreamflowロック(クリフ2027-06-01)、Raydium MTC/SOL初期LP、そして本番アプリのSolana Pay / Phantom決済検証。それ以外は何もありません。
以下のプログラムはコード完成済みで、いかなるクラスターにも未デプロイです。セキュリティはHashlockとの段階的監査(2026年4月、TEAMZ Summit Tokyoで開始)として進行します。Phase 1はmatsuri-buybackが対象 — 提出パッケージ完成済み、キックオフ目標2026年8月、指摘事項9月、最終レポート10月、メインネットデプロイ目標はDEX上場後の2026年10–12月。Phase 1.5はmatsuri-vestingとmatsuri-distributionが対象で2027年Q1、2027-06-01のグランドアンロックで稼働します。私たちはこのいずれも「監査済み」とは表現しません — 監査準備が完了し、段階的監査が進行中である、それだけです。
すべてのコントラクトコードはオープンソースです:github.com/Cootakahashi/matsuri-contracts。セキュリティは秘匿ではなく、目に見える設計の上に成り立ちます。目標アーキテクチャは次のとおりです。
matsuri-buyback — 収益の受け口
買い戻しコミットメント — Matsuri本部売上の20%とGCF会費の25% — をオンチェーンのMTC需要に変えるプログラムです。その本質的な性質は、トレジャリーではなくコンベアであることです。
- 役割
- 収益をMTCへアトミックにスワップして転送 — ホワイトリスト済みトークンを受け取り、スワップし、転送する
- スワップ経路
- CPI経由のJupiter v6。Jupiterプログラムidはピン留めされ不変
- 受け入れトークン
- ローンチ時はMTC・USDC・SOL — ホワイトリストは権限者が管理
- スリッページ防御
- 3層構造:実行時bpsは、不変の初期化時上限の内側、さらにコンパイル時のハードシーリング10%の内側
- タイムロック
- 受取先と権限者の変更は提案/実行/取消のフロー。期間は24時間–30日に制限
- 残高を保持しない
- すべてのスワップ後にゼロ残高の事後条件を強制 — トランザクション間に盗めるものが存在しない
- 規模とテスト
- 1,797 LOC、17テスト(ユニット13 + プロパティ4)
- ステータス
- コード完成済み、Hashlock Phase 1監査対象 — 未デプロイ
Phase 1では転送先はSquadsマルチシグです。Phase 2では、収益をLP注入とエコシステムプールへ分配するBuyback Splitterに置き換わります。
matsuri-vesting — ひとつの金庫、ひとつの受取先、ひとつの時計
グランドアンロックのスケジュールを実行するプログラムです。意図的に退屈に作られています。マイナーもスコアリングもクレームもなく — あるのは時計の上の算術だけです。
- 設計
- ひとつの金庫、タイムロックで守られたひとつの受取先、ひとつの時計
- プール
- 550M MTC。2027-06-01にStreamflowのクリフから到着
- エポック
- 730日(2年)のエポック。各エポックで残プールの50%を解放
- 解放経路
- advance_epoch_and_releaseはパーミッションレスのクランク — 期限が来た解放は誰でも起動できる
- 不変性
- 半減係数・エポック長・総プールは初期化時にロックされ、二度と変更できない
- 規模とテスト
- 1,629 LOC、26テスト(ユニット22 + プロパティ4)
- ステータス
- コード完成済み、Phase 1.5監査対象(2027年Q1) — 未デプロイ
Phase 2の設計リファレンス
さらに3つのプログラムが公開された設計リファレンスとして存在します — 透明性のために公開し、デプロイ対象外であることを明示し、後の監査フェーズでの強化を予定しています。
| プログラム | 設計意図 |
|---|---|
| matsuri-worship | 参拝ルーティングエンジン — マイニングのオーバーツーリズム対策倍率のオンチェーン版 |
| matsuri-referral | 縁マイニングのためのリファラルツリー — マイニング |
| matsuri-distribution | マイナーごとのスコアリング付き半減期分配 — Phase 1.5の監査スコープに向けて磨き込み中 |
Phase 2のDistribution Router(ベスティングから参拝・リファラル・汎用プールへのファンアウト)とBuyback Splitterは設計段階のみです。各プログラムが監査フェーズを通過するまで、対応するロジックはオラクルとしてDjango内でオフチェーン実行されます — 同じルールが、段階を踏んでトラストレスな実行へと格上げされていきます。
共通の設計原則
- すべての箇所でチェック付き算術 — 未チェックの計算はなく、プロダクションコードパスにunwrapもpanicもゼロ。
- 純粋な数学モジュール — 報酬と解放の計算は、副作用のない、徹底的にテストされた
mathモジュールに隔離。 - 権力の分立 — 権限者は制限付きタイムロックを通じてのみ変更を提案でき、pauseはプログラムを停止させても、資金を動かすことも押収することも決してできない。
- 不変の経済 — トークンの希少性を定義するパラメータは、意図して初期化時にロックされる。
アプリは出荷されました。バックエンドは稼働しています。コントラクトは書かれ、テストされ、監査の列に並んでいます。残るのは順序立てです — そしてロードマップが、それを日付とともに示します。