見出し画像

【完全保存版】Metaplex のCore NFTのプラグインのロジックを学ぼう

当記事は、こちらを翻訳・編集したものです。

0 はじめに

コアアセットのライフサイクル中には、以下のような複数のイベントがトリガーされることがあります。

  • 作成

  • 移転

  • 更新

  • 焼却

  • プラグインの追加

  • 承認権限プラグインの承認

  • 承認権限プラグインの削除

ライフサイクルイベントは、アセットの作成からウォレット間の移転、さらにはアセットのバーンまで、アセットにさまざまな影響を与えます。

アセットレベルまたはコレクションレベルでアタッチされたプラグインは、これらのライフサイクルイベントの間に検証プロセスを経て、イベントの実行を承認、拒否、または強制的に承認するかを判断します。

1 プラグインとは?

プラグインは、NFTに追加の機能を提供したり、データを保存したりするオンチェーンアプリのようなものです。

2 プラグインの種類

1 オーナー管理プラグイン

オーナー管理プラグインは、アセットオーナーの署名がトランザクションに含まれている場合にのみコアアセットに追加できるプラグインです。

翻訳者注
つまり、そのNFTを持っている人の承認が必要なのですね。

オーナー管理プラグインには、以下が含まれますが、これに限定されません。

  • 移転代理(マーケットプレイス、ゲーム)

  • 凍結代理(マーケットプレイス、ステーキング、ゲーム)

  • 焼却代理(ゲーム)

翻訳者注
例えば、ゲームでNFTを預けて、対戦で負けたら、それが運営によって移動されたり、凍結されたり、バーンされたりということができますね。

オーナー管理プラグインが権限を設定せずにアセットやコレクションに追加された場合、権限タイプはオーナーのタイプにデフォルトされます。

翻訳者注
つまり、勝手に誰かに権限をつけるということはせずに、何もしない場合、所有者自身が権限を持つのですね。

オーナー管理プラグインの権限は、移転時に自動的に取り消されます。

翻訳者注
例えば、Aさんが移動権限をZゲームに委任していた場合、所有者がBさんになると、その権限は自動で取り消されるのですね。

2 権限管理プラグイン

権限管理プラグインは、MPLコアアセットまたはコアコレクションの権限がいつでも追加および更新できるプラグインです。

権限管理プラグインには、以下が含まれますが、これに限定されません。

  • ロイヤリティ

  • 更新代理

  • 属性

翻訳者注
つまり、NFTの運営側の話ですね。
ロイヤリティの設定をしたり、更新の権限を他の人に代理させたりという話ですね。

権限管理プラグインが権限引数なしでアセットやコレクションに追加された場合、プラグインは更新権限タイプにデフォルトされます。

3 永続プラグイン

永続プラグインは、コアアセット作成時にのみ追加できるプラグインです。

すでに存在するアセットには永続プラグインを追加することはできません。

永続プラグインには、以下が含まれますが、これに限定されません。

  • 永続移転代理

  • 永続凍結代理

  • 永続焼却代理

永続プラグインが権限を設定せずにアセットやコレクションに追加された場合、権限タイプは更新権限タイプにデフォルトされます。

翻訳者注
かなり強い権限ですね。
一般的にイメージされるNFTと違うような気がします。
仮に、永久移転代理がついている場合には、いつでも運営によって移転できるということだと思います。

3 コレクションプラグイン

コレクションプラグインはコレクションレベルで追加され、コレクション全体に影響を与えることができます。

たとえば、ロイヤリティのためのプラグインをコレクションアセットに割り当てると、そのコレクション内のすべてのアセットがそのプラグインを参照するようになります。

コレクションには、永続プラグイン権限管理プラグインのみが使用可能です。

翻訳者注
確かに、オーナー管理プラグインはオーナーごとの話ですもんね。

4 プラグインの優先順位

MPLコアアセットMPLコアコレクションアセットが同じプラグインタイプを共有している場合、アセットレベルのプラグインとそのデータがコレクションレベルのプラグインよりも優先されます。

これを創造的に使用することで、コレクション内のアセットのレベルごとに異なるロイヤリティを設定することができます。

たとえば:

  • コレクションアセットには2%のロイヤリティプラグインが割り当てられている

  • コレクション内の非常にレアなMPLコアアセットには5%のロイヤリティプラグインが割り当てられている


この場合、コレクションの通常のMPLコアアセットの販売では2%のロイヤリティが維持されますが、非常にレアなMPLコアアセットの販売では、独自のロイヤリティプラグインが優先され、5%のロイヤリティが適用されます。

5 プラグインとライフサイクルイベント

1 各プラグインが持つ能力

MPL Coreのプラグインは、作成、移転、焼却、更新などの特定のライフサイクルアクションに影響を与えることができます。

各プラグインは、アクションに対して「拒否」、「承認」、または「強制承認」のいずれかの結果をもたらす能力を持っています。

ライフサイクルイベント中に、アクションはあらかじめ定義されたプラグインのリストを順にチェックし、これらに対して検証を行います。

2 プラグインの検証ルール

プラグインの条件が検証されると、ライフサイクルは通過し、アクションを継続します。

もしプラグインの検証が失敗すると、ライフサイクルは停止され、拒否されます。

プラグインの検証ルールは、以下の条件階層に従って決定されます。

  1. 強制承認がある場合は、常に承認する。

  2. それ以外で拒否がある場合は、拒否する。

  3. それ以外で承認がある場合は、承認する。

  4. それ以外は拒否する。

強制承認の検証は、1stパーティプラグインおよび永続デリゲートプラグインにのみ適用されます。

3 強制承認

強制承認は、プラグインの検証を行う際に最初にチェックされる条件です。強制承認を行うプラグインには、以下が含まれます。

  • 永続移転(Permanent Transfer)

  • 永続焼却(Permanent Burn)

  • 永続凍結(Permanent Freeze)

これらのプラグインは、その非永続バージョンや他のプラグインよりも優先してアクションを実行します。

たとえば、あるアセットに「凍結プラグイン」がアセットレベルで設定されており、同時にそのアセットに「永続焼却プラグイン」が設定されている場合、アセットが凍結されていても、永続焼却プラグインによって呼び出された焼却手続きは強制承認の性質により実行されます。

翻訳者注
例えば、Royaltiesプラグインの「Ruleset」で特定のプログラムの「許可リスト」もしくは「拒否リスト」を設定しているとします。
その場合、許可以外、もしくは拒否リスト内のプログラムを使おうとした場合には、拒絶することができます。

翻訳者注
例えば、「Freeze Delegate」プラグインがついていて、「凍結中」なのであれば、送付アクションを拒絶できますね。







サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