使用 ERC721 标准发行 NFT 合约,在OpenSea上查看
NFT (Non-Fungible Token) 是一种基于区块链技术的数字资产,它具有唯一性和不可互换性。每个 NFT 都有一个唯一的标识符,并且可以包含各种类型的数据,如图像、音频、视频等。NFT 在区块链上记录了所有权和转让历史,使其在数字艺术、游戏、收藏品等领域得到了广泛应用。
如果你想在以太坊上创建一个 NFT,可以使用 Solidity 编写智能合约,并使用 ERC-721 或 ERC-1155 标准。以下是一个简单的步骤指南,帮助你创建和部署一个 NFT 智能合约。
用 ERC721 标准发行一个自己 NFT 合约,并用图片铸造几个 NFT , 请把图片和 Meta Json数据上传到去中心的存储服务中,请找到出在 OpenSea 的 NFT 链接。
要使用 ERC721 标准发行自己的 NFT 合约并用图片铸造几个 NFT,下面是一个完整的步骤指南,包括上传图片和元数据到去中心化的存储服务(例如 IPFS),以及在 OpenSea 上查看 NFT 的链接。
首先,编写一个 ERC721 智能合约。以下是一个简单的例子:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFT is ERC721URIStorage, Ownable {
uint256 public tokenCounter;
constructor() ERC721("MyNameNFT", "EGAMA") Ownable(msg.sender) {
tokenCounter = 0;
}
function createNFT(string memory tokenURI) public onlyOwner returns (uint256) {
uint256 newTokenId = tokenCounter;
_safeMint(msg.sender, newTokenId);
_setTokenURI(newTokenId, tokenURI);
tokenCounter++;
return newTokenId;
}
}
你可以使用 Pinata 服务将图片和元数据上传到 IPFS。
将图片上传到 IPFS,并记录下返回的 CID(Content Identifier)。
CID:QmSDFdbzGBmRYZc9e9FcK91PWnbJCSa2NmMb72W1cfmSPF
创建一个 JSON 文件,包含以下内容:
{
"name": "MyNameNFT",
"description": "This is my first name NFT",
"image": "ipfs://QmSDFdbzGBmRYZc9e9FcK91PWnbJCSa2NmMb72W1cfmSPF"
}
将此 JSON 文件上传到 IPFS,并记录下返回的 CID为:QmRHPgDYBpVzKsdzsx8wvgp8ktMP9Gr6R95R1b84nyB2w3。
在部署合约后,调用 createNFT
函数,传入元数据的 IPFS URI。例如:
const contract = new ethers.Contract(contractAddress, abi, signer);
await contract.createNFT("ipfs://QmRHPgDYBpVzKsdzsx8wvgp8ktMP9Gr6R95R1b84nyB2w3");
要在 OpenSea 上查看你的 NFT,请使用以下 URL 格式:
https://testnets.opensea.io/assets/sepolia/0xA98287D39fD81d9F9c384981d8fbb7563C7b7780/0
将 <contract_address>
替换为你的智能合约地址0xA98287D39fD81d9F9c384981d8fbb7563C7b7780,将 <token_id>
替换为铸造的 NFT ID:0。
Qm...ImageCID
。Qm...MetadataCID
。createNFT("ipfs://Qm...MetadataCID")
。https://testnets.opensea.io/assets/sepolia/0xA98287D39fD81d9F9c384981d8fbb7563C7b7780/0
这样,你就可以使用 ERC721 标准发行自己的 NFT,并在 OpenSea 上查看它们了。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!