Перейти до основного вмісту
Change page

Стандарт невзаємозамінних токенів ERC-721

Вступ

Що таке невзаємозамінний токен?

Невзаємозамінний токен (NFT) використовується для унікальної ідентифікації чогось або когось. Цей тип токенів ідеально підходить для використання на платформах, які пропонують колекційні предмети, ключі доступу, лотерейні білети, пронумеровані місця на концертах і спортивних матчах тощо. Цей особливий тип токенів має неймовірні можливості, тому він заслуговує на належний стандарт, і ERC-721 був створений саме для цього!

Що таке ERC-721?

ERC-721 запроваджує стандарт для NFT. Іншими словами, цей тип токенів є унікальним і може мати іншу цінність, ніж інший токен з того ж смарт-контракту, можливо, через його вік, рідкість або навіть щось інше, наприклад, його зовнішній вигляд. Зачекайте, зовнішній вигляд?

Так! Усі NFT мають змінну uint256, яка називається tokenId, тому для будь-якого контракту ERC-721 пара contract address, uint256 tokenId має бути глобально унікальною. З огляду на це, децентралізований застосунок (dapp) може мати «конвертер», який використовує tokenId як вхідні дані та виводить зображення чогось крутого, наприклад, зомбі, зброї, навичок або дивовижних кошенят!

Передумови

Основна частина

ERC-721 (Ethereum Request for Comments 721), запропонований Вільямом Ентрікеном (William Entriken), Дітером Ширлі (Dieter Shirley), Джейкобом Евансом (Jacob Evans) та Настасією Сакс (Nastassia Sachs) у січні 2018 року, є стандартом невзаємозамінних токенів, який реалізує API для токенів у смарт-контрактах.

Він надає такі функції, як переказ токенів з одного акаунта на інший, отримання поточного балансу токенів акаунта, визначення власника певного токена, а також загальної пропозиції токенів, доступних у мережі. Крім цього, він також має деякі інші функції, наприклад, схвалювати переміщення певної кількості токенів з акаунта стороннім акаунтом.

Якщо смарт-контракт реалізує наведені нижче методи та події, його можна назвати контрактом невзаємозамінних токенів ERC-721, і після розгортання він відповідатиме за відстеження створених токенів в Етеріумі.

З EIP-721 (відкривається в новій вкладці):

Методи

Події

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

Приклади

Давайте подивимося, наскільки важливим є стандарт для спрощення перевірки будь-якого контракту токенів ERC-721 в Етеріумі. Нам потрібен лише двійковий інтерфейс застосунку (ABI) контракту, щоб створити інтерфейс для будь-якого токена ERC-721. Як ви можете бачити нижче, ми будемо використовувати спрощений ABI, щоб зробити цей приклад максимально зрозумілим.

Приклад з Web3.py

Спочатку переконайтеся, що ви встановили бібліотеку Python Web3.py (відкривається в новій вкладці):

pip install web3

Контракт CryptoKitties має деякі цікаві події, окрім стандартних.

Давайте розглянемо дві з них: Pregnant та Birth.

Подальше читання

Посібники: Створення з використанням невзаємозамінних токенів (ERC-721) в Етеріумі