누구나 할 수 있는 NFT 만들기
누구나 할 수 있는 NFT 만들기 - 7강 NFT 스마트 컨트랙트 사용법
D_One
2022. 9. 14. 13:01
안녕하세요 :)
오늘은 드디어 스마트 컨트랙트로 넘어가보겠습니다.
TLTR; 간편하게 영상으로 참고하세요 :))
https://www.youtube.com/watch?v=rG8yF8aw_t0
넘어가기전 준비물
- 메타마스크(Metamask)
- 테스트네 이더 goerly 테스트 네트워크
준비물 준비하는 방법 영상으로 보기
위 그림과 같이 준비가 되어 있어야 합니다.
준비가 완료가 되었다면, 리믹스 IDE https://remix.ethereum.org/ 로 들어가도록 하겠습니다.
먼저, 아래 사진과 같이 파일(myNFT.sol)을 하나 생성 합니다.
그러고 나서, 제 깃허브(NFT코드) 로 들어오셔서 코드를 카피합니다.
복사한 코드를 보시면 아래 그림과 같이 발행 순서가 있습니다.
위 그림과 같이 발행순서를 차례대로 하시면 됩니다.
1._baseURI함수에서 메타데이터(metadata) CID 추가
1.1 메타데이터를 확인 하려면, 피나타로 들어 가서 CID를 복사합니다.

1.2 스마트 컨트랙트의 _baseURI함수를 찾아 Your_CID 부분에 메타데이터 CID를 집어 넣습니다.
1.3 아래와 같은 그림이 됩니다.
2. 컴파일 (cntrl + S) cntrl + S 키를 눌러 컴파일 합니다.
아래 그림과 같이 컴파일을 할 수 있으며, 컴파일 완료가 되면 초록색 표시가 납니다.
3. DEPLOY & RUN TRANSACTIONS 섹션으로 간 후 Environment -> Injected Provider -> Metamask 선택
잘 연결이 되었다면, 아래 그림과 같이 나옵니다.
만약 메타 마스크 부분에 연결됨이 아니라 연결되지 않음 이라면 연결되지 않음을 클릭해 연결 합니다.
4.CONTRACT -> myNFT 선택
5. myNFT의 아규먼트(argument) 넣어주기
아래 그림과 같이 화살표 버튼을 눌러서 모든 아규먼트 입력창을 펼칩니다.
- _NAME : 토큰 이름 D_One'test_NFT
- _SYMBOL : 토큰 심볼 D_One'test_NFT
- _LIMIT : NFT 최대 발행 개수 10
EX)
첫번째 발행된 NFT의 id : 1 -> 메타데이터 1.json -> 그림 1.png
두번째 발행된 NFT의 id : 2 -> 메타데이터 2.json -> 그림 2.png
...
열번째 발행된 NFT의 id : 10 -> 메타데이터 10.json -> 그림 10.png
limit = 10
열한번째 발행된 NFT의 id : 11 -> 메타데이터 11.json -> 그림 11.png -> X
- _PRICE : NFT 판매 가격 10000000000000000
1ETH = 10^18 / 0.1 eth = 10^17 / 0.01 eth = 10^16
- _INTERVAL : NFT 민트 간격 (봇이 독점 방지) 15
EX) 현재 블록 : 100
간격 : 15 블록
A -> 100번째 블록에서 NFT 민트(mint) -> 101~114 블록 민트 불가 ->115블록 부터 다시 NFT 민트(mint) 가능
B -> 105번째 블록에서 NFT 민트(mint)
(클레이튼 초당 1블록)
- _REAVELINGBLOCK : 언제 NFT가 공개되는지 15
EX) 현재 블록 : 100
공개 시작 블록 : 15블록
cvoer.js 파일에 있는 그림(NFT공개전 그림) -> 115 블록 -> 진짜 NFT 그림
- _NOTREVELEDNFTURI : 진짜 NFT를 공개 하기전의 그림의 메타데이터 즉 Cover.js URI
EX) ipfs://YOUR_CID를 에서 YOUR_CID를 Cover.js의 CID로 변경하기.
6. Deploy 또는 transact 버튼 누르기
다음시간에 배포를 해보도록 하겠습니다.