紹介
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.js | 20.18.0 以降 | TypeScript SDK と生成されたクライアントに必要 |
| Solana CLI | 2.1.0 以降 | デブネットとのやり取りとキー管理 |
| デブネット RPC エンドポイント | — | Token-2022 をサポートしている必要あり |
Rust インテグレーターは、プログラムのビルドに使われている Anchor と Solana のツールチェーンバージョンも追加で必要です。
オンチェーンの前提条件
あなたのトークンに対して MPL-3643 の命令が成功するには、事前に4つの条件が満たされている必要があります。
- ミントが
DefaultAccountState = Frozenの Token-2022 であること。 この拡張はミント作成後に追加できません。 - 凍結権限が Token ACL に委譲されていること。 Token ACL 設定でパーミッションレスな解凍と凍結の両方が有効化され、これらの設定を後から変更できないよう設定がシールされている必要があります。
- レジストリのトークン発行者ロールグラントを保有していること。 これにより、Metaplex の連署なしに自身のコンプライアンス、ゲート、イールドの設定を作成できます。
- 必要とするすべてのトピックを信頼済みアテスターがカバーしていること。 ピン留めするアテスターはアクティブであり、
KYCに加えてトークンの必須トピックセットのすべてについて認可されている必要があります。
ミントに関する2つの決定は後から変更できません
DefaultAccountState = Frozen と transfer hook 拡張は、どちらもミント作成時に固定されます。フックなしのミントは転送ごとのモジュールを後から獲得できません — ロックアップも、取引量上限も、ブラックアウトウィンドウも、取引所制限も不可能です。ミントを作成する前に決めてください。
トークンローンチの流れ
コンプライアントなトークンのローンチは、プログラムによって順序が強制されるブートストラップシーケンスです。
- Token-2022 ミントを作成します。
DefaultAccountState = Frozenを設定し、転送ごとのモジュールが将来必要になる可能性があれば transfer hook 拡張も追加します。 - ミントの Token ACL 設定を作成し、両方のパーミッションレスフラグを有効化してシールします。
- ゲート設定を初期化します — 生のミント権限が必要です。これによりトークンのトラストスコープも作成されます。
- 受け入れる KYC プロバイダーをトラストスコープに追加します。
- トークンが使用する場合は、ライフサイクルのイールドおよびリカバリー設定を初期化します — 生のミント権限が必要です。
- コンプライアンス設定を初期化します。これが権限移転の境界です。
- ゲートの extra account meta リストを初期化します。これはライブのコンプライアンス設定を読み取り、ゲートをバインドします。
- モジュールを有効化・設定し、Compliance Module のミントフローを通じて初期供給をミントします。これにより保有者アカウンティングが同期されます。
ステップ6は一方通行の扉です
コンプライアンス初期化は、ミントの MintTokens 権限を ComplianceConfig PDA に不可逆的に移します。生のミント権限を必要とするすべての命令 — ステップ3と5 — はその前に実行しなければなりません。回復手段はありません:トラストスコープなしでローンチされたトークンに後から付与することはできません。SDK はこの順序を自動的に処理します。生成されたクライアントを直接使う場合、順序の責任はあなたにあります。
投資家オンボーディングの流れ
投資家は、1回のオフチェーン検証から始まる4つのステップを経て適格になります。
- オフチェーンでの KYC。 プロバイダーが投資家の書類を検証します。
- アテステーション。 合格結果が Solana Attestation Service のアテステーションとして記録されるか、アテスター署名付きの
Directクレームとして準備されます。 - クレームの付与。 信頼済みアテスターが、トークンが必要とする各トピックについてウォレットに紐づく
Claimを付与します。トークンが管轄区域ルールを強制する場合、居住地クレームには投資家の ISO-3166 国コードが記録されます。 - 解凍。 誰かが
thaw_permissionlessを送信すると、Gate Program が適格性をチェックし、Token ACL がアカウントを解凍します。
ステップ3は信頼済みアテスターごとに1回行われます。信頼済みアテスターとは、オンチェーンでクレームを付与するキーの持ち主で、通常はトークン発行体です。この標準は再利用可能な KYC プロバイダーと組み合わせて使う設計になっており、投資家の同意のもと、以前の検証結果を繰り返す代わりに共有できます。
コンプライアントな転送の流れ
MPL-3643 トークンの移動は、単一の命令ではなく、3フェーズのエンベロープです。
- 準備(Prepare) — 送信先の Associated Token Account が存在することを確認して解凍し、トークンにフックがある場合は transfer hook アカウントを解決します。
- 転送(Transfer) — Token-2022 の
transfer_checked。該当する場合はフックのメタ情報を付加します。 - 確定(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 の拡張はミント作成時に固定されます。フックなしでローンチすると、ロックアップ、取引量上限、ブラックアウトウィンドウ、取引所制限は永久に不可能になります。
