728x90
1. 초기설정
코드는 Remix툴을 이용하여 작성한다.
NFT는 ERC721토큰으로 ERC20과 마찬가지로 표준 규격이 정해져 있다.
오픈제플린 설치 후 표준 규격을 가져다 쓸것이다.
ERC721 구조
{"토큰아이디" : "주소"}
토큰에 고유값이 있고 그 토큰의 주인이 누구인지 나타내는 객체형식이다.
이 토큰은 대체불가토큰으로 NFT이다.
오픈제플린 설치
npm install openzeppelin-solidity
2. goerli 테스트넷 이더 받기
홈페이지에서 로그인후 메타마스크 주소를 입력하면 테스트이더를 받을수 있다.
3. Pinata
Pinata 홈페이지는 nft의 이미지, 객체등을 저장하는 저장소역할을 한다.
(1) 이곳에 먼저 이미지를 먼저 올린다.
(2) json생성 후 업로드
json객체 내용
{
"name": "seok NFT",
"description": "user NFT",
"image": "이미지 url",
"attributes": [
{
"trait_type": "Rank",
"value": 1
},
{
"trait_type": "Type",
"value": 1
}
]
}
그다음 객체 url을 따로 저장해둔다.
2. 스마트 컨트랙트
Minting.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import 'openzeppelin-solidity/contracts/token/ERC721/extensions/ERC721Enumerable.sol';
contract Minting is ERC721{
constructor(string memory _name, string memory _symbol) ERC721(_name,_symbol){
}
function _minting(uint _tokenId) public {
_mint(msg.sender,_tokenId);
}
function tokenURI(uint) public override pure returns (string memory){
return "Pinata 페이지에서 만든 객체 url";
}
}
//
3. 민팅
remix 에서 mint를 하고 오픈씨 테스트넷에 들어가보면 해당 nft가 들어온것을 확인할 수 있다.
728x90
'개발 > BlockChain' 카테고리의 다른 글
[BlockChain] NFT만들기, NFT거래 컨트랙트 (0) | 2022.12.15 |
---|---|
[ERC토큰] ERC20 ERC721 ERC777 ERC1155 (0) | 2022.12.12 |
[BlockChain] localhost에서 remix 연동 (0) | 2022.12.06 |
[BlockChain] ERC20 Token - openzeppelin 사용 (0) | 2022.12.06 |
[BlockChain] ERC20 Token 만들기 (0) | 2022.12.06 |