基于 Solidity + Hardhat 开发的 NFT 智能合约示例。
该项目演示了如何在以太坊测试网 (Sepolia) 部署和验证一个 ERC721 NFT
合约,并通过脚本完成铸造与查询。
- 实现 ERC721 标准,支持元数据存储 (
ERC721URIStorage)\ - 仅合约拥有者可调用
mint进行铸造\ - 支持
IPFS/Pinata链接作为 Token URI\ - 自动化部署与 Etherscan 验证\
- 提供示例脚本用于快速测试 NFT 功能
├── contracts/
│ └── ZaneNFT.sol # 主合约
├── scripts/
│ ├── deploy.js # 部署脚本
│ └── testMint.js # 测试脚本
├── hardhat.config.js # Hardhat 配置文件
├── package.json
└── README.md
git clone https://github.com/yourusername/ZaneNFT.git
cd ZaneNFTnpm install本项目使用
@chainlink/env-enc
管理密钥。
设置加密密码
npx env-enc set-pw设置环境变量
npx env-enc setPRIVATE_KEY=你的钱包私钥
PRIVATE_KEY2=另一个测试钱包私钥
ALCHEMY_KEY=你的Alchemy API Key
ETHERSCAN_API_KEY=你的Etherscan API Key运行时会自动解密使用,无需明文暴露密钥。
npx hardhat compilenpx hardhat run scripts/deploy.js --network sepolianpx hardhat run scripts/test-nft.js --network sepoliafunction mint(address to, string memory uri) external onlyOwner {
_safeMint(to, nextTokenId);
_setTokenURI(nextTokenId, uri);
nextTokenId++;
}示例调用:
await nft.mint(user1.address, "ipfs://QmABC123/metadata.json");通过该项目你将学习:
- 如何编写并部署一个 ERC721 NFT 合约\
- 如何上传元数据到 IPFS/Pinata\
- 如何在 Hardhat 中进行部署、验证和测试\
- 如何使用
@chainlink/env-enc管理敏感信息
🙌 欢迎 Fork & Star 本项目!