External Plugins

Removing External Plugins

Last updated January 31, 2026

This guide shows how to remove External Plugins from Core Assets and Collections. Remove Oracle or AppData plugins when they're no longer needed.

What You'll Learn

  • Remove external plugins from Assets
  • Remove external plugins from Collections
  • Understand authority requirements
  • Recover rent from removed plugins

Summary

Remove external plugins using removePlugin() for Assets or removeCollectionPlugin() for Collections. Only the plugin authority can remove external plugins.

  • Specify the plugin type and base address
  • Plugin data is deleted
  • Rent is recovered
  • Requires plugin authority signature

Out of Scope

Adding external plugins (see Adding External Plugins), updating plugin data, and removing built-in plugins (see Removing Plugins).

Quick Start

Jump to: Remove from Asset · Remove from Collection

  1. Identify the plugin type and base address to remove
  2. Call removePlugin() with the plugin key
  3. Plugin is removed immediately, rent recovered

Remove from Asset

Remove External Plugin from Asset

To remove the External Plugin Adapter from an Asset you'll need to use the removePlugin() function.

import {publicKey } from '@metaplex-foundation/umi'
import { removePlugin, CheckResult } from '@metaplex-foundation/mpl-core'
const asset = publicKey('1111111111111111111111111111111')
const oracleAccount = publicKey('2222222222222222222222222222222')
await removePlugin(umi, {
asset,
plugin: {
type: 'Oracle',
baseAddress: oracleAccount,
},
})

Remove from Collection

Remove External Plugin from Collection

To remove the External Plugin Adapter from a Collection you'll need to use the removeCollectionPlugin() function.

import { publicKey } from '@metaplex-foundation/umi'
import { removeCollectionPlugin, CheckResult } from '@metaplex-foundation/mpl-core'
const collection = publicKey('1111111111111111111111111111111')
const oracleAccount = publicKey('2222222222222222222222222222222')
removeCollectionPlugin(umi, {
collection,
plugin: {
type: 'Oracle',
baseAddress: publicKey(oracleAccount),
},
})

Common Errors

Authority mismatch

Only the plugin authority can remove external plugins. Verify you're signing with the correct keypair.

Plugin not found

No external plugin with the specified key exists on this Asset/Collection.

Notes

  • Removing a plugin deletes all its data
  • Rent is recovered and returned to the payer
  • Only the plugin authority can remove (usually update authority)
  • The external Oracle/AppData account is NOT deleted—only the adapter

FAQ

Does removing an Oracle plugin delete the Oracle account?

No. Only the plugin adapter on the Asset is removed. The external Oracle account remains and can be reused.

Can I recover AppData before removing?

Yes. Read the AppData using fetchAsset() before removing the plugin if you need to preserve the data.

What happens to the rent?

The rent from the plugin adapter is recovered and returned to the transaction payer.