Id токена nft где взять
Перейти к содержимому

Id токена nft где взять

  • автор:

Что такое NFT токен простыми словами? И как добавить свой NFT

По нашим наблюдениям, идея добавления в блокчейн видео и графики появилась ещё тогда, когда в 2015 году вышел Ethereum — криптовалюта, позволяющая записывать любую информацию в свою защищённую сеть, в том числе подписывать Умные контракты — Smart Contract.

Умные контракты — это как умный дом, только контракты?

Этот контракт по своей сути кусок исполнительного кода, с определенным функционалом, самый частый из которого создание и выпуск собственной криптовалюты крипто — токена на базе эфира, по нему же затем производятся операции по токену и записываются в нулевые транзакции эфира. Система обеспечена прозрачностью и цифровой подписью всей майнинг мощностью , поэтому взлом или грязные операции *задним числом» исключены, если не были заложены в изначальный контракт, который перед добавлением проверяет система на валидность. После этого взрывным образом посыпались ICO и выпуски токенов различными стартап — проектами от реальных бизнесменов до мошенников. Последние в течение короткого времени практически монополизировали отрасль в виде 99% скам проектов (мошенничество).

Как так получилось? Очень просто — отсутствие контроля. Не имея юридической базы, а только обещания золотых гор, наивные инвесторы понесли деньги в псевдо-технологии и псевдо-проекты, которые в конце концов оказались в чьих-то крипто-карманах. Не будем вспоминать недавний случай с крупной крипто биржей FTX , владелец которой за счёт функции доп эмиссии и фактического владения чужих кошельков — всех ограбил. Жадность фраера сгубила, как говорится.

Итак, 2018 год на дворе, появляются ICO проектов по блокчейну для видео, аудио и графики. Каждый блок информации (картинку, видео) переводят через математическую криптографическую формулу и выводях ее хеш-сумму, связывают с предыдущим блоком — то есть, к каждому блоку, перед хешированием добавляют хеш-сумму предыдущего блока и конечная хеш сумма уже включает все предыдущие хеш суммы и блоки. Изменив хоть бы 1 бит информации в любом из блоков, вся цепочка хеш сумм нарушится — это и есть блокчейн.

Проекты 2018 не стали известными и многие уже канули в небытие , так и не захватив мир. А вот NFT токен взял, да и появился.

Non-fungible token — невзаимозаменяемый токен, прикрепленый к объекту.

Non-fungible token — это невзаимозаменяемая единица данных, которая хранится в децентрализованном реестре, называемом блокчейн. Простыми словами NFT токен — это цифровое подтверждение права собственности на конкретный объект.

Расшифровка из интернета

Для понимания термина «взаимозаменяемый», можно провести сравнение: 1 ETH на счету 1 пользователя аналогичен 1 ETH на кошельке другого. Их можно поменять друг на друга, и ничего не изменится.

Аналогичная ситуация с фиатными деньгами: 1 РУБ = 1 РУБ как в цифровом, так и бумажном виде. Они не уникальны. В отличие от них у Non-Fungible Token другие характеристики:

Неделимость. Криптовалюты часто дробятся до 18 знаков после запятой, а NFT нельзя разбить на части.

Уникальность. У каждого есть собственный идентификатор, который отличает его от других цифровых объектов и копий. То есть изначальный мем с пиксельным летящим через космос котом Nyan Cat не равен его изображениям, которые пользователи скачали или выложили на сайтах. Создатель картинки смог прикрепить к коту уникальный токен и продать оригинал на аукционе за $580 тысяч.

Редкость. Этим параметром обеспечиваются высокая ценность и интерес коллекционеров.

Мем Nyan Cat продан в виде NFT за 580 тыс. $

Хотя токены и не взаимозаменяемы, их можно перепродавать друг другу через защищённую сеть. Тогда будет происходить переход прав собственности на объект. Это создает новый цифровой независимый и ликвидный рынок, на котором каждый человек может стать инвестором, вложившим средства в произведение искусства, мем или артефакт из игр. А создатели контента могут легко зарабатывать и защищать свои авторские права.

