시가총액: $2.1813T 0.86%
거래량(24시간): $66.5988B -12.41%
공포와 탐욕 지수:

18 - 극도의 공포

  • 시가총액: $2.1813T 0.86%
  • 거래량(24시간): $66.5988B -12.41%
  • 공포와 탐욕 지수:
  • 시가총액: $2.1813T 0.86%
암호화
주제
암호화
소식
cryptostopics
비디오
최고 암호화

언어 선택

언어 선택

통화 선택

암호화
주제
암호화
소식
cryptostopics
비디오

NFT 스마트 계약을 배포하는 방법은 무엇입니까? (안전모 및 리믹스 튜토리얼)

Set up Hardhat, write an ERC-721 NFT contract with OpenZeppelin, test locally, then deploy to Sepolia via script or Remix—ensuring proper URI handling and ownership control.

2026/02/23 12:20

개발 환경 설정

1. Hardhat의 툴체인 및 종속성 관리와의 호환성을 보장하기 위해 Node.js 및 npm을 설치합니다.

2. 빈 프로젝트 디렉터리에서 npm install --save-dev hardhat을 실행하여 Hardhat 작업 공간을 초기화합니다.

3. npx hardhat init를 실행하고 샘플 프로젝트 옵션을 선택하여 계약, 스크립트 및 테스트 폴더를 포함한 상용구 파일을 생성합니다.

4. 테스트넷 배포를 위해 Sepalia 또는 Mumbai와 같은 네트워크 엔드포인트로 hardhat.config.js를 구성합니다.

5. 감사된 ERC-721 구현을 활용하려면 npm install @openzeppelin/contracts를 통해 OpenZeppelin Contracts를 설치하세요.

NFT 계약 작성

1. ERC721 에서 상속되고 소유권 제어를 위해 소유할 수 있는 계약/MyNFT.sol을 생성합니다.

2. IPFS 또는 중앙 집중식 서버를 통해 동적 메타데이터 확인을 지원하도록 공개 _baseTokenURI 문자열을 정의합니다.

3. _safeMint 를 사용하여 호출자 인증을 확인하고 순차적인 토큰 ID를 할당하는 Minting 기능을 구현합니다.

4. 배포 후 URI 업데이트를 허용하도록 계약 소유자로 제한된 setBaseURI 함수를 추가합니다.

5. ERC-721 표준 인터페이스 감지 요구 사항을 완전히 준수하려면 supportInterface 재정의를 포함합니다.

로컬에서 컴파일 및 테스트

1. npx hardhat 컴파일을 사용하여 Artifacts/ 폴더에 ABI 및 바이트코드 아티팩트를 생성합니다.

2. 발행 논리, 소유권 이전 및 URI 일관성을 확인하는 테스트 스크립트를 test/MyNFT.test.js 에 작성합니다.

3. npx hardhat 노드 로 로컬 Ethereum 노드를 실행하여 외부 종속성 없이 블록체인 동작을 시뮬레이션합니다.

4. npx hardhat 테스트를 사용하여 테스트를 실행하고 배포를 진행하기 전에 모든 어설션이 통과하는지 확인합니다.

5. 컴파일 출력을 검사하고 EVM 버전 제약 조건과 비교하여 계약 바이트 코드가 예상 opcode와 일치하는지 확인합니다.

Hardhat 스크립트를 통해 배포

1. 계약 아티팩트를 가져오고 이름, 기호, 기본 URI와 같은 배포 매개변수를 초기화하는 scripts/deploy.js를 생성합니다.

2. 배포 스크립트 내에서 wait ethers.getContractFactory('MyNFT')를 사용하여 계약 팩토리를 인스턴스화합니다.

3. 생성자 인수를 사용하여 배포()를 호출하고 선택한 네트워크에서 트랜잭션 확인을 기다립니다.

4. 배포된 계약 주소를 기록하고 채굴 성공 후 Etherscan에 나타나는지 확인합니다.

5. 후속 상호 작용 스크립트 또는 프런트엔드 통합을 위해 JSON 파일이나 환경 변수에 주소를 저장합니다.

Remix IDE를 통해 배포

1. remix.ethereum.org 로 이동하여 MyNFT.sol 이라는 새 Solidity 파일을 생성합니다.

2. Hardhat에 사용된 것과 동일한 계약 코드를 붙여넣고 컴파일러 버전이 hardhat.config.js 에 지정된 버전과 일치하는지 확인합니다.

