Как называется первый x la коллекция nft
Перейти к содержимому

Как называется первый x la коллекция nft

  • автор:

Пошаговая инструкция как создать NFT коллекцию на Golang + Ethereum (часть 1)

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

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

После проведенного небольшого исследования, мне удалось разбить изначальную задачу из абстрактного “создать NFT коллекцию” на более мелкие и конкретные, а именно:

  • с генерировать 10 000 уникальных изображений
  • с генерировать 10 000 метаданных к каждому изображению
  • загрузить 10 000 изображений вместе с метеданными в децентрализованное хранилище
  • создать смарт-контракт для NFT токенов
  • загрузить созданный смарт-контракт в mainnet Ethereum
  • создать сайт, который будет взаимодействовать с нашим смарт-контрактом с помощью web3, где собственно пользователи и смогут менять свои эфиры на наши NFT токены

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

Как с генерировать 10 000 уникальных изображений?

Почему именно 10 000? Ответ достаточно прост, большинство популярных NFT проектов, предлагают коллекции именно из 10 000 NFT токенов. Каждый создатель, сам волен решать сколько NFT токенов он хочет выпустить, но мы решили не отходить от канона и тоже сделали 10 000 токенов.

Итак, как же все таки с генерировать 10 000 уникальных изображений? Конечно же с помощью автоматического наложения слоев друг на друга. Немного поразмыслив, мы с художником пришли к выводу, что для нашего проекта нам нужны следующие слои:

  1. фон — 20 шт
  2. туловище персонажа — 25 шт
  3. голова — 15 шт
  4. эмоции — 20 шт
  5. одежда — 30 шт
  6. обувь — 25 шт
  7. аксессуары — 40 шт

В общем количестве, у нас получилось приблизительно 175 уникальных слоев в формате png, что более чем достаточно, чтобы получить 10 000 уникальных персонажей. Теперь осталось совсем ничего, а именно написать утилиту, которая на входе будет принимать заготовки в виде слоев, а на выходе будет отдавать готовых персонажей.

Писать я буду на Golang, итак поехали. Для начала, нам нужно описать 2 структуры в пакете domain, одна для слоев, а другая для холста.

package domain import ( "image" "image/color" ) // ImageLayer struct. type ImageLayer struct < Image image.Image Priotiry int XPos int YPos int >//BgProperty is background property struct. type BgProperty struct

Давайте более подробно рассмотрим обе структуры.

  • Image — изображение слоя
  • Priority — приоритет слоя, т.к. слои нужно накладывать в определенном порядке, сначала фон, потом туловище, потом голова, итд …
  • XPos, YPos — позиция слоя на холсте
  • Width — ширина холста
  • Length — длина холста

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

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

package combiner import ( "bytes" "image" "image/draw" "image/png" "nft/internal/domain" "sort" ) type service struct < >func NewBasicImageCombiner() domain.ImageCombiner < return &service<>> func (s *service) CombineLayers(layers []*domain.ImageLayer, bgProperty *domain.BgProperty) ([]byte, error) < // Sort list by position. layers = sortByPriotiry(layers) // Create image's background. bgImg := image.NewRGBA(image.Rect(0, 0, bgProperty.Width, bgProperty.Length)) // Set the background color. draw.Draw(bgImg, bgImg.Bounds(), &image.Uniform, image.Point<>, draw.Src) // Looping image layers, higher position -> upper layer. for _, img := range layers < // Set the image offset. offset := image.Pt(img.XPos, img.YPos) // Combine the image. draw.Draw(bgImg, img.Image.Bounds().Add(offset), img.Image, image.Point<>, draw.Over) > // Encode image to buffer. buff := new(bytes.Buffer) if err := png.Encode(buff, bgImg); err != nil < return nil, err >return buff.Bytes(), nil > func sortByPriotiry(list []*domain.ImageLayer) []*domain.ImageLayer < sort.Slice(list, func(i, j int) bool < return list[i].Priotiry < list[j].Priotiry >) return list > 

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

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

В каком формате должны быть метаданные для NFT токенов?

Т.к. NFT токены основаны на ERC-721 стандарте, а сам стандарт никак не описывает в каком формате должны быть метаданные, мы вольны использовать любой формат какой только захотим.

Но если мы хотим, чтобы наши NFT токены могли полноценно торговаться на таких пощадках как opensea, мы должны следовать следующему JSON формату:

Отлично, когда мы разобрались с форматом, давайте опишем структуру для хранения метаданных на Go:

package domain // ERC721Trait - ERC721 trait format. type ERC721Trait struct < TraitType string `json:"trait_type"` Value string `json:"value"` >// ERC721Metadata - metadata schema. type ERC721Metadata struct

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

