紹介

MPL-3643 をはじめる

Last updated September 28, 2026

このページでは、MPL-3643 で構築を始める前に整えておくべきもの、進むべきパス、そしてトークンのローンチ、投資家のオンボーディング、コンプライアントな転送のフローの形を説明します。

MPL-3643 は Solana メインネット上でアーリーアクセスとして稼働しています — アルファアクセスをリクエストして開発を始めてください。

監査状況

MPL-3643 は監査を受けていません。Metaplex と調整することなく実資産をカストディしないでください。

概要

MPL-3643 での構築とは、Token-2022 ミントを Token ACL、4つの MPL-3643 プログラム、そして KYC プロバイダーと組み合わせることです。1つのステップが不可逆であるため、実行する順序が重要です。

パスを選ぶ

MPL-3643 に対して構築するオーディエンスは3つあり、それぞれ最初に必要なものが異なります。

あなたはやりたいこと該当するフロー
RWA 発行体コンプライアントなトークンのローンチと管理トークンローンチの流れ
統合開発者ウォレット、取引所、アプリから MPL-3643 トークンを移動するコンプライアントな転送の流れ
KYC プロバイダークレームを発行して投資家を適格にする投資家オンボーディングの流れ

どのパスを選んでも、1つの事実がすべてを決定づけます:すべての MPL-3643 トークンアカウントは作成時に凍結されており、コンプライアンスを満たすウォレットだけが解凍できます。

前提条件

ツール

要件バージョン理由
Node.js20.18.0 以降TypeScript SDK と生成されたクライアントに必要
Solana CLI2.1.0 以降デブネットとのやり取りとキー管理
デブネット RPC エンドポイント—Token-2022 をサポートしている必要あり

Rust インテグレーターは、プログラムのビルドに使われている Anchor と Solana のツールチェーンバージョンも追加で必要です。

オンチェーンの前提条件

あなたのトークンに対して MPL-3643 の命令が成功するには、事前に4つの条件が満たされている必要があります。

  1. ミントが DefaultAccountState = Frozen の Token-2022 であること。 この拡張はミント作成後に追加できません。
  2. 凍結権限が Token ACL に委譲されていること。 Token ACL 設定でパーミッションレスな解凍と凍結の両方が有効化され、これらの設定を後から変更できないよう設定がシールされている必要があります。
  3. レジストリのトークン発行者ロールグラントを保有していること。 これにより、Metaplex の連署なしに自身のコンプライアンス、ゲート、イールドの設定を作成できます。
  4. 必要とするすべてのトピックを信頼済みアテスターがカバーしていること。 ピン留めするアテスターはアクティブであり、KYC に加えてトークンの必須トピックセットのすべてについて認可されている必要があります。

ミントに関する2つの決定は後から変更できません

DefaultAccountState = Frozen と transfer hook 拡張は、どちらもミント作成時に固定されます。フックなしのミントは転送ごとのモジュールを後から獲得できません — ロックアップも、取引量上限も、ブラックアウトウィンドウも、取引所制限も不可能です。ミントを作成する前に決めてください。

トークンローンチの流れ

コンプライアントなトークンのローンチは、プログラムによって順序が強制されるブートストラップシーケンスです。

  1. Token-2022 ミントを作成します。DefaultAccountState = Frozen を設定し、転送ごとのモジュールが将来必要になる可能性があれば transfer hook 拡張も追加します。
  2. ミントの Token ACL 設定を作成し、両方のパーミッションレスフラグを有効化してシールします。
  3. ゲート設定を初期化します — 生のミント権限が必要です。これによりトークンのトラストスコープも作成されます。
  4. 受け入れる KYC プロバイダーをトラストスコープに追加します。
  5. トークンが使用する場合は、ライフサイクルのイールドおよびリカバリー設定を初期化します — 生のミント権限が必要です。
  6. コンプライアンス設定を初期化します。これが権限移転の境界です。
  7. ゲートの extra account meta リストを初期化します。これはライブのコンプライアンス設定を読み取り、ゲートをバインドします。
  8. モジュールを有効化・設定し、Compliance Module のミントフローを通じて初期供給をミントします。これにより保有者アカウンティングが同期されます。

ステップ6は一方通行の扉です

コンプライアンス初期化は、ミントの MintTokens 権限を ComplianceConfig PDA に不可逆的に移します。生のミント権限を必要とするすべての命令 — ステップ3と5 — はその前に実行しなければなりません。回復手段はありません:トラストスコープなしでローンチされたトークンに後から付与することはできません。SDK はこの順序を自動的に処理します。生成されたクライアントを直接使う場合、順序の責任はあなたにあります。

投資家オンボーディングの流れ

投資家は、1回のオフチェーン検証から始まる4つのステップを経て適格になります。

  1. オフチェーンでの KYC。 プロバイダーが投資家の書類を検証します。
  2. アテステーション。 合格結果が Solana Attestation Service のアテステーションとして記録されるか、アテスター署名付きの Direct クレームとして準備されます。
  3. クレームの付与。 信頼済みアテスターが、トークンが必要とする各トピックについてウォレットに紐づく Claim を付与します。トークンが管轄区域ルールを強制する場合、居住地クレームには投資家の ISO-3166 国コードが記録されます。
  4. 解凍。 誰かが thaw_permissionless を送信すると、Gate Program が適格性をチェックし、Token ACL がアカウントを解凍します。