3. 주입된 공급자 - MetaMask를 환경으로 선택하고 Sepalia 또는 지원되는 다른 테스트넷에 연결합니다.

4. 트랜잭션 팝업에서 생성자 인수 및 가스 추정을 확인한 후 Deploy를 클릭합니다.

5. MetaMask에서 영수증을 확인하고 트랜잭션 해시를 사용하여 해당 블록 탐색기에서 계약 생성을 확인합니다.

자주 묻는 질문

Q: ETH를 보유하지 않고도 ERC-721 계약을 배포할 수 있나요? A: 아니요. 모든 배포에는 ETH로 지불된 가스가 소비됩니다. 테스트넷 ETH는 Sepalia와 같은 네트워크에 배포하기 전에 수도꼭지에서 획득해야 합니다.

Q: 내 민트 기능이 "ERC721: 0 주소로 전송"으로 되돌아가는 이유는 무엇입니까? A: 이는 _safeMint가 수신자로 0 주소를 수신할 때 발생합니다. 호출자가 0이 아닌 유효한 Ethereum 주소를 전달하는지 확인하십시오.

Q: 발행 후 토큰 URI를 변경할 수 있나요? A: 예, 변경 가능한 기본 URI에서 읽고 토큰 ID를 추가하는 tokenURI 재정의가 계약에 포함된 경우입니다. 메타데이터 자체는 IPFS에 게시된 후에는 변경할 수 없습니다.

Q: 발행 전에 _setBaseURI를 호출하는 것을 잊어버리면 어떻게 되나요? A: 토큰은 기본 빈 문자열을 사용하여 URI를 확인하므로 나중에 소유자 전용 설정자를 통해 업데이트하지 않으면 메타데이터가 손상되거나 액세스할 수 없게 됩니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

가스를 포함한 NFT 발행의 실제 비용을 어떻게 계산합니까?

가스를 포함한 NFT 발행의 실제 비용을 어떻게 계산합니까?

2026-06-08 04:04:53

가스 수수료 구성 요소 이해 1. 이더리움의 모든 NFT 채굴 작업에는 계약 실행 중에 소비되는 가스 단위의 정확한 계산이 필요합니다. 거래 비용은 고정되어 있지 않지만 스마트 계약 논리에 의해 부과되는 계산 부하에 따라 달라집니다. 2. 사용된 가스는 스토리지 쓰기,...

Unstoppable Domains에서 판매용 NFT 도메인 이름을 어떻게 나열합니까?

Unstoppable Domains에서 판매용 NFT 도메인 이름을 어떻게 나열합니까?

2026-05-31 16:40:02

Unstoppable Domains Manager에 액세스하기 1. Unstoppable Domains 공식 웹사이트로 이동하여 등록된 이메일, Google 또는 X(Twitter) 계정을 사용하여 로그인합니다. 2. 도메인 포트폴리오에 대한 보안 액세스를 보장하려면 ...

반복 액세스가 가능한 구독 기반 NFT를 어떻게 생성하나요?

반복 액세스가 가능한 구독 기반 NFT를 어떻게 생성하나요?

2026-06-03 03:40:13

구독 기반 NFT 이해 1. 구독 기반 NFT는 온체인 콘텐츠, 서비스 또는 커뮤니티에 대한 시간 제한 또는 조건부 액세스를 부여하는 디지털 토큰입니다. 2. 정적 수집 가능 NFT와 달리 이러한 토큰에는 결제 상태에 따른 자동 갱신, 취소 또는 계층화된 권한에 대한 ...

NFT 시장에서 고래 움직임을 어떻게 추적하나요?

NFT 시장에서 고래 움직임을 어떻게 추적하나요?

2026-05-30 02:20:06

NFT 고래 정체성 이해 1. NFT 고래는 100만 달러 상당의 대체 불가능한 토큰을 보유한 이더리움 지갑으로 정의됩니다. 2. 이 지갑은 전체 NFT 시장 가치의 약 34.10%를 전체적으로 통제하며, 현재까지 약 600개의 주소가 확인되었습니다. 3. 고래는 Bo...

사용자를 위한 NFT 발행을 단순화하기 위해 계정 추상화를 어떻게 사용합니까?

사용자를 위한 NFT 발행을 단순화하기 위해 계정 추상화를 어떻게 사용합니까?

2026-06-02 20:39:53

