//Contract based on [<https://docs.openzeppelin.com/contracts/3.x/erc721>](<https://docs.openzeppelin.com/contracts/3.x/erc721>)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";

contract MyNFTs is ERC721URIStorage, Ownable {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    constructor() public ERC721("MyNFT", "NFT") {}

    function mintNFT(address recipient, string memory tokenURI)
        public onlyOwner
        returns (uint256)
    {
        _tokenIds.increment();

        uint256 newItemId = _tokenIds.current();
        _mint(recipient, newItemId);
        _setTokenURI(newItemId, tokenURI);

        return newItemId;
    }
}

위 코드를 워크스페이스에서 새 파일을 만든후 입력하면 자동으로 npm install 이 진행되어 모든 추가 파일들이 설치된다.

[IPFS와 NFT]

IPFS 는 모든 컴퓨터를 연결하고자 하는 분산된 P2P 파일 시스템이다. 기존의 HTTP Web의 문제점을 해결하고 보완한 새로운 Web이다.

스크린샷 2022-12-08 오후 2.42.27.png

스크린샷 2022-12-08 오후 2.46.45.png