Как же создать свой NFT токен и подписать права интеллектуальной или творческой собственности?

Для начала требуется определиться с объектом. Если это картинка — она должна быть конечного сжатия и обработки.

1. Заходим на opensea.io — сайт работает только через VPN и только через некоторые страны, например США. Через Нидерланды пишет Access Denied. Связано это с блокировками. Сам сайт является маркетплейсом NFT , через него можно создать новую подпись.

2. Нажимаем Create

opensea.io добавление NFT

Сайт предложит авторизоваться. Для этого можно использовать любой сервис крипто кошелька, например мобильное приложение или расширение для браузера MetaMask , с помощью которого мы выпустили токен TGM в 2018 году.

3. После авторизации останется загрузить картинку и добавить небольшое текстовое описание. После чего нажать на кнопку «добавить» и получить готовую ссылку на объект.

Лого TGM Technologies, который стал NFT

NFT токен логотипа TGM Technologies (красное стекло)Ставка от 1 ETHОкончание торгов 20.01.2023

TGM Technologies — Untitled Collection #1506841460 | OpenSeaopensea.io

4. Добавить токен в MetaMask можно только в мобильном приложении указав хеш подписи и id NFT из раздела Details на opensea.io , с того же аккаунта, который является владельцем.

NFT лого TGM red glass в кошельке MetaMask

После создания, можно запустить аукцион от нескольких дней до 6 месяцев на первичную продажу NFT токена. TGM red glass ради теста и интереса выставлен за 1 ETH , это около 1180$ на текущий момент. Посмотрим, найдется ли покупатель и что будет с токеном с ростом и развитием сервисов и движения TGM.

Подписывайтесь , ставьте лайк, если понравился материал и был вам полезен!

Id токена nft где взять

Создать свой собственный токен, которым можно торговать в WX Network, очень просто.

Войдите в ваш аккаунт WX Network, перейдите во вкладку Кошелек и выберите пункт Создать токен.

После этого заполните форму создания токена, в которой можно задать имя токена, его описание, выбрать общее количество токенов и количество знаков после запятой. Давайте рассмотрим поля формы подробнее:

— Название токена: названия токенов не уникальны, но идентификатор
(ID токена) уникален. При поиске токена можно убедиться в том, что вы нашли правильный токен, просто проверив ID токена.
Примечание: название токена не может быть короче 4 символов и не более 16 символов.

— Описание: описание вашего токена.

— Кол-во выпускаемых токенов: общее количество выпускаемых токенов.

— Тип токена: «Перевыпускаемый» тип позволяет при необходимости увеличить количество токенов, при этом количество токенов «Не перевыпускаемого» типа не может быть изменено в будущем. Сменить тип токена с «Перевыпускаемого» на «Не перевыпускаемый» можно в любой момент (подробнее в статье Поменять «Перевыпускаемый на «Не перевыпускаемый»).

— Десятичные знаки: количество знаков в дробной части токена. Например, если вы укажете 8 десятичных знаков, как в биткойнах, токен можно будет разделить на 0,00000001. Если вы укажете 0, токен может быть обработан только целым значением.

Примечание: убедитесь, что у вас есть как минимум 1 Waves на балансе для оплаты комиссии за создание токена.

Перед созданием токена внимательно прочитайте условия его создания:

• Вы не будете использовать токен в мошеннических целях;

• Вы не будете нарушать права на интеллектуальную собственность (не используйте имена существующих криптовалют, фиатных денег или любых компаний);

• Вы не устанавливаете на смарт-токен скрипт, который ограничивает совершение транзакции обмена токена на WX Network по количеству;

• Вы не указываете в описании смарт-токена ложную информации о правилах оборота смарт-токена, не соответствующую работе установленного на него скрипта.

Если название токена нарушает эти условия, измените название токена в соответствии с условиями, затем нажмите Создать токен.