계정 추상화 및 사용자 경험 최적화 1. 계정 추상화를 통해 외부 소유 계정(EOA)에 의존하지 않고 지갑 로직을 스마트 계약으로 완전히 구현할 수 있습니다. 이러한 변화를 통해 개발자는 발행 로직을 지갑 레이어에 직접 내장할 수 있으므로 사용자가 NFT 획득 중에 가...

내 NFT 컬렉션을 맞춤형 마켓플레이스와 어떻게 통합하나요?

내 NFT 컬렉션을 맞춤형 마켓플레이스와 어떻게 통합하나요?

2026-06-07 12:40:10

스마트 계약 배포 1. 컬렉션의 메타데이터 구조와 로열티 로직에 맞는 호환 ERC-721 또는 ERC-1155 계약을 작성합니다. 2. 보안 패치가 포함되도록 Solidity 버전 0.8.20 이상을 사용하여 계약을 컴파일합니다. 3. 대상 생태계에 따라 Hardhat...

가스를 포함한 NFT 발행의 실제 비용을 어떻게 계산합니까?

가스를 포함한 NFT 발행의 실제 비용을 어떻게 계산합니까?

2026-06-08 04:04:53

가스 수수료 구성 요소 이해 1. 이더리움의 모든 NFT 채굴 작업에는 계약 실행 중에 소비되는 가스 단위의 정확한 계산이 필요합니다. 거래 비용은 고정되어 있지 않지만 스마트 계약 논리에 의해 부과되는 계산 부하에 따라 달라집니다. 2. 사용된 가스는 스토리지 쓰기,...

Unstoppable Domains에서 판매용 NFT 도메인 이름을 어떻게 나열합니까?

Unstoppable Domains에서 판매용 NFT 도메인 이름을 어떻게 나열합니까?

2026-05-31 16:40:02

Unstoppable Domains Manager에 액세스하기 1. Unstoppable Domains 공식 웹사이트로 이동하여 등록된 이메일, Google 또는 X(Twitter) 계정을 사용하여 로그인합니다. 2. 도메인 포트폴리오에 대한 보안 액세스를 보장하려면 ...

반복 액세스가 가능한 구독 기반 NFT를 어떻게 생성하나요?

반복 액세스가 가능한 구독 기반 NFT를 어떻게 생성하나요?

2026-06-03 03:40:13

구독 기반 NFT 이해 1. 구독 기반 NFT는 온체인 콘텐츠, 서비스 또는 커뮤니티에 대한 시간 제한 또는 조건부 액세스를 부여하는 디지털 토큰입니다. 2. 정적 수집 가능 NFT와 달리 이러한 토큰에는 결제 상태에 따른 자동 갱신, 취소 또는 계층화된 권한에 대한 ...

NFT 시장에서 고래 움직임을 어떻게 추적하나요?

NFT 시장에서 고래 움직임을 어떻게 추적하나요?

2026-05-30 02:20:06

NFT 고래 정체성 이해 1. NFT 고래는 100만 달러 상당의 대체 불가능한 토큰을 보유한 이더리움 지갑으로 정의됩니다. 2. 이 지갑은 전체 NFT 시장 가치의 약 34.10%를 전체적으로 통제하며, 현재까지 약 600개의 주소가 확인되었습니다. 3. 고래는 Bo...

사용자를 위한 NFT 발행을 단순화하기 위해 계정 추상화를 어떻게 사용합니까?

사용자를 위한 NFT 발행을 단순화하기 위해 계정 추상화를 어떻게 사용합니까?

2026-06-02 20:39:53

계정 추상화 및 사용자 경험 최적화 1. 계정 추상화를 통해 외부 소유 계정(EOA)에 의존하지 않고 지갑 로직을 스마트 계약으로 완전히 구현할 수 있습니다. 이러한 변화를 통해 개발자는 발행 로직을 지갑 레이어에 직접 내장할 수 있으므로 사용자가 NFT 획득 중에 가...

내 NFT 컬렉션을 맞춤형 마켓플레이스와 어떻게 통합하나요?

내 NFT 컬렉션을 맞춤형 마켓플레이스와 어떻게 통합하나요?

2026-06-07 12:40:10

스마트 계약 배포 1. 컬렉션의 메타데이터 구조와 로열티 로직에 맞는 호환 ERC-721 또는 ERC-1155 계약을 작성합니다. 2. 보안 패치가 포함되도록 Solidity 버전 0.8.20 이상을 사용하여 계약을 컴파일합니다. 3. 대상 생태계에 따라 Hardhat...

모든 기사 보기

User not found or password invalid

Your input is correct