#article

2022-02-13

NFT

Что такое

Токен стандарта ERC721 или ERC1151 для сетей, которые поддерживают такой тип токенов. На сегодня это Ethereum и Polygon.

Сам по себе токен не значит ничего. Это только цифра с записью кто её владелец. Может содержать метаданные, в которых может быть любая информация, чаще это ссылка на файл.

Способ использования NFT определяется смарт-контрактом в сети. Например биржа OpenSea может помещать токены в категории, добавлять в метаданные больше полей чем просто ссылка, использовать эти метаданные при отображении страницы токена на сайте.

Хранение

Для хранения NFT понадобится открыть кошелёк поддерживающий подключение других сетей. Больше всего подойдёт Metamask.

В так называемом web3 вход производится через крипто-кошельки. Сайт может поддерживать разные наборы кошельков для входа. Metamask поддерживают все сервисы, которые понадобятся для выпуска и продажи NFT.

Токен будем делать в сети Polygon, т.к. там цена одного токена 0.3-0.4 цента. Выпуск NFT в сети Etherium стоит десятки долларов: от 20 до 65 в разное время. Как знаю, “крупные инвесторы” не покупают токены из сети Polygon и для “больших продаж” такой токен не подойдёт. Для теста и других использований - вполне.

Официальный кошелёк сети Polygon так же поддерживает вход через Metamask. Использовать его пока не обязательно.

Выпуск

Нужно добавить поддержку сети Polygon в Metamask. Проще всего это сделать на сайте Chainlist: подключить кошелёк Metamask, найти Polygon Mainnet и нажать Connect. Подтвердить транзакцию в Metamask. Ещё можно прописать RPC адреса Polygon в настройках Metamask, пока этот способ рассматривать не будем.

Уже сейчас можно выпустить (заминтить) свой NFT. Подойдёт официальный минтер Polygon. Как обычно подключить Metamask, потом просто выбрать свой файл, дать описание, нажать Mint, подтвердить транзакцию в Metamask. Подождать секунд 30 пока подтвердится транзакция. Всё, теперь мы “владелец” файла (но об этом пока никто не знает) и его можно передать или продать.

При минтинге файл заливается в распределённое файловое хранилище IPFS и токен содержит только хеш и ссылку на файл, а не сам контент. Поэтому размер токена (значит и цена транзакции на его перемещение) не зависит от размера файла.

Размещение

Для операций с NFT нужно владеть валютой сети Polygon MATIC. Для передачи одного NFT нужно порядка 0.002 MATIC. Обменники обычно продают MATIC на суммы от 100$. Если у вас есть Etherium, можно перевести их в MATIC в официальном кошельке Polygon в разделе Token Swap.

Т.к. нам пока нужно передать всего одну картинку, тратить сотню баксов не рационально. Для тестов Polygon есть сервисы Faucet. На момент написания сети рабочий был только matic.btn.sh. Остановка старых фаусетов связана с повышением минимальной комиссии в сети Polygon в 30 раз в октябре 2021 года. matic.btn позволяет получать 0.001 MATIC раз в 12 часов.

Дополнительные MATIC можно получить у разработчиков Polygon на их Discord-канале в разделе Support > #mainnet-faucet через команду в чате. Выдают до 0.02 MATIC на аккаунт только один раз.

Стоимость размещения NFT может быстро и сильно меняться. Посмотреть текущую цену транзакции (standard maxPriorityFee) можно через API. Рекомендуется дождаться цены в пределах 30-39 gwei (не может быть менее 30). Иногда она может достигать и 60 и 90. Тогда нужно просто подождать несколько минут. Собранные выше MATIC хватит на несколько NFT.

Когда у нас есть валюта, мы можем опубликовать NFT на бирже. Пойдём на самую популярную OpenSea. Всё так же подключаем Metamask, переходим в профиль, ищем наш NFT в разделе Hidden. Кнопкой Sell начинаем размещение токена на бирже. Можно указать свою цену, срок аукциона. Дальше следует несколько шагов, подтверждаем каждую транзакцию в Metamask. На этом этапе с нас и списываются MATIC.

Всё, NFT продаётся на бирже и связан с аккаунтом. Все видят что он “наш” в профиле на OpenSea. Мой пример.

Коллекции

Добавленный таким способом NFT размещается в глобальной коллекции Non-Fungible Matic V2.

Если мы хотим создать свою коллекцию, то нужно создавать её на самой OpenSea в разделе My Collections. Можно выбрать оформление, добавить ссылки на свои социальные профили и многое другое.

Затем минтить свои NFT в разделе Create, в процессе создания ассета выбрать к какой коллекции он относится. Этот способ так же делает вас хозяином токена, но есть особенность (см. ниже).

У коллекции есть свой адрес, по которому видно все токены из неё, даже проданные.

Информация из коллекции используется для индексации токенов на бирже и пиара. Токены без коллекции можно посмотреть в профиле владельца или найти по имени ассета.

Просмотр NFT в своём кошельке

Свои NFT, кроме логина на биржу, можно смотреть в кошельке Metamask Mobile, в браузерном расширении через который мы выполняем вход этого раздела нет.

Вот сейчас нам понадобится добавление сети Polygon в кошелёк вручную. Можно сделать это по статье с Binance Academy:

Настройки > Сети > Добавить сеть
Network Name: Polygon
New RPC URL: https://polygon-rpc.com
Chain ID: 137
Currency Symbol: MATIC
Block Explorer URL: https://polygonscan.com/

После этого проверить раздел NFT. Если никаких токенов там не оказалось (мой случай), можно добавить их вручную. Для этого нужно найти свой адрес кошелька в BlockExplorer. Потом в карточке Overview в селекте Token выбрать Non-Fungible Matic. В Metamask Mobile нажать Import NFT. В поле Address скопировать Contract из эксплорера, в ID вписать TokenID нужного токена из таблицы ниже. Contract общий для всех Non-Fungible Matic.

В браузерный Metamask можно добавить токены (Import Tokens) по адресу контракта, но показывается только количество NFM (Non-Fungible Matic) на адресе, без подробностей.

На OpenSea, можно посмотреть Contract Address и TokenID всех своих токенов сразу.

Каждая биржа работает на своём смарт-контракте, поэтому расширения метаданных токена могут отличаться и один контракт не знает о токенах другого контракта. Токены, созданные через официальный минтер Polygon, в BlockExplorer видят все потому что контракты минтера и эксплорера написаны с взаимной интеграцией.

Токены, созданные через OpenSea можно так же добавить в Metamask Mobile, но посмотреть их список можно только на самой OpenSea. В BlockExplorer они не числятся на вашем адресе. Поэтому способ создания через биржу менее полноценный с т.з. хранения, но даёт возможность использовать инструмент коллекций биржи. Минтинг на адрес более надёжный и ближе к сути NFT, а через биржу более “красивый”. Выбирайте по своим целям.

Добавить чужие NFT в свой Metamask Mobile не удастся: в контракте проверяется владелец вписанного TokenID. С добавлением токенов с OpenSea проблем нет, но их нельзя передать через кошелёк - только через биржу.