ERC-721: The Standard for Non-Fungible Tokens (NFTs)
Last updated
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFT is ERC721URIStorage, Ownable {
uint256 private _nextTokenId;
constructor() ERC721("MyNFT", "MNFT") {}
function mintNFT(address recipient, string memory tokenURI) public onlyOwner {
uint256 tokenId = _nextTokenId;
_nextTokenId++;
_mint(recipient, tokenId);
_setTokenURI(tokenId, tokenURI);
}
}
[ User A ] ---> (mint tokenId #1) ---> [ NFT Contract ]
[ User A ] ---> (transfer tokenId #1) ---> [ User B ]
[ Marketplace ] ---> (approve & transfer NFT) ---> [ Buyer ]