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

Сегодня я покажу вам как создать целую коллекцию генеративного искусства NFT, используя только 21 строку JavaScript.

Вот чеканка из 1000 экземпляров:



И следующий код - это все, что вам нужно, чтобы буквально чеканить вышеуказанную коллекцию.

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

Это означает, что как только вы научитесь это делать, вы сможете применить это к любому проекту NFT, который захотите!

Оглавление

  1. Вступление
  2. Начиная
  3. Напишем код!
  4. Прохождение кода
  5. Управление несколькими коллекциями NFT без беспорядка
  6. Чеканка NFT с конфиденциальностью
  7. Заключение

1. Введение

Мы будем использовать библиотеку генерации алгоритмических аватаров под названием Dicebear (но вы можете себе представить, как вы можете просто переключить этот движок на свой собственный движок генерации алгоритмических изображений, чтобы создать свое собственное искусство). Проект dicebear автоматически генерирует аватар из исходного текста, который вы передаете. Вот пример кода:

Метод createAvatar() генерирует SVG аватара на основе атрибута seed (который может быть любым текстом, но в данном случае "hello"). Автоматически сгенерированные аватары выглядят примерно так:

В этом уроке мы:

  1. Алгоритмически сгенерируйте 1000 таких SVG-аватаров.
  2. Токенизируйте каждое изображение SVG как NFT.
  3. Опубликуйте NFT на торговой площадке NFT (https://rarible.com)

Полученная коллекция будет выглядеть примерно так:

Вы также можете проверить это сами здесь: https://rarible.com/user/0x3c584eb4f7ec6044e4419fc2ee7029547aeb7c01?tab=created

Примечание:

Пожалуйста, не пытайтесь покупать эти предметы. Эти предметы не предназначены для продажи, и я просто использую общедоступные изображения с открытым исходным кодом, чтобы продемонстрировать, как вы можете создать свой СОБСТВЕННЫЙ проект NFT для генеративного искусства.

2. Начало работы

Давайте сначала инициализируем проект. Создайте новую папку и инициализируйте npm:

mkdir avatarcollection
cd avatarcollection
npm init

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

Установим все зависимости:

npm install rarepress @dicebear/avatars @dicebear/open-peeps

Теперь все готово. Пойдем!

3. Давайте напишем код!

Вышеупомянутая коллекция NFT была отчеканена на 100% с использованием только следующих 21 строки JavaScript:

Вы также можете клонировать код и следить за ним по адресу:



Давайте сохраним файл как index.js и запустим его с помощью node index:

Я добавил строку console.log(), чтобы она печатала URL торговой площадки после публикации каждого токена, чтобы вы могли посетить торговую площадку и проверить их после запуска программы.

Вы также можете щелкнуть ссылку «создатель» в любом списке токенов, и он должен отправить вас на всю страницу коллекции NFT из 10 000 элементов:

4. Прохождение кода

Итак, мы только что увидели, как всего 21 строка кода JavaScript может создать целую коллекцию генеративного искусства NFT.

Теперь давайте пройдемся по каждой строке кода, чтобы обсудить, что происходит.

Шаг 1. Требуются модули

Сначала нам нужно потребовать от модуля @dicebear/avatars и @dicebear/open-peeps алгоритмически генерировать аватары на основе некоторого значения.

Также нам нужно потребовать rarepress.

Шаг 2. Инициализируйте Rarepress

Далее нам нужно инициализировать Rarepress.

В этом случае я инициализирую "mainnet", но если вы хотите использовать тестовую сеть, вы можете передать rinkeby или ropsten.

Шаг 3. Повторите 1000 раз.

Мы собираемся сгенерировать 1000 NFT, поэтому мы запускаем 1000 for-loop. (Не стесняйтесь уменьшать его до меньшего числа, например 10 или 100)

Шаг 4. Создайте аватар

Сначала нам нужно сгенерировать аватар.

Мы передаем seed значение i.toString(), что означает, что начальное значение будет "1", "2", "3",…, "999" на протяжении всего цикла. И для каждого значения будет сгенерирован уникальный SVG-файл аватара.

Шаг 5. Добавьте сгенерированный SVG-файл аватара в файловую систему Rarepress.

Теперь, когда у нас есть файл SVG в переменной svg, мы добавляем файл в файловую систему Rarepress NFT, используя rarepress.fs.add().

Шаг 6. Токенизация изображения

Теперь нам нужно токенизировать изображение. Для этого мы вызываем rarepress.token.create() и передаем Метаданные NFT.

Обратите внимание, что мы передаем "/ipfs/" + cid для атрибута image, поскольку это изображение SVG, которое мы хотим токенизировать.

Шаг 7. Опубликуйте файлы в IPFS.

На этом этапе важно отметить, что все по-прежнему полностью конфиденциально и еще не покинуло ваш компьютер. Это то, что делает Rarepress мощным.

Поскольку Rarepress - это полнофункциональная операционная система NFT со своей собственной файловой системой и системой баз данных, она позволяет создавать токены полностью в автономном режиме и публиковать их позже.

Пришло время опубликовать.

Перед публикацией токена нам необходимо сначала опубликовать изображение SVG и файлы метаданных в общедоступной сети IPFS:

  1. rarepress.fs.push(cid): публикует файл SVG в IPFS (просто нужно передать cid файла SVG)
  2. rarepress.fs.push(token.uri): публикует файл метаданных сгенерированного токена в IPFS (просто передайте token.uri, который выглядит примерно как /ipfs/:cid.

Шаг 8. Опубликуйте NFT.

Теперь мы готовы опубликовать NFT на рынке, позвонив по номеру rarepress.token.send(token), и все!

5. Управление несколькими коллекциями NFT без беспорядка

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

Проблема в том, что все ваши NFT смешиваются в один канал.

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

С помощью Rarepress вы можете взять одно начальное число и сгенерировать бесконечное количество производных адресов и создать каждую новую коллекцию NFT с нового адреса. Вы никогда не используете адрес повторно:

Он основан на стандарте криптовалютных кошельков под названием BIP44 (который является производным от другого стандарта под названием BIP32), на котором основаны все криптокошельки (включая кошельки Ethereum). Если вы когда-либо использовали начальную фразу, вы использовали BIP44. Самое замечательное в BIP44 то, что вы можете генерировать бесконечное количество адресов из одного начального числа.

В случае MetaMask и других кошельков Ethereum они по умолчанию используют «путь деривации» m’/44'/60'/0'/0/0. Но вы можете просто настроить конечную цифру сколько хотите, чтобы генерировать новый ключ для каждой новой коллекции.

Rarepress позволяет сделать это, позволяя передавать атрибут key при инициализации. Это создает новый кошелек для сеанса раритетной печати. Например, здесь мы используем закрытый ключ, полученный из пути m'/44'/60'/0'/0/21000000:

По сути, для каждой новой коллекции NFT вы можете изолировать коллекции, используя ключи, полученные из:

  • m'/44'/60'/0'/0/0
  • m'/44'/60'/0'/0/1
  • m'/44'/60'/0'/0/2
  • m'/44'/60'/0'/0/3
  • m'/44'/60'/0'/0/4
  • m'/44'/60'/0'/0/5
  • и так далее…

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

Например, в этой коллекции 1000 предметов, которые я только что отчеканил:



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

6. Чеканка NFT с конфиденциальностью

Возможность каждый раз чеканить с разными адресами также влияет на конфиденциальность. Сатоши Накамото, изобретатель Биткойна, обсудил это в Белой книге Биткойна:

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

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

7. Заключение

Я показал вам, как создать коллекцию NFT за считанные минуты, и в ходе этого процесса познакомил вас с Rarepress, операционной системой NFT.

Но то, что обсуждалось в этой статье, - это лишь верхушка айсберга того, что может сделать Rarepress. Если вы хотите узнать больше, посетите домашнюю страницу здесь:



Или, чтобы узнать о некоторых примерах и учебных пособиях о том, что еще вы можете сделать, ознакомьтесь со следующей документацией:

Https://examples.rarepress.org

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

Если вам интересно, как это работает, ознакомьтесь со следующей документацией:



Если вас заинтересовал проект, смело: