紹介

MPL Core Asset

Last updated January 31, 2026

このページでは、Core Assetとは何か、従来のSolana NFTとどう違うかを説明します。アカウント構造、コレクションの関係、メタデータストレージを理解します。

主要概念

  • シングルアカウントモデル: Core AssetはAssetアカウント自体に所有権を保存します
  • トークンアカウント不要: SPLトークンと異なり、CoreはAssociated Token Accountsを必要としません
  • コレクションメンバーシップ: AssetはupdateAuthorityフィールドを通じてCollectionに属することができます
  • オフチェーンメタデータ: URIがJSONメタデータを指します(Arweave/IPFSなどの永続ストレージが推奨)

概要

Core Assetは、NFTを表す単一のSolanaアカウントです。Token Metadata(3つ以上のアカウントが必要)と異なり、Coreはすべての重要データを1つのアカウントに保存します:所有者、名前、URI、update authority。これによりCore Assetは約80%安く、扱いやすくなります。

概要説明

SolanaのTokenプログラムなどの既存のAssetプログラムとは異なり、Metaplex CoreとCore Asset(Core NFT Assetとも呼ばれる)はAssociated Token Accountsなどの複数のアカウントに依存しません。代わりに、Core AssetはウォレットとAsset自体の「mint」アカウント間の関係を保存します。

Core Assetアカウント

Core Assetアカウントは、デジタルアセットの最小限のデータを表します。この構造は、オンチェーン所有権のための意見のないブロックチェーンプリミティブを提供します。

AssetはCollection内にありますか?

MPL Core AssetはCollectionに属することができます。MPL Core AssetデータのupdateAuthorityフィールドは2つの役割を果たします:Assetのupdate authorityを報告するか、所属するMPL Core CollectionのpublicKeyを提供するかです。 updateAuthorityフィールドにアクセスする際、Asset経由で直接アクセスするか、MPL Core AssetのcollectionAddressヘルパー経由でアクセスするかにかかわらず、結果は以下のいずれかになります: Collection AssetはそのアドレスのCollectionに属しています。

Assetの作成

{
__kind: 'Collection'
fields: [PublicKey]
}
import { fetchAssetV1 } from '@metaplex-foundation/mpl-core'
const asset = await fetchAssetV1(umi, assetAddress.publicKey)
const collectionId = collectionAddress(asset)
console.log({collectionId})
console.log({asset})
// ログ
collection: '2222222222222222222222222222222'
asset: {
key: AssetV1,
owner: "11111111111111111111111111111111",
updateAuthority: {
type: 'Collection',
address: '2222222222222222222222222222222'
},
name: "My Core Asset",
uri: "https://example.com/metadata.json",
...
}

Address Assetにはupdate authorityが設定されていますが、Collectionには属していません。

Assetの作成

import { fetchAssetV1 } from '@metaplex-foundation/mpl-core'
const asset = await fetchAssetV1(umi, assetAddress.publicKey)
const collectionId = collectionAddress(asset)
console.log({collectionId})
console.log({asset})
// ログ
collectionId: undefined
asset: {
key: AssetV1,
owner: "11111111111111111111111111111111",
updateAuthority: {
type: 'Address',
address: '2222222222222222222222222222222'
}
name: "My Core Asset",
uri: "https://example.com/metadata.json",
...
}

None Assetにはupdate authorityが設定されていません。

Assetの作成

import { fetchAssetV1 } from '@metaplex-foundation/mpl-core'
const asset = await fetchAssetV1(umi, assetAddress.publicKey)
const collectionId = collectionAddress(asset)
console.log({collectionId})
console.log({asset})
// ログ
collectionId: undefined
asset: {
key: AssetV1,
owner: "11111111111111111111111111111111",
updateAuthority: {
type: 'None',
},
name: "My Core Asset",
uri: "https://example.com/metadata.json",
}

オフチェーンメタデータ

Assetアカウントの重要な属性の1つは、オフチェーンのJSONファイルを指すURI属性です。これは、オンチェーンデータの保存に伴う手数料に制約されることなく、追加データを安全に提供するために使用されます。そのJSONファイルは特定の標準に従っており、誰でもトークンに関する有用な情報を見つけることができます。 オフチェーンメタデータは、パブリックにアクセス可能な任意の場所に保存できます。JSONファイルをホストする一般的な場所:

  • Arweave
  • NFT.Storage/IPFS
  • Amazon AWS S3/Google Cloud
FieldTypeDescription
namestringName of the asset.
descriptionstringDescription of the asset.
imagestringURI pointing to the asset's logo.
animation_urlstringURI pointing to the asset's animation.
external_urlstringURI pointing to an external URL defining the asset — e.g. the game's main site.
attributesarrayArray of attributes defining the characteristics of the asset.
  • trait_type (string): The type of attribute.
  • value (string): The value for that attribute.
propertiesobjectAdditional properties that define the asset.
  • files (array): Additional files to include with the asset.
    • uri (string): The file's URI.
    • type (string): The file's type. E.g. image/png, video/mp4, etc.
    • cdn (boolean, optional): Whether the file is served from a CDN.
  • category (string): A media category for the asset. E.g. video, image, etc.

このJSONファイルは、Arweaveなどの永続ストレージソリューションを使用して保存し、更新できないようにすることができます。さらに、Update AuthorityフィールドをNoneに設定して不変にし、URIName属性の変更を禁止することができます。この組み合わせにより、オフチェーンJSONファイルの不変性を保証できます。

FAQ

CoreはToken Metadata NFTとどう違いますか?

Token Metadataは3つ以上のアカウント(mint、metadata、token account)が必要です。Coreは所有者とメタデータを一緒に保存する単一のアカウントを使用します。これによりCoreは約80%安く、作成が高速です。

オンチェーンとオフチェーンで何が保存されますか?

オンチェーン: 所有者、名前、URI、update authority、プラグイン。オフチェーン(URI先): 説明、画像、属性、アニメーションURL、その他の拡張メタデータ。

Token Metadata NFTをCoreに変換できますか?

直接はできません。CoreとToken Metadataは別々の標準です。古いNFTをバーンして新しいCore Assetをミントする必要があります。このプロセスを支援する移行ツールがいくつかあります。

Coreは既存のNFTマーケットプレイスと互換性がありますか?

ほとんどの主要なSolanaマーケットプレイスがCore Assetをサポートしています。互換性のあるプラットフォームの現在のリストはEcosystem Supportを確認してください。

オフチェーンメタデータがオフラインになったらどうなりますか?

Assetは名前とURIでオンチェーンに存在し続けますが、画像やオフチェーン属性はアクセスできなくなります。オンチェーン属性(Attributesプラグイン経由)はアクセス可能のままです。これを防ぐために永続ストレージ(Arweave、ピニング付きIPFS)を使用してください。

用語集

用語定義
AssetNFTを表す単一のCoreアカウント
Owner現在Assetを所有しているウォレット
Update AuthorityAssetメタデータの変更を許可されたアカウント
URIオフチェーンJSONメタデータを指すURL
Collection関連するAssetをグループ化するCoreアカウント
Keyアカウントタイプを識別するアカウント識別子
seq圧縮インデックスに使用されるシーケンス番号
Previous
概要