В следующем окне проверьте введенные данные и нажмите «Продолжить«, чтобы создать токен, или закройте окно, чтобы внести исправления.

Вы можете искать и сортировать свои токены в разделе «Кошелёк» > «Токены» («Мои выпущенные токены«).

Создаваемый вами токен по умолчанию попадает в категорию «Непроверенных». Вы можете верифицировать свой токен на странице голосования, чтобы он отображался во вкладке «Проверенные сообществом» и его можно было найти на бирже в безопасном режиме.

Создание NFT

Также WX Network позволяет выпускать NFT — невзаимозаменяемый токен. NFT существует в единственном экземпляре и имеет уникальный ID. Этим он отличается от обычного токена. NFT могут использоваться как предметы в играх, предметы коллекционирования, сертификаты или уникальные купоны.

Для создания NFT необходимо в форме создания токена:

— в поле Всего токенов указать 1;

— в поле Десятичные знаки указать 0;

— в поле «Перевыпускаемый» установить значение «Не перевыпускаемый«.

Комиссия за создание NFT составляет 0.001 Waves.

Примечание: NFT не отображаются в интерфейсе WX Network. Также NFT нельзя переводить, используя интерфейс WX Network.

Если у вас есть вопросы касательно биржи WX Network, вы можете связаться с нашей службой поддержки в любое время.

tags*: создание выпуск токена выпустить ассет nft

Метаданные NFT: как их найти на Opensea и Rarible

Метаданные NFT — это информация о контенте, который представляет токен. Но так как большие файлы хранить в блокчейне трудно по причине космического дороговизны этого дела, то NFT, как правило, просто отсылают к файлами, хранящимся вне блокчейна.

Так что, полностью в блокчейне хранится лишь очень ограниченное количество NFT-творений.

Почему метаданные NFT приходится хранить отдельно?

Дело в том, что контент в виде больших графических, аудио- и видеофайлов хранить и передавать в блокчейне не дорого, а очень и очень дорого!

Для наглядности: хранить в блокчейне Ethereum всего 1 гигабайт данных (если такая идея вдруг кому-то придет в голову) по нынешним ценам стоило бы примерно $35 миллионов (в эквиваленте, разумеется).

То есть, к примеру, стоимость хранения в блокчейне фильма продолжительностью в стандартные 160 минут составит порядка $237 млн, что, вероятнее всего, будет дороже, чем это кино снять.

Потому, в так называемом смарт-контракте оставляют только URI или универсальный идентификатор ресурса (Universal Resource Identifier), т.е. ссылочку, указывающую на местоположение JSON-файла (стандартизированный формат JavaScript Object Notation) с описанием токена, которое пользователь всегда может загрузить и с ними ознакомиться.

Соответствующие же метаданные остаются в виде постоянной записи в блокчейне и описывают, что представляет собой конкретный токен.

Что такое Opensea и Rarible и что они дают экосистеме NFT?

По мере роста популярности и, следовательно, спроса на NFT возникла и потребность в специализированных маркетплейсах, где пользователи могут создавать, передавать и монетизировать свои активы.

Такие площадки со всем необходимым для создания и торговли NFT инструментарием тоже очень скоро появились, их уже достаточно много, но самыми популярными являются две открытые платформы, Opensea и Rarible.

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

Rarible — это конкурентная P2P-площадка со схожими инфраструктурой и функционалом, оптимизированными под задачи выпуска и торговли NFT. Однако, в отличие от OpenSea у Rarible есть еще и собственный токен RARI, предоставляющий помимо прочего своему владельцу право участия в управлении платформой и право голоса в процессе принятия важных решений относительно её дальнейшего развития.

Как посмотреть метаданные NFT на OpenSea?

Уже на этапе предварительной оценки NFT сделать это нужно обязательно. Тем более, что проверка метаданных любого NFT в OpenSea предельно проста.

