Полное руководство по созданию NFT платформы для децентрализации с нуля

Создание NFT платформы децентрализации с нуля

После глубокого изучения децентрализованной торговли токенами ERC-20, мы невольно задаемся вопросом: как реализовать децентрализованную торговлю по протоколу ERC-721 (то есть NFT)?

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

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

! Начальная серия Web3: реализация NFT DEX с нуля

Введение в NFT

NFT (Невзаимозаменяемый токен) следует протоколу ERC-721, и каждый токен уникален. NFT обычно отображаются в кошельках в виде различных изображений и имеют уникальный ID для различия.

Из-за уникальности NFT их нельзя оценивать по ценовым кривым, как токены ERC-20. Поэтому распространенный способ торговли NFT — это использование книги заказов.

Серия для новичков Web3: как создать NFT DEX с нуля

Модель торговли по ордерной книге

Существуют два основных режима торговли на ордерной книге:

  1. Ценовое предложение: Продавец устанавливает цену, покупатель может купить, если считает ее приемлемой.
  2. Заказ на покупку: покупатель публикует заказ на покупку, продавец может продать после согласования цены.

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

! Начальная серия Web3: реализация NFT DEX с нуля

Основные функции децентрализованной платформы NFT

Базовая платформа для децентрализованной торговли NFT должна обладать следующими функциями:

  1. Выставление NFT: позволяет пользователям устанавливать цену для выставления NFT
  2. Покупка NFT: пользователи могут приобретать NFT по установленной цене.
  3. Платформа комиссия: взимается определенный процент от цены сделки

Процесс размещения NFT

  1. Фронтэнд: пользователь выбирает NFT и устанавливает цену, нажимает на размещение.
  2. Контракт: Пользователь уполномочивает контракт управлять его NFT.

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

Процесс покупки NFT

  1. Фронтенд: Пользователь выбирает желаемый NFT и нажимает на покупку.
  2. Контракт: выполнить операцию перевода, передав средства покупателя продавцу, одновременно передавая NFT покупателю.

Серия для новичков Web3: создание NFT DEX с нуля

Создание платформы децентрализации NFT

Далее мы поэтапно реализуем NFT платформу децентрализации.

1. Создать тестовый NFT

Для тестирования мы можем быстро развернуть контракт NFT, соответствующий протоколу ERC-721, с помощью Remix. Конечно, мы также можем использовать существующий NFT для тестирования.

! Начальная серия Web3: реализация NFT DEX с нуля

2. Разработка смарт-контрактов

Наши контракты должны содержать следующие ключевые функции:

2.1 Выставление NFT на платформе

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

  1. Пользователь выбирает NFT
  2. Установите цену (можно использовать USDT, USDC или ETH)
  3. Авторизовать NFT для контракта

Метод размещения контрактов должен быть завершен:

  1. Проверка прав собственности на NFT
  2. Добавить запись о размещении
  3. Триггер события листинга

! Серия для новичков Web3: реализация NFT DEX с нуля

2.2 Покупка NFT

При покупке NFT покупателем контракт должен быть выполнен:

  1. Чтение данных NFT
  2. Рассчитайте и вычтите комиссию
  3. Перевести NFT покупателю
  4. Событие покупки

! Начальная серия Web3: реализация NFT DEX с нуля

2.3 Отмена размещения

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

Серия для новичков Web3: создание NFT DEX с нуля

2.4 Извлечение комиссии

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

Серия для новичков Web3: Создание NFT DEX с нуля

3. Фронтенд-разработка

Для фронтенд-разработки используются следующие инструменты:

  • Ant Design Web3:для подключения кошелька и展示 NFT
  • Wagmi: Реализация взаимодействия с кошельком
  • Nextjs + Vercel: развертывание проекта

Фронтенд-приложение содержит три основных страницы: Mint, Buy и Portfolio.

3.1 Подключить кошелек

Используйте компонент подключения Ant Design Web3 для реализации функции подключения кошелька. Для повышения скорости запроса рекомендуется использовать сервис узлов, такой как endpoint ZAN.

! Начальная серия Web3: реализация NFT DEX с нуля

3.2 Страница Mint

Используйте метод useWriteContract от wagmi для реализации функции создания NFT.

Серия для новичков Web3: как создать NFT DEX с нуля

3.3 Страница портфолио

Показать пользователям принадлежащие NFT, поддерживать операции по размещению и снятию. Использовать API opensea для получения списка NFT и через методы контракта определять статус размещения NFT.

! Начальная серия Web3: реализация NFT DEX с нуля

3.4 Страница покупки

Показать все доступные NFT и предоставить функцию покупки. При покупке вызвать метод purchaseNFT и оплатить в ETH.

! Серия для новичков Web3: внедрение NFT DEX с нуля

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Поделиться
комментарий
0/400
NotGonnaMakeItvip
· 4ч назад
Эта ловушка действительно хороша. Когда будет Открытый исходный код?
Посмотреть ОригиналОтветить0
SocialFiQueenvip
· 07-20 02:58
Успеть за трендом. Правильно, давно уже следовало бы сделать это самостоятельно.
Посмотреть ОригиналОтветить0
GateUser-ccc36bc5vip
· 07-20 02:58
Когда будет Открытый исходный код?
Посмотреть ОригиналОтветить0
bridge_anxietyvip
· 07-20 02:57
открытые ордера торговля устарела
Посмотреть ОригиналОтветить0
TokenSherpavip
· 07-20 02:43
на самом деле это довольно примитивно... я видел лучшие реализации во время своих дней консалтинга в DAO, если честно
Посмотреть ОригиналОтветить0
HashBanditvip
· 07-20 02:40
по-прежнему жду, когда масштабирование l2 сделает торговлю NFT терпимой... эти Плата за газ убивают меня каждый раз, смех сквозь слезы
Посмотреть ОригиналОтветить0
  • Закрепить