Metaplex Core: an NFT in one account
MPL-Core stores an entire NFT in a single account — vs Token Metadata's mint + metadata + token account — for ~80% cheaper mints and a plugin system. Here's the design, plugins, and when to use it.
Metaplex Core (MPL-Core) is Solana's next-generation NFT standard. The headline change: an entire NFT — owner, metadata URI, and plugin data — lives in a single account, replacing Token Metadata's SPL-token model of a separate mint, metadata account, and token account. Program ID: CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d.
Why single-account matters
Token Metadata (legacy): mint account + metadata PDA + token account (3+)
~0.022 SOL/mint · ~205,000 CU
Metaplex Core (MPL-Core): one account holds everything
~0.0037 SOL/mint · ~17,000 CU (~80–85% cheaper)(Cost figures are approximate and vary slightly across Metaplex's own docs.) Fewer accounts means cheaper mints, less compute, and simpler mental model — one account is the NFT.
The plugin system
Behavior is modular, attached at the asset or collection level:
- Royalties with allow/deny lists for enforcement, Freeze/Permanent Freeze, Transfer/Burn Delegate, Attributes (on-chain key/values, auto-indexed by DAS), Update Delegate, verified creators, immutable metadata.
- External / Oracle plugins reference separate accounts: an Oracle plugin validates lifecycle events (create/transfer/burn/ update) against an external account — it can reject or pass, enabling things like on-chain transfer rules. App Data stores arbitrary off-asset data.
- Collections are first-class Core accounts; collection-level plugins are inherited by members.
import { create } from "@metaplex-foundation/mpl-core"
await create(umi, {
asset,
name: "My Asset",
uri: "https://example.com/metadata.json",
plugins: [
{ type: "Royalties", basisPoints: 500, creators: [{ address, percentage: 100 }],
ruleSet: { type: "None" } },
{ type: "Attributes", attributeList: [{ key: "level", value: "1" }] },
],
}).sendAndConfirm(umi)Core vs Token Metadata vs Token-2022 NFTs
- Metaplex Core — new projects: cheapest, plugin-rich, built-in royalty enforcement. Not an SPL token.
- Token Metadata — now officially legacy; use only for compatibility. No automatic migration to Core (burn + re-mint).
- Token-2022 NFTs — real SPL tokens with extensions (~0.0046 SOL/mint); pick when you specifically need SPL-token composability.
The honest read
The trade is composability for efficiency: a Core asset is not an SPL token — no mint, no associated token account — so anything that assumes SPL token accounts (some wallets, generic token rails, certain DeFi) won't treat it as one out of the box, and it relies on the DAS API for indexing. Marketplace support has matured (Tensor, Magic Eden) but is younger than Token Metadata's deep ecosystem. Live on mainnet since April 2024 with millions of mints. For a new collection, Core is the default; just confirm your target wallets and marketplaces render it before you commit.
References
Solana NFTs started as a clever stack of SPL-token accounts. Core is the admission that an NFT should just be one account that knows it's an NFT.