이더넷에서 Solidity와 함께 자신만의 NFT 시리즈 만들기
NFT 토끼굴에 갈 때가 된 것 같습니다.우리 시작합시다!
본고는 NFT를 소개하고 Solidity를 사용하여 이더리움에서 NFT 시리즈를 만드는 것을 지도합니다.
당신의 소장품을 만드는 것은 복잡하게 들린다.나도 그렇게 생각해.솔직히 말해서, 만약 buildspace 때문이 아니었다면, 나는 영원히 NFT 시리즈를 만들 생각을 하지 못했을 것이다. 10분짜리 글에서 그것을 해석해 보려는 것은 말할 것도 없다.Buildspace는 개발자가 프로젝트를 만들어 웹3을 이해하는 플랫폼이다.나는 나의 첫 번째 프로젝트에 참가 신청을 했고, 내가 만들 수 있는 것에 대해 놀랐다.이리 와봐.본고에서 우리는buildspace의 프로젝트인'자신의 NFT 시리즈를 만들고 Web3 응용 프로그램을 발표하여 그것들을 보여줄 것이다'에 주목할 것이다.
나에게 이렇게 적나라하게단지 새로운 용어가 일을 복잡하게 만들 뿐이다.
캡처하면 안 돼요?
많은 사람들이 이 문제를 묻고 있는 것 같다.내 친구도 가족도 다 이러는 거 알아.이 절이 끝날 때, 우리는 답이 하나 있을 것이다😉
NFT
우선, NFT는 대체할 수 없는 기호화폐를 대표한다.
현재 대부분의 NFT는 이더리움 블록체인에 있다.그러나 우리도 소라나와 눈사태에 관한 프로젝트를 많이 보았다.
그런데 NFT는 도대체 뭐야?
하늘은 극한이다.이론적으로 모든 디지털 자산은 NFT가 될 수 있다.가장 인기 있는 것은 소장품과 예술품이다.
소장품은 말 그대로 NFT 양식의 자산 집합이다.그것들을 포켓 요괴 카드, 심지어 펜스 소장품으로 상상할 수 있다.NFT 소장품도 같은 논리가 있는데, 단지 디지털 세계에 있을 뿐이다.
최초의 NFT는 CryptoKitties라는 소장품 종목이었다.이것은 고양이를 기르는 것을 중심으로 하는 놀이다.모든 새끼 고양이(nft)는 유일무이하다. 너는 새끼 고양이를 키워서 새로운 것을 창조할 수 있다.
NFT 항목을 수집하는 또 다른 예는 CryptoPunks입니다.콩, 수염, 보라색 머리 등 다양한 속성을 가진 암호화 펑크 10000개가 있다. 펑크마다 특징이 달라져 펑크마다 유일무이한 암호화 펑크가 된다.
예술은 말하지 않아도 안다.예술가는 블록체인에서 작품을 창작할 기회가 있고 구매자와 직접 연락할 수 있다.이 과정은 바이어와 창립자를 직접 연결함으로써 중간에 있는 많은 중개인을 없앴다.
NFT의 기타 용례는 도메인 이름, 게임, 음악, 티켓 업무를 포함한다.(우리는 심지어 더 많은 응용을 발견하지 못했다.)
스마트 계약과 거래
NFT는 스마트 계약에서 코드를 실행함으로써 만들어졌다.이 과정도'조폐'라고 불린다
ERC-721는 표준 유형의 스마트 계약으로 이더리움에서 대체 가능한 화폐를 만들 수 있다.모든 영패의 전역 유일성은 Token Id 필드를 통해 이루어진다.따라서 NFT를 만드는 모든 스마트 계약에 대해 스마트 계약과 영패 ID는 서로 다르다.
일단 NFT를 만들면 암호화된 지갑에서 그것을 볼 수 있다.그리고 당신은 2급 시장을 이용해서 NFT를 매매할 수 있습니다. 오늘OpenSea은 가장 인기 있는 2급 시장입니다.
주의해야 할 점은 블록체인의 모든 거래에 원가가 있다는 것이다.따라서 NFT를 조폐, 구매 또는 판매하려면 gas fee의 가격을 지불해야 한다.
기체는 거래 원가를 나타내는 단위의 도량이다.따라서 천연가스 비용은 인터넷으로 거래를 처리하는 비용이다.
이더리움 블록체인에서 천연가스 비용은 이더리움 화폐로 지불하고 gwei(10-9 이더리움 화폐)로 표시한다.이더리움 네트워크에 대한 높은 수요로 휘발유 요금이 상당히 높다.특히 인기 있는 NFT 프로젝트가 줄어들면 결국 거래에 100달러만 지불할 수도 있다.거래를 진행하기 전에 반드시 검사해 주십시오gas tracker.
고가스비는 태방팀과 다른 축소 해결 방안이 해결하고 있는 문제다.높은 천연가스 비용은 왜 많은 프로젝트가 다른 블록체인에 나타나는지 설명한다.
🙌 우리 캡처 문제로 돌아가자.NFT의 주요 가치 주장은 추적 가능하고 투명한 소유권이다.소유자는 그들이 NFT를 가지고 있다는 것을 증명할 수 있다.NFT가 이전되면 거래는 블록체인에 기록된다.이것은 기본적으로 디지털 예술, 심지어 어떤 자산도 이전하는 새로운 방식이다.그래서 모나리자의 사진을 찍는 것과 이 작품을 가지고 있는 것은 별개의 일이다.마찬가지로 NFT를 촬영한 화면 캡처는 투명하고 변하지 않는 분류장에 소유자로 열거된 것과 다르다.
어떻게 자신의 NFT 시리즈를 만듭니까?
프로젝트 도구
선결 조건
(이것은 내 previous post의 설정과 같다. 다음은 이 항목들을 검사하는 데 사용되는 검사 목록이다.)
노드js 당신의 NFT 시리즈를 만듭니다
프로젝트 폴더를 만들고 디렉터리로 이동합니다.안전모를 설치하다.
mkdir eda-nft-collection
cd eda-nft-collection
npm init -y
npm install --save-dev hardhat
프로젝트 디렉토리에서
npx hardhat.
설치 마법사를 실행하면 다음을 수행할 수 있습니다.전체 설치 마법사에서enter를 누르고 기본 설정을 유지합니다
옵션입니다.
$ npx hardhat
실행 명령은 설치 입니다.
똑똑한 계약.ERC-721 토큰 기준이 있습니다.
우리는
npm install @openzeppelin/contracts
파일(파일 확장자는.sol)입니다.이것은 우리의 서류가 될 것이다
ERC-721 토큰.
다음은 OpenZepplin에서 확장된 ERC-721 영패 스마트 계약의 예입니다.나는 코드에 무슨 일이 일어났는지 설명하기 위해 몇 가지 주석을 추가했다.자신의solidity 파일에 복사하여 붙여넣습니다.
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.9; // tells the solidity version to the complier
// get the OpenZeppelin Contracts, we will use to creat our own
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "hardhat/console.sol"; // built in hardhat local environment
contract EdaNFTCollection is ERC721URIStorage {
// keep count of the tokenId
using Counters for Counters.Counter; // keep track of the token id's
Counters.Counter private _tokenIds;
uint256 public constant maxSupply = 2; // set the max supply of NFT's for your collection
constructor() ERC721 ("edaNFTCollection", "EDA") { // construct your token, needs name and symbol
console.log("An NFT has been minted to %s", msg.sender);
}
function createEdaNFT() public { //function to create nfts
uint256 newItemId = _tokenIds.current(); // get the tokenId
require(newItemId < maxSupply); // check if the total supply has been reached
_safeMint(msg.sender, newItemId); // mint the nft from the sender account
_setTokenURI(newItemId, "https://jsonkeeper.com/b/2KQZ"); // add the contents to the nft
// the content of this nft is on the url above. This means that the nft is an off-chain nft
// if the server with the content changes then the image in the url changes
_tokenIds.increment(); // increment the token, so when the next person calls the function it will be the next token in line
console.log("NFT ID %s has been minted", newItemId);
}
}
우리는 로컬 기기에서 계약을 받아서 링키 테스트 네트워크에 올려야 한다.이를 위해서는 하나의 배치만 만들 수 있습니다.'스크립트' 폴더 아래의 js 파일입니다.다음 내용을 복사해서 파일에 붙여넣습니다.
const main = async () => {
const nftContractFactory = await hre.ethers.getContractFactory('EdaNFTCollection'); // get the contract
const nftContract = await nftContractFactory.deploy(); // deploy --> convert to computer language
await nftContract.deployed(); // wait for it to deploy
console.log("Contract deployed to:", nftContract.address);
let txn = await nftContract.createEdaNFT() // mint the nft
await txn.wait() // wait for the mint
txn = await nftContract.createEdaNFT() // mint another nft (we set 2 as the max supply, can't mint more)
await txn.wait() // wait for the mint
};
const runMain = async () => {
try {
await main();
process.exit(0);
} catch (error) {
console.log(error);
process.exit(1);
}
};
runMain();
metamask 개인 키를 안전모에 추가합니다.배치하다.json.계정 세부 정보 -->메타 마스크 확장에서 개인 키를 내보내면 됩니다.
require('@nomiclabs/hardhat-waffle');
module.exports = {
solidity: '0.8.9', // make sure the version matches the one in smart contract file
networks: {
rinkeby: {
url: ' ', // rinkeby key
accounts: [' '], // metamask privte key- DO NOT SHARE THIS!! It has access to all your accounts
},
},
};
npx hardhat run scripts/deploy.js --network rinkeby
만일 모든 것이 정상이라면, 그것은 계약을 배치하고 계약 주소를 단말기에 인쇄해야 한다.OpenZepplin
implementation의 링크비 테스트 네트워크로 가세요.이더리움 스캔은 이더리움의 모든 거래와 계약을 보여 줍니다.계약 주소를 검색할 때 계약 상세 정보와 관련 거래를 볼 수 있어야 합니다.
당신의 계좌Etherscan에 들어가서 당신이 방금 주조한 NFT를 확인하세요.
🎉 됐다!현재, 우리는 solidity 프로그래밍 언어를 사용하여 이더리움 블록체인에 NFT 집합을 만들었다.
결제Rinkeby Opensea를 확인하여 더 많은 항목을 얻으십시오. NFT 시리즈가 등록되지 않은 경우 등록하십시오.당신은 당신의 nft를 위해 전방을 세울 수 있으며, 심지어는 프로젝트에서 연쇄 nft를 제작할 수 있습니다!
마지막으로 NFT 업계는 매우 새롭다.감독이 적거나 없으면 암시적인 추측이 많다.그러나 나는 NFT가 매우 흥분된다는 것을 발견했다. 왜냐하면 NFT 이전에 분산금융은 블록체인의 주요 업종이었기 때문이다.이제 우리는 블록체인 기술의 새로운 응용이 생겼다.우주가 어떻게 변할지 봅시다.
제 글을 읽어주셔서 감사합니다.만약 당신에게 무슨 문제가 있으면 그것들을 아래에 놓고 나에게 연락하세요. 나는 당신의 소식을 듣고 매우 기쁩니다.
Reference
이 문제에 관하여(이더넷에서 Solidity와 함께 자신만의 NFT 시리즈 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/edatweets_/create-your-own-nft-collection-on-ethereum-wsolidity-1ai5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)