Несмотря на то, что NFT, которые я продаю, бесполезны, люди по-прежнему собирают их по разным причинам. Теперь, когда моя коллекция NFT из 500 штук на Элронде отчеканила более 60 штук через Frame It, я хотел найти способ отправить благодарность прямо в кошелек всех коллекционеров.

TLDR: я использовал Elven Tools для создания списка адресов, на которых хранились NFT из коллекции AI Knights. Затем я использовал скрипт Bash и erdpy из документации разработчика Elrond, чтобы отправить транзакцию с небольшим количеством EGLD и примечанием на каждый из этих адресов.

Хочу провести аирдроп: я выпустил NFT на нескольких блокчейнах. На данный момент серия AI-Knight является самой крупной, и я всегда искал способы показать своим коллекционерам, что я ценю их. До сих пор я не мог найти простой в использовании инструмент, который позволил бы мне найти каждого коллекционера, у которого есть одно из моих произведений, а затем отправить им сумму в криптовалюте вместе с приложенной запиской в ​​качестве «спасибо». ».

Даже способ, которым я нашел это на Элронде, не был тем, что я бы назвал «легким» для вашего типичного художника NFT 1 из 1. Требуются некоторые базовые знания программирования в Linux, но ничего, что должно кого-то отпугнуть. Потратив немного времени и усилий, я уверен, что любой может это сделать.

Поиск моих коллекционеров: Первое, что мне нужно было сделать, это выяснить, кто на самом деле собирал предметы из AI Knights. К счастью, Эта утилита встроена в Elven Tools. У него есть пара вариантов вывода, но я выбрал самые основные из возможных и решил, что при необходимости могу вручную вытащить отдельные адреса.

Я не буду вдаваться в настройку или настройку Elven Tools здесь. Как я уже говорил, если у вас есть некоторые базовые навыки работы с Linux, вы сможете справиться с ним. Кроме того, Джулиан (создатель Elven Tools) очень полезен, если у вас есть вопросы, а его контактная информация находится на его странице О нас.

Вот пример работы скрипта:

elven-tools collection-nft-owners 
✔ Provide the collection ticker  
… EAPES-8f3c1f 
✔ Do you want to exclude smart contract addresses?  
› Yes 
✔ Do you want to filter by metadata JSON file name? Provide names without the extension separated by a comma (example: 123,555,9999) [you can ommit that, just confirm empty]  
…  
There are 10000 tokens in that collection. 
Done, 1042 addresses saved. Without smart contract addresses.

После того, как я установил инструменты, я запустил скрипт и получил файл JSON с адресами всех сборщиков (я пропустил все части, хранящиеся в смарт-контракте), а также количество и конкретные NFT, которые они хранили в своих кошельках. Это именно то, что мне нужно. Спасибо Эльфийские инструменты!

Выброс $EGLD с примечанием: многие проекты NFT выбрасывают монету, специфичную для их проекта, которая имеет некоторую пользу для их держателей. Я сосредоточен на создании искусства и изучении технологий блокчейна, поэтому у меня недостаточно времени для создания/управления сообществом. Но ничто не мешает мне отправить часть моей прибыли или, возможно, будущих NFT моим ранним коллекционерам, которые верили в меня с самого начала.

Очевидно, нет никакой гарантии, что это произойдет со всеми моими коллекционерами (извините!). Но я изучаю технологию, и аирдропы — это то, чем я давно хотел заняться. Элронд был всего лишь первой сетью, в которой были доступны инструменты, которые я мог понять и использовать с моими ограниченными знаниями. Так уж получилось, что на этот раз коллекционерам AI Knight посчастливилось получить выгоду.

Теперь, когда у меня были все адреса коллекторов и количество рыцарей AI в каждом адресе, я придумал очень маленькое повествование, чтобы отправить его вместе с разосланным по воздуху $EGLD. В записке говорилось: «Ваши ИИ-рыцари помогли освободить небольшую соседнюю территорию. Каждый спонсируемый вами рыцарь получил часть награды. Спасибо за поддержку моего творчества!»

К счастью для меня, я нашел скрипт непосредственно в документации разработчиков Elrond, в котором был код для этого! Я немного боролся с этим сценарием, потому что некоторые из изменений, которые я пытался внести, существенно сломали его (по моей вине). После нескольких перерывов, когда я оставлял код и возвращался, я заработал в сети разработчиков. Он отправляет небольшую сумму в EGLD вместе с рассказом, который я написал, чтобы коллекционер знал, почему EGLD только что появился в его кошельке.

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

Вот весь код для аирдропа. Средние блоки кода, кажется, не очень хорошо форматируют это, но, по крайней мере, это дает вам представление о том, что происходит. (Это все сфабрикованные адреса кошельков):

# You must edit the values of MYWALLET and PEM_FILE 
# and then modify the TRANSACTIONS list.  
MYWALLET="erd1sg4u62lzvgkeu4grnlwn7h2s92rqf8a64z48pl9c7us37ajv9u8qj9w8xg" 
PEM_FILE="./walletKey.pem"  
declare -a TRANSACTIONS=(   "erd1qx22s3yyawvfvsn3573r3nkwk6c9efj756ex5cnqk5ul6fz5nggqhaze4y 2"   "erd1qx22s3yyawvfvsn3573r3nkwk6c9efj756ex5cnqk5ul6fz5nggqhaze4y 4"   "erd1qx22s3yyawvfvsn3573r3nkwk6c9efj756ex5cnqk5ul6fz5nggqhaze4y 8"   )    
# DO NOT MODIFY ANYTHING FROM HERE ON 
PROXY="https://gateway.elrond.com" 
DENOMINATION="000000000000000000"  
# We recall the nonce of the wallet 
NONCE=$(erdpy account get --nonce --address="$MYWALLET" --proxy="$PROXY")  
function send-bulk-tx {   
     for transaction in "${TRANSACTIONS[@]}"; do     
          set -- $transaction     
          erdpy --verbose tx new --send --outfile="bon-mission-tx-$NONCE.json" --pem=$PEM_FILE --nonce=$NONCE --receiver=$1 --value="$2$DENOMINATION" --gas-limit=50000 --proxy=$PROXY     
          echo "Transaction sent with nonce $NONCE and backed up to bon-mission-tx-$NONCE.json."     
          (( NONCE++ ))   done }

Как только я настроил скрипт и правильно заработал в сети разработчиков, пришло время изменить значения и запустить его в основной сети Elrond (mainnet). Несмотря на то, что я не собирался отправлять тысячи долларов, я все еще очень нервничал по поводу запуска сценария с возможностью реальных денежных последствий. Моя первая тестовая транзакция в основной сети не удалась, что означало, что я потерял комиссию за транзакцию (газ). Конечно, плата составила менее 0,03 доллара США, но это все равно были потрачены впустую из-за моей ошибки.

После четырехкратной проверки кода я запустил скрипт и нервно наблюдал, как каждая транзакция распределяла $EGLD среди сборщиков. После завершения последней сделки я вздохнул с облегчением. Несостоявшихся транзакций не было и все средства были распределены корректно! Я не мог быть более доволен конечным результатом. Все мои коллекционеры получили небольшую сумму в EGLD и благодарственное письмо за участие в моем творческом путешествии.

Спасибо: я не могу отблагодарить своих коллекционеров и читателей за их поддержку. Моя главная цель — передать знания, которые я получаю в результате этого опыта, другим, одновременно творя. Иногда это действительно сложно, а иногда довольно легко. В любом случае, я надеюсь, вы чему-то научитесь. Еще раз спасибо!

Удачи, получайте удовольствие и никогда не переставайте учиться!

Джеймс