P.S.Весь исходный код можно посмотреть на github.

Как называется первый x la коллекция nft

We’re excited to announce that we’re attending TOKEN2049 – the biggest celebration of crypto in Asia – from September 28 to 29 in Singapore ����

TOKEN2049 is bringing crypto-native and institutional minds together to produce high-quality and engaging discussions. With a lineup of speakers that boasts of names like Vitalik Buterin and Charles Hoskinson, it doesn’t get bigger than this when it comes to worldwide crypto events. From workshops to meetups to hackathons, it’s THE event of the year for all things crypto and Web 3.0.

This will also be a great opportunity for us to connect with the crypto community and network with the founders and best minds of Web 3.0 companies.

So, stay tuned for all the exciting and exclusive updates from our time at TOKEN2049.

See you soon! ��

1.3K views edited 18:37

Channel photo updated

Hi everyone! You’ve probably noticed some changes in XLA. We’ve been a bit under the radar. until now!

We’re want to highlight our brand new product — the.deals!

the.Deals is the place where opportunities become deals. It is a universal tool for all your online deals and also for making deals based on Revenue Share.

Create opportunities, share links, get responses, and match for collaborations — all in one place.

Get ready to explore golden opportunities and make deals!
�� More updates soon! ��

1.1K views edited 17:50

Meet The.Deals!

What is The.Deals?

It is the place where your opportunities become Deals. It is your personal unified request tool, where you can share all your ideas and opportunities via one single link in your bio.

How to use The.Deals?
1. Create your personal The.Deals profile with links to your achievements and opportunities.
2. Share the link to your The.Deals profile on any social media platform.
3. Explore a world full of opportunities, get the best requests all over the place, and turn them into your own deals.

Stay tuned to learn more!

896 views David Mazlumian , edited 09:11

The.deals is a unified request tool that allows users to post interesting opportunities and make deals. Our main goal is to simplify the deal-making process as much as possible and allow people to make revenue-sharing contracts between multiple parties.

To get started, simply create an opportunity and share it on social networks. Others will find the opportunity on socials or directly on the platform, match it, and make the deal.

On our platform, you will be able to find opportunities of different scales – from minor to huge. An opportunity may involve a financial reward, Revenue Share or all of the above. We are convinced that everyone will be able to find an opportunity that suits them, convert it into a deal, and make a really cool collaboration.

�� More updates soon! ��

How many platforms, apps, and social networks do you need to showcase all your capabilities or potential opportunities you’d like to participate in? And how many more of those do you need to finally close the deal?

Stop counting options. All you need is https://the.deals/

— Create any request or opportunity without formalities and limitations;
— Pin the The.Deals link on your social media and share it with everyone interested;
— Receive responses to your requests and opportunities all in one place;
— Close deals when you’re on the same page

Follow us on social media to stay updated on the project and get early access to https://the.deals/

Everybody has messengers, social networks, or chats filled with endless requests, offers, unread messages with random people saying “Hello”, and infinite descriptions, ranging from CVs to countless portfolio links.

These messages come in the form of the familiar red dot with the number 999 that we are so familiar with these days.

The.Deals eliminates all of this stuff:

— You only have to share the.Deals link. Everything important and interesting gathered in one place;
— You may manage the flow of incoming conversions by giving your audience only the information you are interested in;
— You can turn requests into deals by reviewing a user’s business profile with just one click.

Keep all your request in order and save time, making important decisions with the http://the.Deals unified request tool. Stay tuned for updates to gain early access.

716 views edited 15:02

Hello to everyone who follows the.deals development!

We would like you to subscribe to our new Telegram channel. From now on it will be the only channel where we will publish all the information about the project; so subscribe, and don’t miss anything important!

The rest of our social networks:

Stay connected and wait for the.deals!

Создание 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 не скачал данные > ?>

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

Объяснение NFT простыми словами на примере NFT платформ и печенек Oreo

Сегодня я хочу рассказать вам о том, что же такое NFT простыми словами на примерах с печеньками (давайте возьмём Oreo для наглядности). Такой подход я практиковал для новых ребят на проекте. Все слышали об NFT, но никто не мог до конца объяснить, что же это такое. Сам я - QA, который работал на разных NFT платформах и за год работы на таких платформах выработал простой и наглядный пример-рассказ, которым хочу поделиться и с вами. Кроме самих печенек нам придётся окунуться немного в атмосферу 90-х и 2000-х, а именно вспомнить про пачки с наклейками для журналов по мотивам фильмов, мультфильмов, игр и так далее.

В 2-х словах - что такое NFT и платформы по продаже NFT

Давайте в нескольких словах о том, что такое NFT и как с ними работают.

