原文作者:PaperMoon团队
非同质化代币(Non-Fungible Token,简称 NFT)是一种具有唯一性的数字资产,广泛应用于数字艺术、收藏品、游戏资产以及身份认证等领域。
与同质化代币(如 ERC-20)不同,每一个 NFT 都拥有独立且不可替代的标识,使其非常适合用于表示独特资产。
本文将介绍如何使用 Remix 在线开发环境 和 OpenZeppelin 官方合约库,在 Polkadot Hub 测试网络 上部署一个标准的 ERC-721 NFT 智能合约。
本教程无需本地安装开发环境,适合初学者快速上手区块链合约开发。
前置条件(Prerequisites)
在开始之前,请确保你具备以下基础条件:
1. 了解 Solidity 编程基础
2. 熟悉 ERC-721 NFT 标准的基本概念
3. 拥有一个支持 EVM 的钱包(本示例使用 MetaMask)
4. 钱包已连接至 Polkadot Hub 测试网
5. 拥有测试网 Gas 代币(可通过官方水龙头获取)
说明:测试代币仅用于支付测试网络交易手续费,不具备真实价值。
创建 NFT 合约(Create Your Contract)
1. 打开 Remix IDE
在浏览器中访问 Remix 官方网站:
https://remix.ethereum.org
Remix 是一个基于浏览器的 Solidity 开发工具,集成了代码编辑、编译和部署功能。
2. 新建合约文件
在左侧文件管理器中:
1. 找到 contracts 文件夹
2. 点击「Create New File」

3. 创建文件并命名为:
MyNFT.sol
3. 编写 ERC-721 合约代码
将以下代码粘贴到 MyNFT.sol 文件中:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFT is ERC721, Ownable {
uint256 private _nextTokenId;
constructor(
address initialOwner
) ERC721("MyToken", "MTK") Ownable(initialOwner) {}
function safeMint(address to) public onlyOwner {
uint256 tokenId = _nextTokenId++;
_safeMint(to, tokenId);
}
}
4. 合约代码说明
该合约基于 OpenZeppelin 标准实现,主要功能包括:
(1)继承的合约
ERC721
Ownable
• ERC721:实现 NFT 标准功能
• Ownable:提供合约管理员权限控制
(2)Token ID 管理
uint256 private _nextTokenId;
用于记录下一个可用的 NFT 编号,自动递增。
(3)构造函数
constructor(address initialOwner)
用于设置:
• NFT 名称:MyToken
• NFT 符号:MTK
• 初始管理员地址
(4)铸造函数
function safeMint(address to) public onlyOwner
功能:
• 仅允许管理员调用
• 向指定地址铸造 NFT
• 自动分配 Token ID
• 使用 _safeMint 确保安全性
5. 提示说明
本示例合约由 OpenZeppelin Contracts Wizard 工具生成,符合行业最佳实践,适合学习和测试使用。
编译智能合约(Compile the Contract)
在部署之前,必须先将 Solidity 代码编译为区块链可识别的字节码。
编译过程主要用于:
• 检查语法错误
• 验证类型安全
• 生成部署字节码
编译步骤
1. 确保 MyNFT.sol 文件处于打开状态
2. 点击左侧「Solidity Compiler」插件

3. 选择合适的编译器版本(0.8.20 或以上)
4. 点击:
Compile MyNFT.sol
编译成功标志
• 编译器图标显示绿色勾号
• 控制台无报错信息
如果出现错误,请根据提示修改代码后重新编译。
部署智能合约(Deploy the Contract)
编译完成后,即可将合约部署到区块链网络。
1. 打开部署面板
点击左侧:
Deploy & Run Transactions
2. 配置运行环境
在 Environment 下拉框中选择:
Injected Provider - MetaMask
该模式将使用浏览器中的 MetaMask 钱包进行交易签名。

确保:
• MetaMask 已解锁
• 已连接 Polkadot Hub 测试网
3. 设置构造参数
本合约构造函数需要一个参数:
initialOwner
填写你自己的钱包地址,用作合约管理员。
4. 部署合约
点击:
Deploy
随后:
1. MetaMask 弹出确认窗口
2. 检查 Gas 费用
3. 点击确认

5. 部署成功提示
部署完成后,你将在 Remix 控制台中看到:
• 合约地址
• 交易哈希
• 区块信息
同时,在「Deployed Contracts」区域中可以看到你的合约实例。
合约交互与 NFT 铸造
部署完成后,你可以直接在 Remix 中与合约交互。
常见操作包括:
1. 铸造 NFT
调用:
safeMint
函数,输入接收地址,即可创建新的 NFT。
2. 查询 NFT 信息
可以调用:
• ownerOf
• balanceOf
• tokenURI
等函数查询资产信息。
3. 转移 NFT
使用标准 ERC-721 函数:
• transferFrom
• safeTransferFrom
即可完成转账。
总结(Conclusion)
至此,你已经成功完成了:
✅ 编写 ERC-721 NFT 合约
✅ 使用 OpenZeppelin 标准库
✅ 在 Remix 中编译代码
✅ 通过 MetaMask 部署合约
✅ 在 Polkadot Hub 测试网上运行 NFT
本教程为区块链初学者提供了一条完整、低门槛的 NFT 开发路径。
原文链接:https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-nft/nft-remix/
完整教程&spm=1001.2101.3001.5002&articleId=157802610&d=1&t=3&u=f74b1496a49443b895d6122b20426110)
999

被折叠的 条评论
为什么被折叠?



