如何在BNB智能链上铸造音乐NFT

  • QuickNode
  • 发布于 2025-07-17 15:20
  • 阅读 31

本文介绍了如何在BNB Smart Chain测试网上,使用Remix和MetaMask将音乐文件创建并部署为ERC721 NFT。内容包括将音乐文件上传到IPFS,创建NFT的元数据,以及如何在Remix中创建、编译和部署智能合约。

概述

BNB 智能链为创作者提供了一种快速且经济实惠的选择,可以将音乐上链。此外,BSC 允许你使用 ERC721 标准规范,因此如果你之前在以太坊上使用过 NFT,这应该很熟悉。此过程类似于创建图像 NFT;唯一的区别是文件类型。你可以在此处了解更多关于 ERC721 代币标准的信息。

你将做什么

在本指南中,你将使用 Remix 和 MetaMask 创建一段音乐并将其作为 ERC721 NFT 部署到 BSC 测试网。

  • 你将把你的音乐文件上传到去中心化存储系统 (IFPS)

  • 你将创建并上传你的 NFT 的元数据。

  • 你将学习如何在 Remix 中创建、编译和部署智能合约。

你需要的

  • 智能合约和区块链的背景知识会有所帮助,但不是必需的。
  • 终端
  • IFPS CLI
  • Metamask(与 BSC 测试网集成)。
  • BNB 测试网代币 (BNB Smart Chain Faucet)

连接到 BNB 智能链测试网

设置你的 QuickNode 终端节点

要在 BNB 智能链测试网上构建,你需要一个 API 终端节点来连接到网络。 欢迎使用公共节点或部署和管理你自己的基础设施;但是,如果你想要更快的响应时间,你可以将繁重的工作留给我们。 在此处注册一个帐户。

复制你的 HTTP Provider:

配置 Metamask

如果你的 Metamask 中还没有 BNB 智能链测试网,请使用以下设置添加它:

获取测试 BNB 代币

由于我们正在 BCS 测试网上部署我们的智能合约,因此我们需要一些测试 BNB 代币来支付 gas 费用。

访问 BNB Smart Chain Faucet,粘贴你的 BNB 钱包地址,然后点击“Give Me BNB”以接收 0.5 BNB:

将文件上传到 IPFS

在编写你的 NFT 合约之前,你必须托管你的音乐文件并创建一个元数据文件。我们将使用 IPFS,一种点对点文件存储和共享的分布式系统。按照 IPFS 文档中的安装指南,根据你的操作系统下载并安装 IPFS CLI。

上传歌曲到 IPFS

通过在终端/cmd 窗口中键入以下内容来启动 IPFS 仓库:

ipfs init

接下来,通过打开一个单独的终端/cmd 窗口并键入以下内容来启动 IPFS 守护程序:

ipfs daemon

最后,在你的第一个终端窗口中,将歌曲添加到 IPFS(确保你)

ipfs add <PATH_TO>/SpecialSong.mp3

成功上传后,终端将生成一个以 Qm 开头的哈希。复制以 Qm 开头的哈希,并添加“ https://ipfs.io/ipfs/” 前缀。它看起来像这样 https://ipfs.io/ipfs/QmYpgrCyfvEaec3DxwcQs5gaiw2dEEEcoaYKKYJ3j9fdF1,这将允许你在浏览器中收听你的歌曲:

将 JSON 文件上传到 IPFS

创建一个 JSON 文件 nft.json,并按照以下步骤将其保存在与歌曲相同的目录中。在 nft.json 内部,粘贴以下代码:

{
    "name": "My first Song NFT",
    "description": "My first music NFT project .",
    "song": "https://ipfs.io/ipfs/YOUR_Qm_HASH",
}

随意更新名称和描述,并确保更新 IPFS URI。

现在添加上传 JSON 文件。在你的命令行中输入:

ipfs add nft.json

记下终端中返回的哈希。你将在下一步中需要它。