Для наглядности, вот вкратце, как посмотреть в OpenSea метаданные NFT на основе Ethereum:

  • на странице NFT в разделе Description находим и открываем вкладку Details:

Метаданные NFT: как их найти на Opensea

  • в открывшейся табличке сначала запоминаем/записываем Token ID (в нашем примере — 2882), а затем кликаем по ссылке в строке «Contract address«;
  • на следующей странице копируем адрес Сontract-а (он — в самом верху вместе со стандартной кнопкой «Копировать«);
  • после этого открываем новую вкладку в браузере, в адресной строке пишем https://api.opensea.io/asset/,после слэша вставляем скопированный Contract (т.е. жмем Ctrl+V), ставим еще один слэш, после него дописываем Token ID и жмем Enter (в нашем примере получается: https://api.opensea.io/asset/0x12632d6E11C6Bbc0c53f3e281eA675e5899a5DF5/2882, где 0x12632d6E11C6Bbc0c53f3e281eA675e5899a5DF5 — Token Contract, а 2882 — Token ID);
  • если все сделано правильно, система выдаст окно «Get Asset» с метадаными токена в формате JSON:

Метаданные NFT: как их найти на Opensea

Это, повторимся, пример для NFT на Ethereum. Метаданные NFT, размещенных в других блокчейнах, проверяются аналогичным образом, но через соответствующий блокчейн-проводник.

Например, если NFT размещен на блокчейне Solana, то по ссылке в строке «Contract address» (в табличке «Details«) вы автоматом попадаете на страницу Solscan.io, где файл с метаданными открываете соответствующим API.

Как посмотреть метаданные NFT на Rarible?

На этой платформе предусмотрен свой механизм поиска метаданных. Он отличается от описанного выше механизма OpenSea, но в целом тоже ничего сложного. Рассмотрим на примере NFT на Ethereum, итак:

  • скроллим страницу интересующего нас NFT до раздела Details и там кликаем по ссылке «View on Etherscan«;
  • в таблице на следующей страничке находим раздел Transaction Action (он с иконкой в виде лампочки) и в строке справа запоминаем/записываем номер токена, а затем кликаем ссылку -номер Token ID[в квадратных скобках]:

Метаданные NFT: как их найти на Rarible

  • далее, на следующей странице копируем «Contract address» (кнопка «Копировать» появляется при наведении курсора на ссылку);
  • после этого открываем новую вкладку в браузере, в адресную строку копируем или пишем: https://api.rarible.org/v0.1/items/ETHEREUM:после двоеточия вставляем скопированный адрес контракта, ставим еще одно двоеточие, после него дописываем Token ID и жмем Enter (в нашем примере получается: https://api.rarible.org/v0.1/items/ETHEREUM:0xC86664e7d2608f881f796ee8E24FA9d4d7598406:8471, где 0xC86664e7d2608f881f796ee8E24FA9d4d7598406 — Contract Adress, а 8471 — Token ID);
  • если все сделано правильно, система выдаст окно с метадаными токена в формате JSON:

Создание NFT-коллекции для новичков

DISCLAIMER: Сразу оговоримся, что в статье используется много упрощений и ручной работы, для профессионального использования материал не подходит. Код можно усовершенствовать, а некоторые процессы автоматизировать. Однако нашей целью стало подготовить исчерпывающий гайд по запуску генеративной коллекции для новичков на русском языке.

В сети есть примеры и куски кода, но отсутствуют простые материалы на русском, поэтому мы решили поделиться тем, как запускали свою коллекцию и привести готовые скрипты с комментариями для абсолютных новичков.

Что нам потребуется?

Первым делом мы определимся с блокчейном для запуска коллекции и установим необходимое ПО.

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

Чтобы задеплоить контракт мы будем использовать онлайн версию среды разработки Remix, поэтому установка ПО для этого не потребуется. Но чтобы заминтить токены по заранее сформированному списку получателей нам понадобится использовать какое-либо ПО — под рукой оказался Python, да и мода на него позволяет предположить, что с основами языка знакомы даже неискушённые пользователи.

