Всем привет!
Наверное, Вы слышали что такое NFT. Попробую коротко объяснить.
Например, есть токен по стандарту ERC20, пусть будет BLOG и я спокойно могу поменять 1 BLOG на другой такой же 1 BLOG, потому что это как бы валюта (я также могу 1 рубль поменять на 1 рубль без убытка для себя).
А есть невзаимозаменяемые токены (NFT), стандарт ERC721. У меня есть какой то цифровой актив и обменять его на другой актив равноценно я, конечно, могу, но равноценность не гарантируется. Это и есть идея NFT.
Потом вспоминаем что такое etherium блокчейн. От другого популярного блокчейна (bitcoin) он отличается тем, что может содержать в себе не только информацию о том кто кому сколько перевел деняк, но и ЛЮБУЮ другую информацию. Идея простая - все что туда попало оттуда точно никуда не денется (и не может быть перезаписано), поэтому блокчейн в данном случае можно считать очень большим реестром того, кто чем владеет. И тут никакие суды не нужны, вот смотри, мол, транзакция, картинка-видос-аудио-etc мои и спор исчерпан.
В этом вся идея NFT, если по-простому.
Вот хороший пример таких активов opensea.io
Как по мне это используется ради:
- отмывания денег
- покупки с целью продажи дороже в будущем
- реально коллекционирования (прикол)
Но не важно, главное, что там крутятся деньги, поэтому это заслуживает интереса 🤑.
NFT маркетплейсы сами вводят такое понятие как коллекция и, зайдя в одну из таких коллекций, становится очевидно, что они создаются не руками, а специальными генераторами. В некоторых коллекция количество айтемов превышает 10000!
Сначала я начал думать в сторону нейронок и, в частности, StyleGAN, например. И я даже провел несколько вечеров за этим и понял вот что:
- нейронки требуют обучения (ВАУ, НЕОЖИДАННО), поэтому любая создаваемая нейронкой коллекция будет очень похожа на уже существующий набор картинок. Это некруто!
- нейронка работает долго
Поэтому выбор пал на случайную генерацию из ассетов. Больше времени потратил, на самом деле, на рисование этих самых ассетов и из репы их убрал 😎, а то получается как бэ БЕРИТИ КТО ХОТИТИ. А вот код опубликую, кстати, вот и он:
Пройдемся по папкам:
- gen - генератор картинок, стек: TypeScript, Canvas
- sol - смарт-контракты, стек: Solidity, JavaScript
- api - апишка для смарт-контрактов, стек: JavaScript, Koa
- web - лендос для проекта, стек: React, JavaScript, Vite (кстати очень крутая штука)
Генератор генерит вот такие пикчи, а всю коллекцию я решил назвать Mosaic Monsters.
И вот такая метаинформация генерировалась для каждого монстра:
%lang(json)% { "race": "Human", "rarity": "heroic", "name": "Fan Habeorth", "side": "light", "attrs": { "strength": 69, "dexterity": 28, "intelligence": 58, "luck": 61 } }
Все сделал, купил хайповый домен https://mosaic.monster/, поднял все сервисы. Прогнал все на тестнете Rinkeby, все круто! Идем в mainnet.
И вот начал я прогонять смарт-контракты с gas price по https://etherscan.io/gastracker. Это было где-то месяц назад и прогонка потребовала около 150к рублей в эфирах. Огромная жаба начала душить просто не передать словами как!
Вот это ничего себе подумал я, нормально. Платить столько деняк, конечно, не хотелось. И я решил уменьшить gasPrice)))) Подумал мб кто замайнит (АГА, щас)
Ну, в общем, транза повисла в pending и что-то мне подсказывало, что она там навсегда. Скрипт прогонки контрактов упал по таймауту и я окончательно разочаровался. Решил хотя бы разблочить себе адрес (если кто не знает, то пока есть pending транзакция любая другая не будет обрабатываться). Разблочить адрес можно создав еще одну транзакцию с nonce равной nonce pending транзакции. Ок, делаю. Решил отправить себе 0.00001 eth (это примерно 4 цента). В целом, все получилось, но я заплатил $13 txn fee))))
Короче, деняк я не заработал, но зато сделал очень интересный проект с использованием новых (для меня) технологий.
Спасибо за внимание!
P.S. Если кто хочет вписаться, пишите t.me/yungvldai, заминтим, прибыль/убытки попилим))))