Как установить цену на NFT?

Руководство по установке цены на NFT
Вы только что создали NFT и хотите продать его своим коллегам-энтузиастам NFT. Для этого мы должны указать цену на NFT, и есть два основных способа указать цену:
  1. В смарт-контракте (это руководство)
  2. Размещение NFT на торговой площадке или платформе NFT (более популярный подход)

Установление контрактной цены NFT

Требовать плату при чеканке

ПРИМЕЧАНИЕ: Следующий раздел не является готовым решением. На шаге 10 учебника по созданию NFT нам нужно будет изменить Solidity для приема платежей за майнинг, что означает, что любой frontend web3 / ethers.js logic, должен включать themsg.valueparameter, чтобы позволить перевод ETH.

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


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


Вот пример кода для этого типа процесса:

function mintToken(address to, uint256 tokenId, string uri) public virtual payable {
  
  require(msg.value >= 10, "Not enough ETH sent; check price!"); 
  
  mint(to, tokenId);
  _setTokenURI(tokenId, uri);
}
function mintToken(address to, uint256 tokenId, string uri) public virtual payable

Чтобы пользователи могли платить ETH за NFT, нам нужно сделать эту функцию публичной и оплачиваемой. Публичные функции могут вызываться внутри компании или через сообщения, чтобы любой мог взаимодействовать с функцией.
(Мы не хотим, чтобы эту функцию мог вызывать только владелец контракта, так как это заблокирует потенциальных покупателей!)

require(msg.value >= 10, "Отправлено недостаточно ETH; проверьте цену!");
Этот оператор require требует, чтобы функция payable получила не менее 10, иначе функция потерпит неудачу и вернется. Параметр msg.value - это значение суммы ETH, отправленной вместе с функцией mint.

mint(to, tokenId);
Вызывает функцию mint, включенную в файл контракта OpenZepplin ERC721, и инстанцирует/передает выбранный NFT покупателю.

_setTokenURI(tokenId, uri);
Вызывает функцию _setTokenURI, включенную в файл контракта OpenZepplin ERC721, и устанавливает URI NFT на определенную конечную точку.

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

Выставить NFT на аукционную платформу

Выставить на OpenSea или другую платформу

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


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


Для Ethereum mainnet используйте: https://opensea.io/.

Для тестовой сети используйте: https://testnets.opensea.io/

Поддержите блог, перечислив небольшие чаевые

Если у вас нет кошелька MetaMask, вы можете получить его здесь
Made on
Tilda