Metaplex Core: an NFT in one account
Token Metadata spreads an NFT across three-plus accounts. Metaplex Core puts the whole thing in one — ~0.0037 SOL to mint vs ~0.022, ~17k CU vs ~205k — with a modular plugin system for royalties, freezing, and on-chain data. The catch: a Core asset isn't an SPL token.
devrels.xyz/a/37Metaplex 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.
Keep reading
Compressed NFTs don't have accounts, so getAccountInfo can't see them. The DAS API is how you read them — plus regular NFTs, Token-2022, and fungibles — from one standardized interface. The methods, why getAssetProof is essential for cNFT transfers, and the indexer dependency.
OSS-first shelf for Solana NFT builders: standards and working tools only — then re-check every link before you ship on it.
Same lock mental model as Streamflow token locks — but for a single Metaplex NFT: commit the hold, pick who receives it at unlock, default immutable.
Get new articles in your inbox
Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.
