Способ минта NFT при помощи смарт-контрактов
Смарт-контракт – это условие, которое записывается цифровым языком. Стороны, которые его подписывают, при выполнении должны обменяться определенными активами.
Каковы обязательные составляющие смарт-контрактов?
- Применение электронной подписи с использование частных и публичных ключей, которые есть у сторон, заключающих договор.
- Наличие частного децентрализованного онлайн-сервиса (примером может служить пространство Ethereum), в котором фиксируют контракты.
- Предмет соглашения и наличие требуемых для его выполнения средств (зачастую расчетные счета криптовалют).
- Точно зафиксированные условия выполнения контракта, которые в полной мере подтверждают участники соглашения; подлинность источника электронных данных.
Сжигание токенов — это уничтожение определенного числа цифровых монет для уменьшения их эмиссии. Этот метод применяется для борьбы с инфляцией и повышения стоимости криптовалюты. Все операции по сжиганию токенов записываются в блокчейн как транзакция. Поэтому любой может проверить, что монеты были уничтожены.
Приступаем:
1. Дабы сминтить напрямую необходимо открыть смарт-контракт NFT в etherscan.io или другом EVM совместимом блокчейн эксплорере (bscscan.com, polygonscan.com)
2. Далее нажимаем на вкладку Contract
3. Внутри этой вкладки нажимаем Write Contract
4. Подключаем metamask по нажатию на кнопку Connect to Web
5. После нажатия на Write Contract эксплорер покажет нам список функций контракта. Нам нужно найти что-то в духе mint, mintNFT, buy, purchase и т.п. в целом определить нужную функцию на фоне остальных по названию не сложно.
Для примера можно глянуть контракт Collectvox (никто не смог сминтить их через сайт). В данном случае нужная нам функция называется mintNFT. Эта функция принимает два параметра. Первый - количество эфира, второй - количество желаемых NFT (цену и количество NFT за транзакцию можно проверить во вкладке Read Contract). Эфир рассчитывается в зависимости от цены и количества желаемых NFT. Для примера, в Collectvox максимум за транзакцию можно было сминтить 5 штук по цене 0.0888 ETH. Итого в поле с эфиром, если хотите сминтить 5 штук, нужно ввести 0.444 (5 * 0.0888).
6. Далее нажимаем на кнопку Write и подтверждаем транзакцию в metamask.
Как понять через какой контракт минтить?
Если повезло, то команда проекта публикует контракт заранее, чтобы комьюнити знало с чем имеет дело. Вы сможете его найти в Твиттере или Дискорде проекта.
Часто команда пытается сохранить контракт в тайне, чтобы такие как мы не минтили напрямую, но это не страшно. При достаточном упорстве номер контракта можно найти в коде сайта.
Чтобы посмотреть код сайта, нужно нажать F12 в Google Chrome, в открывшемся окне нажать Исходники.
В исходниках находим все файлы заканчивающиеся на `.js и в каждом ищем строку которая начинается на 0x. Иногда среди .js фалов можно заметить что-то в духе constants.js` - в таком случае вам повезло. Скорее всего в нем вы найдете нужный номер контракта.
Нередко команда подгружает необходимый код за несколько часов до минта, так что не факт что вы найдете нужную информацию сразу.
Если не повезло, то есть еще одна хитрость которой разработчики пытаются скрыть номер контракта, но это уже совсем другая история.
Я нашел контракт, но когда нажимаю на Write metamask показывает ошибку!
Это не страшно, дышите ровно и не спешите тыкать все подряд. Для того чтобы можно было сминтить, нужно чтобы выполнилось необходимое условие:
• Временное окно минта открыто
• Владелец контракта включил минт
Как только нужное условие выполнено metamask выполнит транзакцию несмотря на ошибку.
С первым случаем все достаточно просто. Просто ждем пока часы покажут нужное вам время и жмем кнопку Confirm в metamask. Во втором случае нужно следить за тем какие транзакции запускает владелец контракта. Владельца можно проверить во вкладке Read Contract по нажатию на owner. Этот owner должен запустить транзакцию в духе flipSaleState, activatePublicSale и т.п., дабы облегчить работу по слежке за владельцем можно воспользоваться http://blocknative.com, чтобы понять как им пользоваться лучше всего просто потыкать все что там есть и перечитать доки.
По ошибке ясно, но metamask показывает космические параметры по газу..
На минт большинства NFT нужно примерно 150 тысяч в поле Gas Limit. Если вам нужно сминтить 2 NFT, то в этом поле пишем 300 тысяч и т.д., НО учтите, что на большинство NFT хватает 150 тысяч. Важно понимать, что есть исключения и если не хотите сжечь драгоценный эфир в пустую - удвойте эту цифру. Не переживайте, больше чем нужно сеть все равно не съест. В metamask надо ставить лимит газа в полтора-два раза больше. Если есть предпосылки, что вместо одной NFT вас наградят еще парочкой, учитывайте это тоже!
С лимитом газа разобрались. Как быть с Gas Price и Priority Fee?
Тут все зависит от того насколько хайповый проект и торгуются ли NFT уже на рынке или нет. Вы можете сами регулировать Gas Price и Priority Fee, смотреть как это влияет на цену и уже в зависимости от этого принимать решение минтить или нет.
Как итог, можно сказать что ранее подобную технику знали немногие. Сейчас ситуация уже другая и если проект сильно хайповый или на рынке уже есть часть NFT в продаже, то лучше минт скипнуть, иначе рискуете нарваться на супер большую комиссию за минт, а по факту получите бесполезный JPEG.
Сейчас многие проекты практикуют минт через очередь или выбирают случайным образом среди зарегистрировавшихся так было с Mekaverse и Thorguards, таким образом спасает лишь мульти-аккаунты.
Если у вас есть время и нету комфортного депозита, который позволит вам сжечь несколько тысяч долларов за транзакцию, то ваш вариант - это активничать в необходимом комьюнити. Таким образом можно либо получить NFT бесплатно, либо получить право на минт без конкуренции по газу.