blog details
author


blog detail

Экономика токенов — популярный словарный запас в деловом мире. Два основных типа токенов: взаимозаменяемые и невзаимозаменяемые токены. NFT (non-fungible token) — это уникальный цифровой идентификатор, который нельзя скопировать, заменить или разделить, который записывается в блокчейне. Он предоставляет общедоступный сертификат подлинности или доказательство права собственности.

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

В этой статье я расскажу, как создавать коллекции Web3 NFT с использованием Python, Openzeppelin и Pinata, которые могут быть зарегистрированы на рынках Opensea.

Ингредиенты Web3 NFT — создавайте NFT с помощью Python, Openzeppelin, Solidity

Оглавление

Смарт-контракт NFT

Помимо взаимозаменяемого токена, нам нужно начать с разработки кода смарт-контракта в разработке NFT.

Во-первых, мы можем эффективно использовать существующие модули, такие как Openzeppelin, что может сэкономить время на разработку общих функций. Не забудьте также добавить зависимости в файл brownie-config.YAML. Если у вас есть какие-либо вопросы, связанные с этим, обратитесь к другим статьям в коллекции Easy2Digital web3.

.
// contracts/GameItem.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol" ;

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

  • Здесь в ERC721 есть два параметра: один — полное имя, а другой — короткое имя созданного NFT. И он начинается с токенов, как вы увидите в созданной коллекции, включая функцию «плюс» когда вы создаете NFT один за другим.
contract SimpleCollection is ERC721 {
 uint256 public to encounte;
 constructor () public ERC721 ("LouisNFT", "LVnft") {
tokenCounter = 0 ;
}
 function createCollection ( string memory tokenURI ) public returns ( uint256 ) {
 uint256 newTokenId = tokenCounter;
 _safeMint ( msg.sender , newTokenId);
 _setTokenURI (newTokenId, tokenURI);
 tokenCounter = tokenCounter + 1 ;
 return newTokenId;
 }
 }
  • Затем каждый новый NFT имеет уникальный URI токена и идентификатор токена. Идентификатор токена хешируется с помощью uint256 на основе номера счетчика токена. И URI токена в основном включает в себя всю существенную информацию о NFT, включая изображение. Я пройду через это через мгновение.

Метаданные

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

blog detail

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

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

Есть два основных способа загрузить ваши материалы NFT в IPFS. Один из них — установить локальную среду IPFS для взаимодействия с сетью IPFS. Другой — запустить через стороннюю платформу, такую ​​как Pinata.

Загрузите изображение NFT и файл JSON в Pinata для создания URI токена.

Прежде всего, первый шаг — создать учетную запись Pinata и подготовить изображение, которое вы хотите преобразовать в NFT.

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

blog detail

Кроме того, поскольку URI токена представляет собой файл JSON, следующим шагом будет добавление всей информации, связанной с NFT, в файл JSON. Вот пример использования VSC следующим образом:

  • Имя
  • Изображение: структура URL-адреса IPFS, https://ipfs.io/ipfs/ + image CID key (Generated just now)
  • Описание
  • атрибут

И последнее, но не менее важное: как только файл JSON будет готов, вернитесь в Pinata, загрузите JSON и сгенерируйте ключ CID файла JSON. Вот образец окончательного URI маркера URL-адреса IPFS.

https://ipfs.io/ipfs/QmV8rPonNpVaKnH2ri826AWqJ5XxeKYdeJupjKch4kA1UK?filename=NFT1.json

Интеграция учетной записи Opeasea

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

blog detail

В этом случае мы можем смоделировать процесс листинга NFT, используя тестовую сеть OpenSea. Создание учетной записи opeansea testnet абсолютно бесплатно. В нашем случае мы будем использовать MetaMask для перечисления NFT. Поэтому, пожалуйста, не забудьте зарегистрировать тестовую учетную запись opensea, связанную с учетной записью тестовой сети MetaMask.

Для opeansea testnext URL-адрес NFT, в основном, он имеет две переменные: сеть криптовалюты и

Для URL-адреса листинга opeasa структура имеет две переменные, и вот пример

https://testnets.opensea.io/assets/ goerli/0x8eeb73f75e6d80a6a21302d1ec36d0ead0ceb295/0
  • Сетевой адрес: goerli/0x8eeb73f75e6d80a6a21302d1ec36d0ead0ceb295
  • Счетчик токенов: 0 (это число представляет порядок NFT, 0 означает, что это первый)

Вскоре мы воспользуемся этим в сценариях развертывания Python.

Сценарий развертывания Python

Помимо импорта модулей Brownie и AssistScript, а также создания взаимозаменяемого токена, для развертывания NFT нужны две переменные. Это sample_collection_URI и OPEASEA_URL.

sample_collection_URI = "https://ipfs.io/ipfs/QmV8rPonNpVaKnH2ri826AWqJ5XxeKYdeJupjKch4kA1UK?filename. =NFT1.json"
OPENSEA_URL = "https://testnets.opensea.io/assets/ {} / {} "

Затем в основной функции нам нужно использовать функции createcollection , созданные ранее в смарт-контракте NFT.

def main ():
 account = get_account ()
 Simple_Collection = SimpleCollection.deploy({ "from" : account })
 tx = Simple_Collection .createCollection(
 sample_collection_URI , { "from" : account })
 tx .wait( 1 )

Brownie-config, ENV и AssistScripts

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

Используйте Infura и MetaMask в сценариях Python для развертывания смарт-контрактов Web3 в реальной сети Ethereum BlockChain

Смарт-контракт Brownie FundMe развернут на Ethereum с использованием Python и Web3

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

Brownie run scripts/deploy_NFTCreate.py –network goerli

blog detail

blog detail

Полные сценарии построения NFT с использованием Python, Openzeppelin, Pinata

Если вы заинтересованы в Web3 NFT — создавайте и перечисляйте NFT с использованием Python, Openzeppelin, Pinata, пожалуйста , подпишитесь на нашу рассылку , добавив сообщение «Учебник Web3.0 7» . Мы отправим вам сценарий немедленно на ваш почтовый ящик.

Я надеюсь, вам понравится читать Web3 NFT — Build and List NFTs Using Python, Openzeppelin и Pinata. Если вы это сделали, пожалуйста, поддержите нас, выполнив одно из перечисленных ниже действий, потому что это всегда помогает нашему каналу.

  • Поддержите и пожертвуйте мой канал через PayPal ( paypal.me/Easy2digital )
  • Подпишитесь на мой канал и включите колокольчик уведомлений канала Easy2Digital Youtube .
  • Подписывайтесь и лайкайте мою страницу Страница Easy2Digital в Facebook
  • Поделитесь статьей в своей социальной сети с хэштегом #easy2digital
  • Вы подписываетесь на нашу еженедельную рассылку, чтобы получать последние статьи, видео и коды скидок Easy2Digital.
  • Подпишитесь на наше ежемесячное членство через Patreon, чтобы пользоваться эксклюзивными преимуществами ( www.patreon.com/louisludigital )
Поделиться этим постом

Пока нет комментариев...

shape shape

Подпишитесь на нашу рассылку!

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