NFT (non‑fungible token) — Невзаимозаменяемый токен, который представляет собой криптографический сертификат цифрового объекта с возможностью передавать сертификат через механизм, применяемый в криптовалютах (блокчейн). Сам по себе токен не является подтверждением права на владение цифровым активом в контексте законодательства об авторском праве. NFT не препятствует копированию объекта, он только закрепляет за владельцем «цифровую фишку», созданную на основе одного из экземпляров цифрового артефакта.

Что же это значит для вас с нами со стороны платформодержателей NFT? Начнём же наши недиетические аналогии. «Криптографический сертификат» можно сравнить с уникальным штампом или штрихкодом (bar code) на обратной стороне упаковки от печенек, только этот штрихкод есть на каждой конкретной печеньке НФТшке.

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

Платформы по продаже NFT обычно состоят минимум из 2х глобальных частей — Storefront (a.k.a магазин) и Marketplace. В магазине не продаются конкретные NFT, там продаются «паки», внутри которых N неизвестных вам NFT и то, какие получите именно вы, решает рандом при открытии пака (на самом деле чуть раньше, но это уже детали и не отменяет факт самого рандома).

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

Известные примеры платформ по продаже NFT

Раз затронули платформы по продаже NFT, то стоит упомянуть, что они обычно которые торгуют печеньками NFT на основе магазина (storefront), где получают всю сумму себе и имеют свой процент от продаж пользователями своих NFT на основе маркетплейса (marketplace) уникального для каждой платформы. Такие компании заключают официальные контракты на распространение NFT по мотивам тех или иных виртуальных фото и/или видео и имеют уникальные права на их распространение для поддержания уникальности данных NFT. Несколько примеров знаменитых спортивных NFT платформ, с которыми я имел дело: NBA Top Shot и Laliga Golazos.

Магазин на таких платформах продаёт «паки» с НФТ. Открывая эти паки, вам выпадает случайным образом несколько NFT, их количество разнится от вида пака. Вам заранее известно только минимальная редкость каждого отдельного NFT, однако всегда есть вероятность, что вам выпадет нечто лучше. Сами паки отличаются по стоимости и, соответственно, шансом выпадения более редких NFT. Например пак за 10 долларов даёт 4 NFT, 3 из которых Common редкости (tier) и 1 — Rare. Или же пак за 1000 долларов гарантированно даст вам 2 Legendary и 1 Ultimate НФТшки. Всегда остаётся шанс на то, что вам выпадет что‑то получше, но он совсем невилик. А вот минимально‑гарантированный «дроп» — это то, что можно «купить», беря пак подороже =)

По сути данные паки — это лутбоксы от мира storefront. Простых аналогий с печеньками я не придумал, но классным вариантом будут упаковки наклеек для журналов, которые покупали дети 90-х и 2000-х. Также как на сторфронте, мы покупаете упаковку наклеек (пак), где заранее известно кол‑во наклеек (НФТ), которые вы получите, но какие именно наклейки вы получите вы не узнаете пока не откроете упаковку.

Такие паки продаются на сторфронте лимитированными тиражами, обычно безгранично можно купить что‑то совсем базовое. Раз в определённое время платформо-держатель устраивает «дропы» паков — временно‑ограниченноый ивент с определённым количеством тематических паков.
NFT разделяются на тематические серии.

В рамках знаменитых спортивных платформ - это Set, Series и сам NFT в них.

  • Set — это общая тематика. Например печеньки Орео за 2021 год, Орео по мотивам Марвел, Орео мороженное (да‑да, совсем не печеньки) и так далее. Для простоты примеров, давайте использовать «печеньки» как основной Set, который мы будем коллекционировать.

  • Series — это лимитированная серия в рамках данного сета — например клубничные Орео, Орео в белом шоколаде, печеньки Орео по Покемонам и так далее
    Продолжим в нашем примере с печеньками по Покемонам

  • NFT — это конкретный НФТ из общей партии «отчеканенных»/подписанных НФТшек. Количество таких НФТ зависит от желания авторов сделать их более или менее редкими. Тут работает принцип дефицита — чем чего‑то меньше, тем дороже это что‑то стоит. В частности по этому критерию NFT подразделяются на критерии «редкости» (так называемые Tiers).Часто это бывают (от самых распространённых, до самых редких) — Common, Rare, Legendary, Ultimate, где Common — обычно около 10к НФТ с одним фото/видео на них, а Ultimate — в лучшем случае несколько десятков.

    В данном примере это будут печеньки Орео в рамках серии «Покемоны» и у нас будет 16 покемонов разной степени редкости (условно — картинки покемонов на печеньках)

Для простоты дальнейшего понимания работы Маркетплейса, давайте договоримся о следующих обозначениях:

