使用 Remix 在 Polkadot Hub 上部署 NFT(ERC-721)完整教程

原文作者: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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值