随着NFT(非同质化代币)的持续火热,其创作与交易需求日益旺盛,以太坊主网因其高昂的 gas 费用和较低的交易速度,常常成为开发者和创作者的痛点,为了解决这些问题,以太坊侧链(如Polygon、Arbitrum、Optimism等)应运而生,它们提供了更低的成本和更快的确认速度,成为部署NFT的理想选择,本文将详细介绍如何将NFT从以太坊主网(或直接在侧链上)上传/部署至以太坊侧链。
为什么选择以太坊侧链部署NFT?
在具体操作之前,我们先简要了解一下选择侧链的优势:
- 低Gas费用:侧链通常采用不同于主网的共识机制(如PoS或Rollups),交易成本极低,大大降低了NFT的铸造和交易成本。
- 快速确认

trong>:交易确认时间大幅缩短,用户体验更佳。
-
配置Hardhat项目:
const PRIVATE_KEY = "你的钱包私钥"; // 替换为你的MetaMask私钥(注意:不要泄露)
const POLYGON_MAINNET_RPC_URL = "https://polygon-rpc.com"; // Polygon主网RPC
const POLYGON_TESTNET_RPC_URL = "https://rpc-mumbai.maticvigil.com"; // Polygon测试网Mumbai RPC
module.exports = {
solidity: "0.8.17",
networks: {
polygon: {
url: POLYGON_MAINNET_RPC_URL,
accounts: [PRIVATE_KEY],
chainId: 137,
},
mumbai: {
url: POLYGON_TESTNET_RPC_URL,
accounts: [PRIVATE_KEY],
chainId: 80001,
},
},
etherscan: {
apiKey: {
polygon: "你的PolygonScan API Key", // 可选,用于验证合约
mumbai: "你的Mumbai Polygonscan API Key", // 可选
},
},
};
-
编译智能合约:
- 在终端运行:
npx hardhat compile
-
编写部署脚本:
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
* 如果你的合约有构造函数参数,需要在 `MyNFT.deploy()` 中传入。
-
配置MetaMask连接侧链:
- 打开MetaMask,点击网络下拉菜单。
- 点击“添加网络” -> “添加网络 manually”(手动添加网络)。
- 输入所选侧链的网络信息(例如Polygon主网:网络名称
Polygon PoS Chain, RPC URL https://polygon-rpc.com, 链ID 137, 货币符号 MATIC, 区块浏览器URL https://polygonscan.com)。
- 确保你的钱包切换到该侧链网络。
-
部署合约:
- 在终端运行部署命令,指定网络(例如部署到Mumbai测试网):
npx hardhat run scripts/deploy.js --network mumbai
- MetaMask会弹出交易确认窗口,显示部署所需的gas费,确认交易。
- 等待交易确认后,你会在终端看到合约的部署地址。
-
验证合约(可选但推荐):
- 为了增加合约的透明度和可信度,你可以在侧链的区块浏览器(如Polygonscan)上验证合约。
- 通常需要提供合约源代码、编译后的字节码、ABI等信息,Hardhat集成了 etherscan 插件,可以通过
npx hardhat verify --network mumbai <合约地址> [构造函数参数] 来验证(需要提前配置好API Key)。