在 Remix 中创建智能合约

前往 Ethereum Remix IDE 并创建一个新的 Solidity 文件,例如 - music.sol

将以下代码粘贴到你的新 Solidity 脚本中:

// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;

import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol";
import "https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol";

contract musicNft is NFTokenMetadata, Ownable {

  constructor() {
    nftName = "Quick Music NFT";
    nftSymbol = "QMNFT";
  }

  function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {
    super._mint(_to, _tokenId);
    super._setTokenUri(_tokenId, _uri);
  }

}

以下是对上面代码的解释:

  • 第 1 行:指定 SPDX 许可证类型,这是 Solidity ^0.6.8 之后的一个添加。每当智能合约的源代码可供公众使用时,这些许可证可以帮助解决/避免版权问题。如果你不希望指定任何许可证类型,你可以使用特殊值 UNLICENSED 或直接跳过整个注释(它不会导致错误,只是一个警告)。

  • 第 2 行:声明 solidity 版本。

  • 第 4-5 行:导入 0xcert/ethereum-erc721 合约。

  • 第 7 行:启动我们的名为 newNFT 的合约,并提到它正在扩展 NFTokenMetadata 和 Ownable 合约。

  • 第 9-12 行:初始化构造函数并设置名称,我们代币的符号。

  • 第 14 行:声明具有三个参数的函数 mint,类型为 address 的变量 _to 将存储 NFT 代币的接收者的地址,类型为 uint256 的变量 _tokenId 将保存代币 id,类型为 string 的变量 _uri 将存储 JSON 文件的 URI。将 mint 声明为 external 意味着它可以从其他智能合约和自身范围之外访问。

  • 第 15 行:使用接收者的地址和代币 id 铸造代币。

  • 第 16 行:使用代币 id 和 JSON 文件的 URI 设置代币 URI。

对你的代码满意后,单击“编译合约”以编译智能合约。

铸造你的音乐 NFT

单击左侧面板中的“部署和运行交易”图标(它看起来像一个带有三角形的以太坊标志)。

将你的环境设置为“Injected Web3”,然后选择 Smart Chain Testnet Wallet Metamask。

单击“部署”。

如果在部署之前收到错误消息“此合约可能是抽象的”,这意味着未选择“合约”选项卡下的相应合约。你需要从“合约”下拉列表中选择具有你的歌曲名称的合约名称。然后再次单击 部署

系统将提示你从 Metamask 批准交易。接受它:

在 Metamask 中确认交易:

成功后,你将看到如下所示的注释。

最后,在左侧边栏中滚动到 Remix 中的“已部署合约”部分,然后展开已部署的合约。你将看到一些可以在合约上调用的方法。展开 mint 函数并添加以下详细信息:

让我们铸造你的 NFT!

  1. 通过单击向下箭头切换来展开 Mint 方法。

  2. 将你的钱包地址输入到 _to 字段中。

  3. _tokenid 中输入一个整数值。我们使用 1

  4. _uri 字段中输入你之前创建的 .json 文件的 IPFS URI。

然后单击 交易 并在 Metamask 中批准交易。

你应该能够在你的 Metamask 和区块浏览器中看到成功的交易:

你还可以通过向下滚动到 tokenURI 方法来仔细检查你的元数据是否已正确存储。输入与你在 _tokenId 上面输入的相同值:

你应该会看到一个响应,其中包括你 .json 文件的 URI!

做得好!你已经铸造了你的第一个音乐 NFT!

结论

你现在拥有在去中心化存储上存储你的音乐文件并在 BNB 智能链上将其铸造为 NFT 的工具。

如果你有任何问题或想联系,你可以在 DiscordTwitter 上找到我们!

我们 ❤️ 反馈!

如果你对此指南有任何反馈或问题,请告诉我们。我们很乐意听到你的声音。

  • 原文链接: quicknode.com/guides/bnb...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。