プラグイン
Update Delegateプラグイン
Last updated January 31, 2026
Update Delegateプラグインは、追加のアドレスに更新権限を付与できます。サードパーティがプライマリupdate authorityでなくてもAssetメタデータを変更する必要がある場合に便利です。
学べること
- AssetsとCollectionsにUpdate Delegateプラグインを追加
- 追加のアドレスに更新権限を付与
- 追加デリゲートができることとできないことを理解
- デリゲートリストの更新と管理
概要
Update Delegateは、update authorityが他のアドレスに更新権限を付与できるAuthority Managedプラグインです。追加デリゲートはほとんどのAssetデータを変更できますが、コアauthority設定は変更できません。
- サードパーティに更新権限を付与
- 複数の追加デリゲートを追加
- AssetsとCollectionsの両方で動作
- デリゲートはルートupdate authorityを変更不可
対象外
永続的な更新デリゲーション、オーナーレベルの権限(これはauthority managed)、Token Metadata update authority(別のシステム)。
クイックスタート
ジャンプ先: Assetに追加 · デリゲートを更新 · Collection
- デリゲートアドレスでUpdate Delegateプラグインを追加
- オプションで追加デリゲートを追加
- デリゲートがAssetメタデータを更新可能に
Update Delegateを使用するタイミング
| シナリオ | 解決策 |
|---|---|
| サードパーティがメタデータを更新する必要がある | ✅ Update Delegate |
| ゲームプログラムがステータスを変更する必要がある | ✅ Update Delegate(プログラムにデリゲート) |
| 複数のチームメンバーが更新アクセスを必要とする | ✅ 追加デリゲート |
| 永続的な取り消し不可能な更新アクセス | ❌ サポートされていない(マルチシグauthorityを使用) |
| オーナーが更新を制御すべき | ❌ デフォルトauthorityを使用 |
| Update Delegateを使用するのは、ルートauthorityを移転せずにプログラムやサードパーティに更新権限を付与する必要がある場合です。 |
一般的なユースケース
- サードパーティサービス: プラットフォームがあなたに代わってメタデータを更新できるようにする
- ゲームプログラム: ゲームプログラムにAsset属性を変更する権限を付与
- チームコラボレーション: 複数のチームメンバーがキーを共有せずに更新可能
- マーケットプレイス: マーケットプレイスがリスティング関連のメタデータを更新できるようにする
- 動的コンテンツ: Assetデータを自動更新するサービス
対応
| MPL Core Asset | ✅ |
| MPL Core Collection | ✅ |
引数
| additionalDelegates | publickey[] |
additionalDelegates
追加デリゲートにより、updateDelegateプラグインに複数のデリゲートを追加できます。 追加デリゲートは、update authorityができることをすべてできますが、以下を除きます:
- 追加デリゲート配列の追加または変更(自分を削除する以外)
- updateAuthorityプラグインのプラグインauthorityの変更
- Collectionのルートupdate authorityの変更
AssetへのUpdate Delegateプラグインの追加
MPL Core AssetへのUpdate Delegateプラグインの追加
import { publicKey } from '@metaplex-foundation/umi'
import { addPlugin } from '@metaplex-foundation/mpl-core'
const assetAddress = publicKey('11111111111111111111111111111111')
const delegate = publicKey('22222222222222222222222222222222')
await addPlugin(umi, {
asset: assetAddress,
plugin: {
type: 'UpdateDelegate',
authority: { type: 'Address', address: delegate },
additionalDelegates: [],
},
}).sendAndConfirm(umi)
Update Delegateプラグインの更新
Update Delegateプラグインは、追加デリゲートのリストを変更したり、プラグインauthorityを変更したりするために更新できます。
AssetのUpdate Delegateプラグインの更新
import { publicKey } from '@metaplex-foundation/umi'
import { updatePlugin } from '@metaplex-foundation/mpl-core'
const assetAddress = publicKey('11111111111111111111111111111111')
const newDelegate = publicKey('33333333333333333333333333333333')
const existingDelegate = publicKey('22222222222222222222222222222222')
await updatePlugin(umi, {
asset: assetAddress,
plugin: {
type: 'UpdateDelegate',
additionalDelegates: [existingDelegate, newDelegate], // デリゲートを追加または削除
},
}).sendAndConfirm(umi)
CollectionのUpdate Delegateプラグインの更新
CollectionのUpdate Delegateプラグインの更新
import { publicKey } from '@metaplex-foundation/umi'
import { updateCollectionPlugin } from '@metaplex-foundation/mpl-core'
const collectionAddress = publicKey('11111111111111111111111111111111')
const delegate1 = publicKey('22222222222222222222222222222222')
const delegate2 = publicKey('33333333333333333333333333333333')
await updateCollectionPlugin(umi, {
collection: collectionAddress,
plugin: {
type: 'UpdateDelegate',
additionalDelegates: [delegate1, delegate2], // 更新されたデリゲートリスト
},
}).sendAndConfirm(umi)
一般的なエラー
Authority mismatch
Update authority(または既存のプラグインauthority)のみがUpdate Delegateプラグインを追加/変更できます。
Cannot modify root authority
追加デリゲートはルートupdate authorityの変更や追加デリゲートリストの変更(自分を削除する以外)はできません。
注意事項
- Authority Managed: update authorityはオーナーの署名なしで追加可能
- 追加デリゲートはほぼ完全な更新権限を持つ
- デリゲートはルートupdate authorityを変更不可
- デリゲートは追加デリゲートリストを変更不可(自分を削除する以外)
- AssetsとCollectionsの両方で動作
クイックリファレンス
追加デリゲートの権限
| アクション | 許可? |
|---|---|
| 名前/URIの更新 | ✅ |
| プラグインの追加 | ✅ |
| プラグインの更新 | ✅ |
| プラグインの削除 | ✅ |
| ルートupdate authorityの変更 | ❌ |
| 追加デリゲートの変更 | ❌(自己削除を除く) |
| プラグインauthorityの変更 | ❌ |
FAQ
追加デリゲートは何ができますか?
Update authorityができることのほとんど(メタデータの更新、プラグインの追加/削除など)ができます。ルートupdate authorityの変更、追加デリゲートリストの変更、Update Delegateプラグインauthorityの変更はできません。
追加デリゲートはより多くのデリゲートを追加できますか?
いいえ。ルートupdate authority(またはプラグインauthority)のみが追加デリゲートを追加または削除できます。
追加デリゲートとして自分を削除するにはどうすればよいですか?
追加デリゲートは、additionalDelegates配列に自分のアドレスを含めずにプラグインを更新することで、リストから自分を削除できます。
追加デリゲートに制限はありますか?
ハードリミットはありませんが、デリゲートが増えるとアカウントサイズとレントが増加します。リストを適切な数に保ってください。
Update DelegateはCollectionsで機能しますか?
はい。CollectionにUpdate Delegateを追加すると、デリゲートがCollectionメタデータとCollectionレベルのプラグインを更新できます。
関連プラグイン
- Attributes - デリゲートが更新できるオンチェーンデータを保存
- ImmutableMetadata - メタデータを変更不可にする(デリゲートを上書き)
- AddBlocker - デリゲートが新しいプラグインを追加するのを防止
用語集
| 用語 | 定義 |
|---|---|
| Update Delegate | 更新権限を付与するAuthority Managedプラグイン |
| 追加デリゲート | 更新権限を持つ追加アドレス |
| Authority Managed | Update authorityによって制御されるプラグインタイプ |
| ルートUpdate Authority | Asset/Collectionのプライマリupdate authority |