Common тир = 10 000 экземпляров, например, Пикачу (все же хотят Пикачу, верно?)

Rare тир = 2000 штук Чаризарда

Legendary тир = 350 Сквиртлов

Ultimate — 43 Бульбазавра!

NFT прайс - ПОЧЕМУ СТОЛЬКО. Это же картинки.

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

Зайдя на маркетплейс вы, как правило, сможете фильтровать выложенные там NFT. Скорее всего они будут фильтроваться по общей карточке, объединяющей все NFT этого типа (так называемый «Play» в терминах знаменитых спортивных платформ) — изображение / видео это, в моих аналогиях, упаковка от печенек без штрихкода, на которой показана картинка / видео «отчеканенных» / подписанных NFTшек. т. е. это условный «образец», у него нету ID, владельца и подобной инфы, которая бы могла дать возможность его «купить», только та, что описывает данный набор NFT.

Попав внутрь, вы увидите все выставленные NFT, тут уже будет информаци об их ID (ведь каждый из 10К / 2К и т. д. уникальная в рамках данного набора, правда отличаются они только своей ID). В выборе NFT на продажу вы увидите абсолютно рандомные цены. Они формируются рынком, здесь работает человеческая психология, страсть коллекционирования, а для кого‑то и жажда наживы. Чётких правил тут нет, исключение — принцип ограниченности, чем меньше было сделано NFT, тем дороже их изначальная цена, которую выставляют пользователи.

Далее уже вы ограничены вашей фантазией и общей гласной или внегласной договорённостью. Например цена запросто может увеличиться из-за

  • определённого номера ID конкретного NFT. Например день рождения Пикачу Эша - 13го апреля. Следовательно NFT с ID 13, 04, а также вполне вероятно 1304 будут сильно дороже остальных;
  • обычно дороже те ID, которые находятся в первой и последней десятке всех NFT;
  • круглые или красивые числа всегда дороже, например 10, 100, 13, 666 и так далее.

Факторов может быть сильно больше в зависимости от нюансов конкретного домена, но общий посыл думаю я донёс. Всё упирается в то, как сильно человек хочет владеть тем или иным NFT. Данный процесс можно сравнить с коллекционированием карточек, фигурок, фишек и тому подобный стаф. Формально каждый конкретный экземпляр - это сделанный 1 в 1 по образцу экземпляр и отличается он только своим ID от других.

Да ладно, и это всё?

Собственно это и есть база ценообразования. Других «правил» то и нет. Но тут платформо‑держатели вклиниваются в процесс и не дают движущемуся озеру превратится в стоячее болото, а также разогревают вас, кто уже влился во всю движуху. Они начинают организовывать разные временные (конечно же, ограничение по времени — больше желания точно что‑то получить, иначе потом не получишь) ивенты. Обычно они выглядят примерно так: собери 5 NFT Чаризарда из определённого Set и Series и храни их до конца данного ивента и получишь УНИКАЛЬНЫЙ новый NFT, который можно получить только в рамках данного ивента, ведь этот NFT — уникальный. И они не соврут, он действительно будет уникален и больше вы нигде такой не получите. Хотя. может и получите если сильно попросите всем комьюнити и разработчики пойдут вам на встречу. А может и не пойдут, тут вы никогда не узнаете, это — почти лотерея желаний и статистики платформо‑держателя.

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

Уникальный подарок за временный ивент

Из действенных и одновременно почти прожаривающим методом поднятия цен является «сжигание» NFT. NFT burning — это процесс «удаления» NFT из циркуляции в блокчейне. Всё, что уже на блокчейне, не может быть оттуда удалено, это основная его фишка. Как тогда «сжечь» NFT? На самом деле при сжигании NFT отправляется на новый блок с «нулевым», т. е. неиспользуемым другими блоками, адресом. После посыла NFT туда, вы уже не получите к нему доступ. т. е. формально он всё ещё будет существовать, но выпадает из циркуляции на блокчейне, следовательно его «не существует».

Данный процесс может показаться достаточно радикальным и немного странным, но это — Win / Win ситуация, ведь кроме того, что рано или поздно блокчейн «забивается» просто тысячами NFT редкости Common и т. п., у пользователей забивается их «Коллекция» NFT, её становится неудобно менеджить. А благодаря «сжиганию» — выводятся многие NFT из оборота, они не напрягают пользователей, а также, как следствие уменьшения количества оставшихся NFT, остальные в той или иной степени повышаются в цене. Win / Win же!
Чтобы мотивировать коллекционеров сжигать своё уже оплаченное добро, устраиваются, да, правильно (. ), ивенты по сжиганию NFT вида «сожги 20 NFT с Пикачу и получи уникального Бульбазавра в шапочке к себе в коллекцию!».

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

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

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