Мы использовали бесплатную версию среды разработки PyCharm с предустановленной версией языка 3.11.

Забегая вперёд, по необъяснимым причинам библиотека web3 не смогла корректно установиться (вероятно, были необходимы дополнительные библиотеки для корректной установки), но времени и желания разбираться в причинах возникновения ошибок не было, поэтому попытка повторилась для версии 3.9 (которая оставалась от предыдущих проектов), где всё прошло как по маслу. Поэтому имейте в виду, код должен работать в обеих версиях, но если не получится установить библиотеку для интерпретатора версии 3.11, то попробуйте скачать более старую версию.

Для хранения данных используем бесплатный IPFS-хостинг: FILEBASE

И последнее, что нам потребуется, это браузерное расширение MetaMask с зарегистрированным кошельком.

Генерация метаданных для NFT

Чтобы коллекция была каноничной, метаданные будут храниться децентрализованно, поэтому первое, что мы делаем, это заранее генерируем изображения и необходимые файлы с описанием.

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

А вот простейший пример кода для генерирования пачки необходимых файлов с метаданными:

В нашем примере генерируются файлы 000.json, 001.json и так далее до 555.json. В поле name имя токена, содержащее его порядковый номер, description содержит описание, которое размещено непосредственно под изображением на маркетплейсах, а поле image содержит ссылку на изображение. В нашем случае это ссылка на децентрализованное хранилище, поэтому адрес начинается с ipfs:// , хотя подойдут ссылки и на централизованные сервера.

Содержимое файлов будет примерно таким:

У нас не было необходимости дополнять токены разными атрибутами, но если у вас есть такая задача, советуем ознакомиться с описанием стандарта метаданных, которые использует OpenSea: https://docs.opensea.io/docs/metadata-standards

Пример более изощрённых метаданных:

Если ваша коллекция содержит генеративные изображения, следует предварительно их сгенерировать, параллельно записывая информацию о используемых слоях в БД. После чего залить изображения в IPFS, скачать список хэшей, дополнить ими строки в БД и только после этого генерировать файлы с метаданными.

После того, как все json-файлы сгенерированы, также заливаем их в IPFS и собираем список хэшей для будущего минтинга коллекции.

Смарт-контракт для NFT-коллекции

Переходим к самому «страшному» и одновременно простейшему шагу — созданию и публикации смарт-контракта.

На самом деле, добрые разработчики из OpenZeppelin позаботились о нас и сделали простейший генератор смарт-контрактов: https://docs.openzeppelin.com/contracts/4.x/wizard

Здесь всё просто. Для нашей задачи необходимо открыть вкладку ERC721, заполняем Name и Symbol (видны потом только в обозревателях) и проставить галочки:
Mintable — чтобы токены минтил владелец контракта;
Auto Increment Ids — добавляет автоматический счётчик токенов;
Enumerable — добавляет нужные функции для обозревателей;
URI Storage — добавляет возможность установки URL с метаданными для каждого отдельного токена.

Поле Base URI оставляем нетронутым, переключатель access control по умолчанию, галочку upgradeability ставить нет необходимости (она создаёт прокси контракт, чтобы в будущем можно было заменить содержимое основного, это не по канонам децентрализации, мы делать не будем).

Осталось заполнить Security Contact (добавится в код контракта как комментарий), а вид лицензии оставляем MIT.

После этого жмём кнопку Open in Remix, откроется онлайн версия IDE уже с кодом нашего контракта.

Далее переходите на третью сверху вкладку и нажмите кнопку Compile contract-.

Результат компиляции (появится контракт и зелёная галочка в третьем разделе):

Далее нужно авторизоваться в MetaMask:

Теперь на четвёртой сверху вкладке можно подключиться к сети, которая установлена в MetaMask (Injected Provider — MetaMask). Обязательно проверяйте, чтобы в MetaMask была включена сеть Polygon Mainnet.

