Core Candy Machine
Candy Guards
Last updated March 10, 2026
Summary
Candy Guardsは、Core Candy MachineにアタッチしてSolana上のミントプロセスを制限およびカスタマイズするモジュール式で構成可能なアクセス制御コンポーネントです。
- 各ガードは支払い、スケジューリング、ウォレットゲーティングなど単一の責任を処理します。
- ガードは別のオンチェーンCore Candy Guardアカウントに定義され、Candy MachineのMint Authorityになります。
- デフォルトのCandy Guardプログラムには25以上の組み込みガードが付属しており、SOL/トークン支払い、許可リスト、タイムウィンドウ、ボット保護などをカバーしています。
- 独自のCandy Guardプログラムをフォークしてデプロイすることでカスタムガードを作成できます。
Candy Guardとは?
Candy Guardは、Core Candy Machineのミントプロセス中に単一のアクセス制御ルールを適用するモジュール式のオンチェーンコンポーネントです。各ガードは独立して動作し、他のガードと組み合わせて必要なミント体験を構築できます。
選択できるガードの大きなセットがあり、それぞれを任意に有効化・設定できます。
後にこのドキュメントで利用可能なすべてのガードについて触れますが、ここではそれを説明するためのいくつかの例を見てみましょう。
- Start Dateガードが有効化されると、事前設定された日付より前はミントが禁止されます。指定された日付後のミントを禁止するEnd Dateガードもあります。
- Sol Paymentガードが有効化されると、ミントするウォレットは設定された宛先ウォレットに設定された金額を支払う必要があります。特定のコレクションのトークンやNFTで支払うための類似のガードが存在します。
- Token GateとNFT Gateガードは、それぞれ特定のトークンホルダーとNFTホルダーにミントを制限します。
- Allow Listガードは、ウォレットが事前定義されたウォレットリストの一部である場合のみミントを許可します。ミント用のゲストリストのようなものです。
ご覧のとおり、各ガードは一つの責任のみを担当し、それが構成可能にします。言い換えると、完璧なCandy Machineを作成するために必要なガードを選択できます。
Core Candy Guardアカウント
Core Candy Guardアカウントは、指定されたCore Candy Machineのすべての有効化されたガードとその設定を保存するオンチェーンアカウントです。各Core Candy Machineアカウントは通常、保護層を追加する独自のCore Candy Guardアカウントに関連付けられる必要があります。
これは、Core Candy Guardアカウントを作成し、それをCore Candy MachineアカウントのMint Authorityにすることで機能します。そうすることで、メインのCore Candy Machineプログラムから直接ミントすることはもはや不可能になります。代わりに、すべてのガードが正常に解決された場合、Core Candy Machineプログラムに委譲してミントプロセスを完了するCore Candy Guardプログラムを通じてミントする必要があります。
Core Candy MachineとCore Candy Guardアカウントが連携して動作するため、SDKはそれらを一つのエンティティとして扱うことに注意してください。SDKでCore Candy Machineを作成すると、デフォルトで関連するCore Candy Guardアカウントも作成されます。Core Candy Machineを更新する場合も同様で、同時にガードを更新することができます。このページで具体例を見ていきます。
ガードが別のプログラムを使用する理由
ガードは専用のCandy Guardプログラムに存在し、Core Candy Machine Coreプログラムとは分離されているため、アクセス制御ロジックがミントロジックから完全に分離されます。ガードがメインのCore Candy Machineプログラムに存在しない理由は、アクセス制御ロジックをNFTをミントするというメインのCore Candy Machineの責任から分離するためです。
これにより、ガードはモジュラーであるだけでなく拡張可能になります。誰でも独自のCore Candy Guardプログラムを作成・デプロイしてカスタムガードを作成でき、残りすべてについてはCore Candy Machine Coreプログラムに依存できます。
SDKは独自のCore Candy Guardプログラムとそのカスタムガードを登録する方法も提供しているため、フレンドリーなAPIを活用して、ガードを他の人と簡単に共有できることに注意してください。
利用可能なガード
デフォルトのCore Candy Guardプログラムには、支払い、スケジューリング、ゲーティング、ボット保護をカバーする25以上の組み込みガードが付属しています。以下のリストでは、各ガードの短い説明と、より高度な読み物のための専用ページへのリンクを提供します。
- Address Gate: ミントを単一のアドレスに制限します。
- Allocation: 各ガードグループがミントできるNFTの数に制限を指定できます。
- Allow List: ウォレットアドレスリストを使用して、誰がミントを許可されるかを決定します。
- Asset Burn Multi: 指定されたコレクションのホルダーにミントを制限し、1つ以上のcoreアセットのバーンを要求します。
- Asset Burn: 指定されたコレクションのホルダーにミントを制限し、単一のcoreアセットのバーンを要求します。
- Asset Gate: 指定されたコレクションのホルダーにミントを制限します。
- Asset Mint Limit: 指定されたコレクションのホルダーにミントを制限し、提供されたCore Assetに対して実行できるミント数を制限します。
- Asset Payment Multi: 指定されたコレクションの複数のCore Assetをミントの価格として設定します。
- Asset Payment: 指定されたコレクションのCore Assetをミントの価格として設定します。
- Bot Tax: 無効なトランザクションに課金する設定可能な税金。
- Edition: ミントされたCore AssetにEdition Pluginを追加します。詳細についてはPrint Editionsガイドを参照してください。
- End Date: ミントを終了する日付を決定します。
- Freeze Sol Payment: 凍結期間付きでSOLでミントの価格を設定します。
- Freeze Token Payment: 凍結期間付きでトークン量でミントの価格を設定します。
- Gatekeeper: Gatekeeper Networkを通じてミントを制限します(例:Captcha統合)。
- Mint Limit: ウォレット毎のミント数の制限を指定します。
- Nft Burn: 指定されたコレクションのホルダーにミントを制限し、NFTのバーンを要求します。
- Nft Gate: 指定されたコレクションのホルダーにミントを制限します。
- Nft Payment: 指定されたコレクションのNFTをミントの価格として設定します。
- Program Gate: ミントトランザクションに含めることができるプログラムを制限します。
- Redeemed Amount: ミントされた総量に基づいてミントの終了を決定します。
- Sol Fixed fee: 固定価格でSOLでミントの価格を設定します。Sol Paymentガードと類似。
- Sol Payment: SOLでミントの価格を設定します。
- Start Date: ミントの開始日を決定します。
- Third Party Signer: トランザクションに追加の署名者を要求します。
- Token Burn: 指定されたトークンのホルダーにミントを制限し、トークンのバーンを要求します。
- Token Gate: 指定されたトークンのホルダーにミントを制限します。
- Token Payment: トークン量でミントの価格を設定します。
- Token22 Payment: token22(トークン拡張)量でミントの価格を設定します。
- Vanity Mint: 新しいミントアドレスが特定のパターンに一致することを期待してミントを制限します。
Notes
- ガードは完全に構成可能です。単一のCore Candy Machineで組み込みガードの任意の組み合わせを有効にして、必要なミント体験を作成できます。
- カスタムガードの作成には、独自のCandy Guardプログラムのフォークとデプロイが必要です。Core Candy Machine Coreプログラム自体を変更する必要はありません。
- Core Candy Machineのガードを更新すると、ガード設定全体が上書きされます。変更するものだけでなく、有効にしたいすべてのガードを常に再指定してください。
- Allow Listなどの一部のガードでは、前提条件を検証するためにミント前にRoute命令を呼び出す必要があります。
- ガードグループを使用して、ガードを複数の名前付きセットに整理し、異なるミントフェーズやウォレットティアに対して異なるルールを有効にできます。
FAQ
カスタムCandy Guardを作成できますか?
はい。ガードは別のCandy Guardプログラムに存在するため、誰でもCore Candy Machine Coreプログラムのミント機能に依存しながら、カスタムガードロジックを持つ独自のCandy Guardプログラムをフォークしてデプロイできます。Metaplex SDKではカスタムCandy Guardプログラムを登録して標準APIを使用することもできます。
1つのCore Candy Machineで同時にいくつのガードを使用できますか?
利用可能なガードの任意の組み合わせを同時に有効にできます。ガードは構成可能なので、必要なものだけを有効化します。より複雑なシナリオでは、ガードグループを使用して単一のマシンで複数のガードセットを定義することもできます。
すべてのガードにミント設定やRoute命令が必要ですか?
いいえ。追加のオンチェーンアカウント(ミント設定)や専用のRoute命令が必要なのは特定のガードのみです。ほとんどのガードは自己完結しています。ミント設定やRoute命令が適用されるかどうかは、各ガードのページを確認してください。
ミンターがガードチェックに失敗した場合はどうなりますか?
トランザクションは拒否されます。Bot Taxガードが有効な場合、失敗したウォレットはエラーの代わりに設定可能なSOLペナルティが課金され、ボットによる無効なミント試行のスパムを抑止します。
Core Candy Machineのガードを更新すると、既存のガード設定はすべて置き換えられますか?
はい。ガードの更新はガード設定全体を上書きします。変更するものだけでなく、有効にしたいすべてのガードを再指定する必要があります。
Candy Guardとガードグループの違いは何ですか?
Candy Guardはガードのデフォルトセットを1つ保持するオンチェーンアカウントです。ガードグループを使用すると、同じCandy Guardアカウント内で複数の名前付きガードセットを定義でき、異なるウォレットやフェーズが異なるルールに従うことができます。
Glossary
| Term | Definition |
|---|---|
| Guard | ミント中に単一のアクセス制御ルールを適用するモジュール式のオンチェーンコンポーネント。 |
| Candy Guard | Core Candy Machineのすべての有効化されたガードの完全なセットを保存するオンチェーンアカウント。 |
| Candy Guard Program | Candy Guardアカウントを所有し、Core Candy Machine Coreプログラムに委譲する前にすべてのガード条件を評価するSolanaプログラム。 |
| Mint Authority | Core Candy Machineでミントを呼び出す権限を持つ公開鍵。ガードがアクティブな場合、Candy Guardアカウントに設定されます。 |
| Sol Payment | ミントするウォレットに指定された量のSOLを宛先ウォレットに支払うことを要求するガード。 |
| Bot Tax | 失敗したミントトランザクションに設定可能なSOLペナルティを課金してボットを抑止するガード。 |
| Allow List | 事前定義されたMerkleツリーベースのリストに存在するウォレットにミントを制限するガード。 |
| Guard Groups | 異なるミントフェーズやウォレットティアに対して異なるルールを有効にする、単一のCandy Guardアカウント内の名前付きガードセット。 |
| Route Instruction | 一部のガードが前提条件を検証または設定するためにミント前に呼び出す必要がある専用の命令。Guard Routeを参照。 |
| Mint Settings | 特定のガードがミントプロセス中に作成または要求する追加のオンチェーンアカウントデータ。 |