ステップ3は信頼済みアテスターごとに1回行われます。信頼済みアテスターとは、オンチェーンでクレームを付与するキーの持ち主で、通常はトークン発行体です。この標準は再利用可能な KYC プロバイダーと組み合わせて使う設計になっており、投資家の同意のもと、以前の検証結果を繰り返す代わりに共有できます。

コンプライアントな転送の流れ

MPL-3643 トークンの移動は、単一の命令ではなく、3フェーズのエンベロープです。

  1. 準備(Prepare) — 送信先の Associated Token Account が存在することを確認して解凍し、トークンにフックがある場合は transfer hook アカウントを解決します。
  2. 転送(Transfer) — Token-2022 の transfer_checked。該当する場合はフックのメタ情報を付加します。
  3. 確定(Finalize) — トークンがイールドを支払う場合、両当事者のイールドをチェックポイントします。

準備フェーズを省略しないでください:トークンを一度も保有したことのない受取人への転送は必ず失敗します。受取人のアカウントは作成時に凍結されているからです。

運用上の責務

コンプライアントなトークンは、作りっぱなしで放置できるものではありません。2つのバックグラウンドジョブが正しさを維持します。

ジョブ何をするか実行しない場合の結果
再凍結クランカーコンプライアンスを満たさなくなった保有者に対して freeze_permissionless を呼び出すKYC が失効した保有者が無期限に取引を続ける
イールドのクランクとチェックポイントグローバルインデックスを進め、保有者残高を精算するイールドが発生せず、会計がずれていく

どちらもパーミッションレスなので、発行体運用、サードパーティ運用、インセンティブ付き運用のいずれも可能です。

構築前に決めること

4つの決定が下流のすべてを形作り、そのうち3つは後から変更できません。

決定可逆か?影響
ミント作成時に transfer hook を有効化不可転送ごとのモジュールが将来可能かどうかを決定する
DefaultAccountState = Frozen不可必須。これがなければ MPL-3643 は何も強制できない
permanent delegate をリカバリー PDA に設定不可強制リカバリーが将来可能かどうかを決定する
どのモジュールを有効化するか概ね可保有者数上限と投資家数上限は、供給が存在する前に有効化する必要がある

注記

  • MPL-3643 トークンは Token-2022 ミントです。SPL Token プログラム ID をハードコードした統合からは見えません。
  • 保有者数上限と投資家数上限は供給が存在する前に有効化する必要があり、保有者数上限は一度有効化すると無効化できません。
  • どこでも正規の Associated Token Account を使用してください。同じウォレットが所有する非正規のトークンアカウントは保有者アカウンティングで追跡されず、上限とイールドが静かに非同期化します。
  • 特定の設定が特定の証券規制を満たすかどうかは、発行体とその法律顧問が判断すべき法的問題です。これらのページはプログラムが強制する内容を説明しています。
  • Metaplex Foundation により保守。最終確認 2026-09-28。

FAQ

MPL-3643 へのアクセスはどのように取得できますか?

MPL-3643 はメインネット上でアーリーアクセスとして稼働しています。アクセスをリクエストしてください。アルファパートナーは直接のオンボーディングサポートを受けられます。

MPL-3643 トークンをローンチする前に何が必要ですか?

DefaultAccountState = Frozen で作成された Token-2022 ミント、両方のパーミッションレスフラグを有効にしてシールされた Token ACL 設定、レジストリのトークン発行者ロールグラント、そして KYC に加えてトークンが必要とする他のすべてのトピック(適格投資家認定、制裁スクリーニングなど)について認可された信頼済みアテスターです。

SDK と生成されたプログラムクライアントのどちらを使うべきですか?

SDK を使ってください。不可逆的なブートストラップ順序を処理し、各管理操作を正しい直接呼び出しまたはゲートラップ呼び出しにルーティングします。生成されたクライアントは、命令レベルの制御が必要で、順序の責任を自ら負う意思のあるインテグレーター向けです。

自分でクランカーを運用する必要がありますか?

クランカーが存在する必要があります。コンプライアンスを満たさなくなった保有者を自動的に再凍結する仕組みはないため、クランカーがなければ、KYC が失効した保有者は誰かが freeze_permissionless を呼び出すまで取引を続けられます。クランカーはパーミッションレスなので、自分のものでも、サードパーティのものでも、インセンティブ付きネットワークでも構いません。

すでにローンチしたトークンに転送ごとのルールを追加できますか?

いいえ。転送ごとのモジュールは Token-2022 transfer hook 内で実行され、Token-2022 の拡張はミント作成時に固定されます。フックなしでローンチすると、ロックアップ、取引量上限、ブラックアウトウィンドウ、取引所制限は永久に不可能になります。

Previous
概要