Если всё было установлено верно, то под строкой с сетью будет указан ID цепочки 137 (для основной сети Polygon).

После нажатия на кнопку Deploy, MetaMask попросит подписать транзакцию, после чего он отправит её в сеть, где после подтверждения контракт получит свой адрес, он понадобится нам в будущем.

! Существует какой-то необъяснимый баг. Ваша транзакция может пропасть в небытие (вероятно, MetaMask время от времени отправляет транзакции в какую-то резервную ноду, либо Remix передаёт некорректную цену за газ, но данные попадут в сеть через несколько часов).

Если вам повезло, транзакция тут же получит подтверждение, если не повезло — ждите, не верьте MetaMask, что транзакция отменилась, она не пропала бесследно, а подтвердится через несколько часов (если за это время вы наплодите ещё несколько попыток, они также «отменятся» в MetaMask, а потом одной большой пачкой подтвердятся в тот момент, когда вы этого уже не будете ждать).

Понять происхождение этого бага не удалось, поэтому не можем вам советовать что-то, чтобы его избежать.

Теперь, когда наш контракт размещён в блокчейне, следует соблюдать этикет и провести его верификацию. Для этого переходим на https://polygonscan.com, здесь необходимо создать аккаунт, после чего указать в обозревателе адрес только что созданного контракта. Найти адрес контракта можно в списке транзакций MetaMask, по ссылке «Смотреть в проводнике блоков«

На открытой странице будут видны данные транзакции, нас интересует строчка «To:«, далее перейдем по ссылке в этой строке.

Без верификации обозреватель видит только байткод. Исправим это, нажав на ссылку «Verify and Publish«.

Далее заполняем все поля в соответствии с настройками из Remix и жмём «Continue«:

Теперь нам нужно вернуться в Remix и на нашем контракте в контекстном меню выбрать пункт «Flatten«. Он сгенерирует нам единый документ со всеми использованными библиотеками.

Обязательно добавляем первой строкой: // SPDX-License-Identifier: MIT

Вставляем полученный текст в окно верификации. Проходим рекапчу и жмём «Verify and Publish«

Если всё прошло успешно, мы увидим что-то подобное:

Кстати, созданный здесь же ABI пригодится нам в будущем, поэтому советуем скопировать его и сохранить в отдельных документ.

После выполнения всех процедур контракт получил своё имя и галочку о подтверждении кода.

Минтинг NFT коллекции

Теперь переходим к самой интересной части — минтим коллекцию с помощью скрипта на Python.

Для работы скрипта нам понадобится следующее:

  • Адрес кошелька
  • Приватный ключ
  • Адрес контракта
  • ABI-контракта

Первые два пункта ищем в MetaMask.

Если скопировать адрес не составит труда, то для получения приватного ключа перейдите в раздел «Реквизиты счёта» в настройках кошелька, и нажмите кнопку «Экспорт закрытого ключа«.

После чего у вас потребуют ввести пароль от кошелька и выдадут приватный ключ (храните его очень бережно, с ним любой человек получит полный доступ к вашему кошельку).

Адрес контракта можно взять в обозревателе, а ABI мы ранее копировали в отдельный файл, когда верифицировали контракт.

Далее берём этот готовый скрипт и вставляем в него необходимые данные:

