소개
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는 모든 필수 데이터를 하나의 계정에 저장합니다: 소유자, 이름, 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 필드는 두 가지 역할을 합니다: 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 계정의 중요한 속성 중 하나는 오프체인 JSON 파일을 가리키는 URI 속성입니다. 이는 온체인 데이터 저장에 수반되는 수수료에 제약받지 않으면서 추가 데이터를 안전하게 제공하는 데 사용됩니다. 해당 JSON 파일은 특정 표준을 따르며, 누구나 토큰에 대한 유용한 정보를 찾을 수 있습니다. 오프체인 메타데이터는 공개적으로 접근 가능한 모든 위치에 저장할 수 있습니다. JSON 파일을 호스팅하는 인기 있는 장소:
- Arweave
- NFT.Storage/IPFS
- Amazon AWS S3/Google Cloud
| Field | Type | Description |
|---|---|---|
| name | string | Name of the asset. |
| description | string | Description of the asset. |
| image | string | URI pointing to the asset's logo. |
| animation_url | string | URI pointing to the asset's animation. |
| external_url | string | URI pointing to an external URL defining the asset — e.g. the game's main site. |
| attributes | array | Array of attributes defining the characteristics of the asset.
|
| properties | object | Additional properties that define the asset.
|
이 JSON 파일은 Arweave와 같은 영구 스토리지 솔루션을 사용하여 저장하면 업데이트되지 않도록 할 수 있습니다. 또한 Update Authority 필드를 None으로 설정하여 불변으로 만들고, URI와 Name 속성이 변경되지 않도록 할 수 있습니다. 이 조합을 사용하면 오프체인 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)를 사용하세요.
용어집
| 용어 | 정의 |
|---|---|
| Asset | NFT를 나타내는 단일 Core 계정 |
| Owner | 현재 Asset을 소유한 지갑 |
| Update Authority | Asset 메타데이터 수정 권한이 있는 계정 |
| URI | 오프체인 JSON 메타데이터를 가리키는 URL |
| Collection | 관련 Asset을 그룹화하는 Core 계정 |
| Key | 계정 타입을 식별하는 계정 구분자 |
| seq | 압축 인덱싱에 사용되는 시퀀스 번호 |
