목차
- NFT토큰과 그냥 토큰과의 차이점
- remix IDE로 NFT 토큰 생성해보기
- Opensea 마켓에 등록해보기
NFT토큰과 그냥 토큰과의 차이점
ERC 20 - Token fungible Token
ERC-721 - Token Non-funfible Token
fingible Token : 토큰을 값어치로 표현한다. 1개에 천원이면 2장 이천원
NFT - 토큰마다 가치가 다른 것.
code로 구현하자면 어떤 느낌일까?
토큰이 생성될 때마다 고유키 값을 부여해주면 된다.(민팅)
mint(msg.sender, 1) << 숫자는 키값
mint(msg.sender, 2) 이런 식으로 키 값에 대한 작업이 이루어진다.
따라서 토큰이 2000개가 있다면 2000개의 key값이 존재하는 것이다.
따라서 ERC-721은 ERC-20와 다른 게 하나 있다면,
mapping(uint => address) public owned; 가 존재한다.
키 값을 넣으면 계정주가 나옴.
영화관에 돈 넣으면 나오는 티켓처럼. 가치가 달라질 수 있음 (암표라던가.)
그래서 오늘 할 것은?
OpenSea라는 NFT 마켓에 코인을 올려보자! (테스트 넷으로..)
NFT 토큰 생성해보기
일단 기본 설치와 세팅을 해주자.
npx ganache-cli
npm install -g @remix-project/remixd
mkdir truffle
cd truffle
truffle init
cd contracts
remixd -s . --remix-ide https://remix.ethereum.org
이런 게 뜨면 잘 된 것이다.
그 다음, Remix IDE에 들어가주자.
Remix - Ethereum IDE & community
DEPLOY & RUN TRANSACTIONS IN THE CLOUD
remix-project.org
workspace안에 connect_localhost 들어가서 connect해준다.
아래처럼 설정해준다.
ERC20 -> 라이브러리
라이브러리 먼저 만들어보고 구현(opensea에 보이게 등록)할 것이다.
cd truffle
npm init
npm install openzeppelin-solidity
truffle/contracts/Minting.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
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 _tokenId)public override pure returns(string memory){
return "https://gateway.pinata.cloud/ipfs/QmPwjnvWYN4etA5eW4yAbWCTy2ukEC1Jj5417VLGyH5XpU/1/1.json";
}
}
그럼 Remix 파일에 VSCODE에서 친 코드가 연동이 된다.
Environment 를 메타마스크로 린키비 테스트네트워크와 연결해주자.(테스트 이더리움은 구글에 검색하면 받을 수 있는 사이트가 많다.)
초기 name, symbol도 설정할 수 있다.
transact 를 누르면 메타마스크 확인 창이 뜨는데, 그걸 누르면 완료가 된다.
민팅에서 token의 고유한 아이디를 부여해주고 transact를 하면?(필자는 이미 1~3까지 생성을 했기때문에 4로 함. 처음하는 사람은 0으로)
트랜잭션 승인을 눌러주자.
balanceOf에 계정을 입력해주고, call을 누르면
현재 생성 된 nft 토큰의 개수가 나온다.
remix IDE에서 사용할 수 있는 함수들을 살펴보면, 주황색과 파란색이 있는데
주황색은 send, 파란색은 call함수이다.
즉, 주황색만 이더가 든다. (트랜잭션이기 때문에)
Opensea 마켓에 등록해보기
OpenSea, the largest NFT marketplace
OpenSea is the world's first and largest web3 marketplace for NFTs and crypto collectibles. Browse, create, buy, sell, and auction NFTs using OpenSea today.
testnets.opensea.io
에 들어가서
메타마스크를 연동해준다.
메타마스크 선택 후, 연동을 시켜주고,
내 계정을 클릭하면, 만든 nft코인이 등록된 것을 확인할 수 있다.
끝!
'블록체인 > 스마트 컨트랙트' 카테고리의 다른 글
[typescript] NFT 토큰 민팅하는 dApp 간단히 구현하기 (0) | 2022.07.28 |
---|---|
[스마트 컨트랙트, open-zeppelin] 토큰 <-> 이더리움 스왑 구현해보기 (0) | 2022.07.22 |
[스마트 컨트랙트] 물건 사고, 환불하는 dApp 간단히 구현 (0) | 2022.07.20 |
[스마트 컨트랙트] 투표 dApp 만들어 보기 (0) | 2022.07.18 |
[truffle, 스마트 컨트랙트] 토큰 생성해보기 (0) | 2022.07.15 |