import csv import requests from web3 import Web3 # Определение URL ноды node_url = "https://polygon-rpc.com" # Связь с нодой web3 = Web3(Web3.HTTPProvider(node_url)) # Проверка соединения с нодой if web3.isConnected(): print("-" * 50) print("Connection Successful") print("-" * 50) else: print("Connection Failed") # Определение адреса отправителя (должен быть владелец контракта) и приватного ключа caller = "0x24. " private_key = "2f6. " # Определение ABI и адреса контракта abi = '[ < "inputs": [], . ' contract_address = "0xc73. " # Создание объекта с данными контракта contract = web3.eth.contract(address=contract_address, abi=abi) # Определение ID цепочки Chain_id = web3.eth.chain_id # Определение номера будущей транзакции для этого кошелька nonce = web3.eth.getTransactionCount(caller) # Читаем построчно данные из документа list.csv with open('list.csv') as csvfile: # Разделитель полей в скрипте запятая, иногда excel может устанавливать разделителем точку с запятой, проверить можно открыв csv-файл в блокноте readCSV = csv.reader(csvfile, delimiter=',') for row in readCSV: # Получаем текущие цены за газ для сети Polygon gaspricearr = requests.get('https://gasstation.polygon.technology/v2').json() gPrice = int(float(gaspricearr['fast']['maxFee'])*1000000000) # Проверяем формат кошелька, если он без контрольной суммы, меняем на правильный if web3.is_checksum_address(row[0]): toAddress = row[0] else: toAddress = web3.to_checksum_address(row[0]) # Определяем параметры транзакции call_function = contract.functions.safeMint(toAddress, row[1]).buildTransaction() # Увеличиваем номер будущей транзакции на единицу nonce += 1 # Подписываем транзакцию приватным ключём signed_tx = web3.eth.account.sign_transaction(call_function, private_key=private_key) # Отправляем транзакцию в блокчейн send_tx = web3.eth.send_raw_transaction(signed_tx.rawTransaction) # Дожидаемся обработки транзакции tx_receipt = web3.eth.wait_for_transaction_receipt(send_tx) # Печатаем в терминал данные опубликованной транзакции print(tx_receipt) 

Кроме скрипта нам понадобится список получателей с URI их токенов в формате CSV. Содержимое файла должно выглядеть так:

0x4C3A0d41cB765c47D3933F1a05160B7BA085DfCa,ipfs://QmQPe3Kg7FQJdAbANw6gWy8c9qT6r7LKWKFKbE5E1zSAjA 0x2e8B06982c01dc8604060F3604b544AB33bfe69D,ipfs://QmajZpQWNo1pjKCkWp1UyM43oFiv7tX3deJw23LvuHW9bJ 0x636CDce269C60E20bFBa65D3C88F6EF73F8A1a28,ipfs://QmaNF3dWa19k2YJRCErYRjn9fB9EGmPLWm6bwX76VpUHib 0x32FeB01eE4387a18cf4051F2ef7C943Bee51E2c5,ipfs://QmPU2FFPojFei38LDFqQQaQXUPL27r9PKneyozkXYUTMk6 0x275D40dFD150270C7212fc626798dde0176EFaBE,ipfs://QmUfFA9vuhjTDQW29EpA5U6R6HjRRcBMNLaLDm8yXwnGVD 0xbb1338d34740Dd6c0342e46c4c51cDf38C1CceD8,ipfs://QmahVcksCjoaxNbYuk2wqyNY2CbnYxmj4Zovq5iVH9xTei

Обратите внимание на разделитель полей, его нужно будет правильно указать в скрипте.

Финал

Всё готово, запускаем скрипт и ждём пока токены улетают своим получателям.

! Иногда, раз в 100-300 транзакций, случаются неотлавливаемые баги и скрипт прерывается с ошибкой (каждый раз новой, определить закономерность не удалось). Для продолжения следует подождать минутку, зайти в обозреватель и найти в истории транзакций своего кошелька ID последнего отправленного токена, удалить в CSV все ранее обработанные строки, сохранить и перезапустить скрипт.

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

Бонус

Если для хранения метаданных вы используете IPFS, то одна из популярных площадок — Rarible (используется VK для импорта данных) имеет свойство время от времени не загружать метаданные из этой файловой системы, если шлюз не отдал их за необходимое время.

Для проверки корректности рекомендуем использовать их же API:

'; //Построчно выводим имена токенов, если какого-то не хватает, значит Rarible не скачал данные > ?>

Если нет нескольких строк, пишите им в поддержку через форму обратной связи. Через несколько дней они поправят это.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *