Програма Metaplex Token Metadata
Програма Metaplex Token Metadata вирішує фундаментальне обмеження програми SPL-Token, дозволяючи прикріплювати детальні описові дані як до взаємозамінних, так і до невзаємозамінних токенів.
Хоча програма SPL-Token ефективно керує основними механізмами токенів, такими як власність та пропозиція, токени без метаданих відображаються в гаманцях та оглядачах як анонімні публічні ключі.
Metaplex перетворює ці базові блокчейн-записи на значущі цифрові активи, надаючи контекстну інформацію, яка потрібна додаткам і користувачам.
Metadata Account
Обліковий запис Metadata
служить описовим шаром, який надає контекст і корисність блокчейн-токенам. Ця структура облікового запису використовує систему Program Derived Address від Solana для створення надійного зв'язку між кожним токеном та його пов'язаною інформацією.
Детерміноване генерування адреси гарантує, що кожен обліковий запис монети має рівно один відповідний обліковий запис метаданих, встановлюючи чітку власність даних і запобігаючи конфліктам.
Обліковий запис Metadata
отримує свою адресу за допомогою детермінованого процесу, який поєднує певні початкові значення з публічним ключем облікового запису монети:
const ID: Pubkey = solana_pubkey::pubkey!("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
const PREFIX: &str = "metadata";
let (metadata, _) = Pubkey::find_program_address(
&[
PREFIX.as_bytes(),
&ID,
mint.as_ref()
],
&ID
);
Обліковий запис Metadata
зберігає вичерпну інформацію, яка виходить далеко за межі базових ідентифікаторів токенів.
Система верифікації творців підтримує список творців токенів, кожен з яких має атрибут верифікації, що надає криптографічний доказ автентичного дозволу творця. Ця верифікація запобігає імітації та встановлює надійне відстеження походження цифрових активів.
Інтегрована система роялті забезпечує автоматичний розподіл доходів через атрибути часток, призначені кожному творцю. Маркетплейси можуть програмно посилатися на ці відсотки для розподілу доходів від вторинних продажів відповідно до попередньо визначених угод, усуваючи ручні розрахунки та залежності від довіри.
Це створює стійкі економічні моделі, де творці продовжують отримувати дохід від своїх робіт навіть після початкових продажів.
Програма Token Metadata успішно долає розрив між необробленими даними блокчейну та цифровими активами, доступними користувачам. Доповнюючи облікові записи карбування багатою контекстною інформацією, програма дозволяє додаткам відображати, категоризувати та взаємодіяти з токенами змістовними способами.
Цей шар метаданих забезпечує основу для різноманітної екосистеми цифрових активів, яка існує сьогодні на Solana.
Master Edition Account
Хоча облікові записи метаданих ефективно обслуговують як взаємозамінні, так і невзаємозамінні токени, забезпечення автентичних характеристик NFT вимагає додаткових механізмів контролю.
Обліковий запис Master Edition
вирішує цю потребу як спеціалізований PDA, що керує управлінням повноваженнями токенів. Цей обліковий запис створюється лише після того, як програма Token Metadata перевіряє, що встановлено належні властивості невзаємозамінних токенів.
Система Master Edition використовує складний підхід до управління повноваженнями. Замість того, щоб назавжди знищувати повноваження карбування, програма передає як повноваження карбування, так і заморожування до PDA Master Edition. Цей дизайн забезпечує підвищену безпеку та функціональність порівняно з назавжди анульованими повноваженнями, зберігаючи при цьому суворий контроль над створенням та управлінням токенами.
Насіння облікового запису Master Edition
наступні:
const ID: Pubkey = solana_pubkey::pubkey!("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
const PREFIX: &str = "metadata";
const EDITION: &str = "edition";
let (master_edition, _) = Pubkey::find_program_address(
&[
PREFIX.as_bytes(),
&ID,
mint.as_ref()
EDITION.as_bytes(),
],
&ID
);
Programmable NFTs
Програмовані NFT (pNFT) представляють собою вдосконалений стандарт токенів, який забезпечує налаштовувану поведінку та обмеження на рівні протоколу.
Цей клас активів вирішує обмеження традиційних NFT, дозволяючи творцям визначати конкретні правила життєвого циклу, які автоматично виконуються під час взаємодії з токенами, забезпечуючи відповідність для творців без залежності від зовнішніх механізмів примусу.
Архітектура примусового виконання працює через систему заморожених токен-рахунків. Коли NFT стає програмованим, пов'язаний з ним токен-рахунок залишається постійно замороженим, що вимагає проходження всіх операцій через програму Token Metadata.
Така конструкція створює обов'язковий контрольний пункт валідації, де правила перевіряються перед виконанням будь-якої дії, що унеможливлює обхід обмежень, визначених творцем.
Правила, визначені творцем, зберігаються в облікових записах RuleSet
, які з'єднуються з обліковим записом Token Record
, новим типом облікового запису, пов'язаним з монетою, що сигналізує про статус програмованого NFT.
Обліковий запис Token Record
отримує свою адресу за допомогою спеціальних сідів, які пов'язують його як з монетою, так і з токен-рахунками:
const ID: Pubkey = solana_pubkey::pubkey!("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
const PREFIX: &str = "metadata";
const TOKEN_RECORD_SEED: &str = "token_record";
let (master_edition, _) = Pubkey::find_program_address(
&[
PREFIX.as_bytes(),
&ID,
mint.as_ref()
TOKEN_RECORD_SEED.as_bytes(),
token.as_ref(),
],
&ID
);
Ці RuleSets
дозволяють реалізувати складну умовну логіку, включаючи білі списки маркетплейсів, які поважають виплати роялті, вимоги мультипідпису для переказів, часові обмеження на операції або складні процеси схвалення.
Програма Token Auth Rules керує цими обліковими записами RuleSet
та обробляє їхню логіку валідації, забезпечуючи гнучку структуру для впровадження користувацьких механізмів управління.
Взаємодія розробників з pNFT відбувається через програму Token Metadata, а не безпосередньо через програму SPL-Token. Програма надає спрощені інструкції, такі як Create
та Update
, які замінюють традиційні операції, такі як CreateMetadataAccount
та UpdateMetadata
.
Кожна інструкція вимагає параметра облікового запису authorization_rules
, який посилається на відповідний RuleSet
, який можна виявити через виведення в мережі або через Metaplex Read API.
Ця програмована структура дозволяє творцям впроваджувати нюансовані економічні моделі та структури управління з гарантованим виконанням.
Незалежно від того, чи впроваджуються умовні перекази, динамічні структури роялті чи складні вимоги до власності, pNFT забезпечують автоматичне виконання всіх поведінок на рівні протоколу без залежності від співпраці маркетплейсів або добровільного дотримання користувачами.