如何为 NFT 定价

您刚刚创建了一个 NFT,并想将其出售给您的 NFT 爱好者。为此,我们必须为 NFT 定价,定价的主要方式有两种:

  1. 在智能合约中(本指南)

  2. 在 NFT 市场或平台上列出 NFT(更流行的方法)

在合约中设置 NFT 价格

铸币时需要费用

注意:以下部分不是交钥匙解决方案。在NFT 创建教程的第 10 步中,我们需要更改 Solidity 以接受铸造付款,这意味着任何 frontendweb3 / ethers.jslogic 指示铸造都需要包含 themsg.value 参数以允许 ETH 的转移。

这种费用模式是完全去中心化的,因为它发生在合同中,并将费用机制融入到铸币过程本身中。要实施铸造价格,您需要更改您的智能合约以包含此行为。作为一个高层次的总结,NFT 铸造价格可以通过使铸造功能可支付并要求用户在触发 NFT 转移给买方之前支付特定数量的 ETH 来制定。

以下是此类铸币过程的示例代码:

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);
}

函数 mintToken(address to, uint256 tokenId, string uri) public virtual payable

  • 为了让用户支付 ETH 来铸造 NFT,我们需要将此功能公开和支付。可以在内部或通过消息调用公共函数,以允许任何人与该函数进行交互。(我们不希望这个函数只能由合约所有者调用,因为这会把潜在买家拒之门外!)

require(msg.value >= 10, "发送的 ETH 不够;检查价格!");

  • 此 require 语句要求 payable 函数至少收到 10 wei,否则该函数将失败并恢复。msg.value 参数是与 mint 函数一起发送的数量的 ETH 值。

薄荷(到,tokenId);

  • 这会调用 OpenZepplin 的 ERC721 合约文件中包含的 mint 函数,并将选定的 NFT 实例化/转移给买方。

_setTokenURI(tokenId, uri);

  • 这会调用 OpenZepplin 的 ERC721 合约文件中包含的 _setTokenURI 函数,并将 NFT URI 设置为特定端点。

‌在铸造合同中实施费用有许多不同的变体。上面列出的是最简单的协议之一,但许多协议也使用复杂得多的费用模式。

通过拍卖平台设定 NFT 价格

在 OpenSea 或其他 NFT 拍卖平台上列出 NFT

一种非编码替代方案是简单地在 OpenSea 或其他 NFT 拍卖网站上列出您新铸造的 NFT,这样您就可以为其定价。运行在 NFT 之上的 OpenSea 的 UI 层允许您定价、接受出价或使用其他更复杂的拍卖方法并为您处理所有逻辑。

对于以太坊主网,请使用: https ://opensea.io/

对于测试网,请使用:https ://testnets.opensea.io/

注意: NFT 拍卖平台通常对上市和处理拍卖过程收费。与不同的平台保持同步,以找到有竞争力的价格并最大化您的 NFT 销售额。ZoraSuperRare是两个替代平台,它们也提供与 OpenSea 类似的服务。

最后更新于