Core Extension SDK

Plugin Derivation

The Core DAS Extension allows to automatically derive plugins and inherited plugins. If you want to completely deactivate it or derive manually instead the following code snippets might be helpful.

Disable Plugin Derivation

If you want to disable this automatic derivation you can use skipDerivePlugins in all functions like this:

1import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
2import { dasApi } from '@metaplex-foundation/digital-asset-standard-api'
3import { das } from '@metaplex-foundation/mpl-core-das'
4import { publicKey } from '@metaplex-foundation/umi'
5
6const umi = createUmi('<ENDPOINT>').use(dasApi())
7
8const assetsByOwner = await das.getAssetsByOwner(umi, {
9 owner: publicKey('<ownerPublicKey>'),
10 skipDerivePlugins: true,
11})
12
13console.log(assetsByOwner)

Manual Plugin derivation

You can also manually derive the plugins for the asset if you have already fetched the collection at a prior time using the mpl-core JavaScript SDK like:

1import { deriveAssetPlugins } from '@metaplex-foundation/mpl-core'
2import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
3import { dasApi } from '@metaplex-foundation/digital-asset-standard-api'
4import { das } from '@metaplex-foundation/mpl-core-das'
5import { publicKey } from '@metaplex-foundation/umi'
6
7const umi = createUmi('<ENDPOINT>').use(dasApi())
8const collectionId = publicKey('<PublicKey>')
9
10const collection = await das.getCollection(umi, collectionId)
11const assetsByCollection = await das.getAssetsByCollection(umi, {
12 collection: collection.publicKey,
13 skipDerivePlugins: true,
14})
15
16const derivedAssets = assetsByCollection.map((asset) =>
17 deriveAssetPlugins(asset, collection)
18)
19
20console.log(derivedAssets)