inblog logo
|
정리한 노션 내용을 올리는 공간
    Blockchain

    NFT 만들기

    to
    tofu
    May 29, 2024
    NFT 만들기
    과정
    1) 이미지를 ipfs에 올린다. -> hash 값을 받는다.
    2) metadata JSON(NFT에 넣을 정보를 담는 그릇)파일을 ipfs에 올린다. -> has값을 받는다.
    3) ERC721 민터 코드를 블록체인에 올린다.(디플로이 한다.)
    4) NFT를 민트한다.
    5) Alphawallet에서 확인한다.
    hash값은 암호화 알고리즘을 통해서 나오는 값을 의미함.
    ERC721- NFT의 스탠다드.
    NFT라고 불리는 것들은 대부분 이 형식을 따름
    ERC20에 토큰 ID, 메타데이터 JSON 파일이 추가된 형태
    토큰 ID- NFT에 붙는 개별 식별번호
    메타데이터JSON은 NFT에 넣는 정보를 담는 그릇 -> 메타데이터 JSON파일을 블록체인에 저장하면 비용이 너무 비싸다.
    분산 저장소에 가는 경로만 블록체인에 일반적으로 담는다.
    IPFS란= 분산 저장소, 위변조 불가능 어찌보면 블록체인과 비슷하다.
    순서 1) 이 코드를, Remix에 붙여넣는다.
    // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/utils/Counters.sol"; contract NFT is ERC721 { using Counters for Counters.Counter; Counters.Counter private _tokenIds; constructor() ERC721("CResearch", "CNR") {} mapping(uint => string) tokenURIs; function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { return tokenURIs[tokenId]; } function create(address to, string memory tokenURI) public returns (uint256) { _tokenIds.increment(); uint256 newItemId = _tokenIds.current(); _mint(to, newItemId); tokenURIs[newItemId] = tokenURI; return newItemId; } }
    2) metadata.json, .png 이미지 파일을 사용할 예정
    3.1) pinata(ipfs를 사용하기 위해서) 로그인 한다.
    3.2) 이미지를 먼저 올린 후, ipfs 값을 복사 한다..
    3.3) metada JSON 파일을  "images" : "ipfs://올린 이미지 파일 ipfs 값 붙여넣기"
    4) Remix를 켠 다음에, NFT를 민트한다.
    4.1)=> cmd +s 누르고 저장하기
    4.2) Deploy 할 때,
    Environment를 Injected Provider -MetaMask로 변경해주고,
    Contract를 내가 하려고 하는, 파일로 잘 맞춘 다음에, Deploy한다.
    4.3) create에 들어가서,
    to: alphawallet 주소 넣어봄, 지금은 막힘
    tokenURI: ipfs://metadata.json(CID)값을 그대로 붙여넣기
    5) AlphaWallet에서 확인이 됐지만, 현재는 안된다고 해서, Brave Wallet으로 확인해봄. 안됨
    Share article

    정리한 노션 내용을 올리는 공간

    RSS·Powered by Inblog