Marktkapitalisierung: $2.145T 1.42%
Volumen (24h): $77.3554B -7.13%
Angst- und Gier-Index:

14 - Extreme Angst

  • Marktkapitalisierung: $2.145T 1.42%
  • Volumen (24h): $77.3554B -7.13%
  • Angst- und Gier-Index:
  • Marktkapitalisierung: $2.145T 1.42%
Kryptos
Themen
Cryptospedia
Nachricht
Cryptostopics
Videos
Top Cryptospedia

Sprache auswählen

Sprache auswählen

Währung wählen

Kryptos
Themen
Cryptospedia
Nachricht
Cryptostopics
Videos

Wie schreibe ich einen Smart Contract für NFTs? (Grundlagen der Solidität)

ERC-721 is Ethereum’s NFT standard, ensuring uniqueness via `tokenId`, enforcing ownership with `ownerOf`/`transferFrom`, and supporting metadata through `tokenURI`.

Feb 27, 2026 at 05:40 am

Den ERC-721-Standard verstehen

1. ERC-721 ist ein weit verbreiteter Ethereum-Token-Standard, der speziell für nicht fungible Token entwickelt wurde.

2. Es definiert Kernfunktionen wie „ownerOf“ , „transferFrom “ und „approve“ , um den eindeutigen Asset-Eigentum zu verwalten.

3. Jeder ERC-721-Vertrag muss die IERC721- Schnittstelle implementieren und standardisierte Ereignisse wie Transfer und Genehmigung ausgeben.

4. Die Metadatenunterstützung über die tokenURI- Funktion ermöglicht die Verknüpfung jedes NFT mit JSON-Dateien, die Namen, Beschreibung und Bild-URLs enthalten.

5. Der Standard erzwingt die Einzigartigkeit, indem er jedem Token innerhalb desselben Vertrags eine eindeutige uint256-Token-ID zuweist.

Einrichten der Entwicklungsumgebung

1. Installieren Sie Node.js und npm, um Abhängigkeiten zu verwalten und lokale Tools wie Hardhat oder Truffle auszuführen.

2. Initialisieren Sie ein neues Projekt mit npm init und installieren Sie OpenZeppelin Contracts mit npm install @openzeppelin/contracts .

3. Konfigurieren Sie ein Hardhat-Projekt mit npx hardhat und wählen Sie die Option „Beispielprojekt“ aus, um Boilerplate-Dateien zu generieren.

4. Erstellen Sie unter Contracts/ eine Solidity-Datei mit dem Namen MyNFT.sol und importieren Sie die ERC721- Implementierung von OpenZeppelin.

5. Richten Sie ein lokales Testnetzwerk mit Hardhat Network ein oder stellen Sie über Alchemy- oder Infura-API-Schlüssel eine Verbindung zu einem öffentlichen Testnetzwerk wie Sepolia her.

Schreiben der Kernvertragslogik

1. Erklären Sie den Vertrag mit dem Vertrag MyNFT ist ERC721, ERC721URIStorage, um wesentliche Funktionen und Metadatenspeicherung zu erben.

2. Definieren Sie einen Konstruktor , der Namens- und Symbolargumente an den übergeordneten ERC721-Konstruktor übergibt und eine Eigentümeradresse festlegt.

3. Implementieren Sie eine Mint- Funktion, die _safeMint verwendet, um einer angegebenen Adresse eine neue tokenId zuzuweisen, und deren URI über _setTokenURI speichert.

4. Fügen Sie eine Zugriffskontrolle hinzu, sodass nur der Vertragseigentümer mint aufrufen kann, indem Sie den Ownable -Modifikator von OpenZeppelin verwenden.

5. Setzen Sie Minting-Limits durch, indem Sie das Gesamtangebot mit einer privaten uint256 -Variablen verfolgen und bei Überschreiten der Obergrenze zurücksetzen.

Überlegungen zu Tests und Bereitstellung

1. Schreiben Sie Testskripte in JavaScript oder TypeScript unter Verwendung der integrierten Ether -Bibliothek von Hardhat, um das Prägen, Übertragen und Abfragen von Token zu simulieren.

2. Überprüfen Sie das Verhalten mit Zusicherungen, indem Sie prüfen, ob „ownerOf“ die richtige Adresse zurückgibt und „tokenURI“ mit den erwarteten Metadatenpfaden übereinstimmt.

3. Stellen Sie den Vertrag mit dem Befehl npx hardhat run scripts/deploy.js --network sepolia von Hardhat bereit, nachdem Sie die Netzwerkanmeldeinformationen konfiguriert haben.

4. Verwenden Sie das Verifizierungstool von Etherscan, um Quellcode, Compiler-Version und Konstruktorargumente zur öffentlichen Transparenz einzureichen.

5. Speichern Sie alle Token-URIs in einer dezentralen Infrastruktur wie IPFS oder Arweave, um eine dauerhafte, manipulationssichere Verfügbarkeit der Metadaten sicherzustellen.

Häufig gestellte Fragen

F: Kann ich den TokenURI nach dem Prägen ändern? A: Ja, wenn Ihr Vertrag ERC721URIStorage erbt und Sie eine Funktion mit entsprechender Zugriffskontrolle implementieren, um _setTokenURI aufzurufen.

F: Was passiert, wenn zwei Token im selben Vertrag identische Token-IDs haben? A: Das ist unmöglich – ERC-721 verlangt, dass jede Token-ID innerhalb des Vertrags global eindeutig ist; Doppelte Zuweisungen werden zurückgesetzt.

F: Muss ich meine eigene unterstütztInterface -Funktion schreiben? A: Nein – die ERC721- Implementierung von OpenZeppelin enthält ein kompatibles unterstütztInterface , das für 0x80ac58cd (ERC-721) und 0x5b5e139f (ERC-721Metadata) „true“ zurückgibt.

F: Ist es sicher, transferFrom zu verwenden, ohne den Genehmigungsstatus zu überprüfen? A: Die OpenZeppelin ERC721- Implementierung übernimmt alle Genehmigungsvalidierungen intern; Der direkte Aufruf von transferFrom ist bei korrekter Verwendung sicher.

Haftungsausschluss:info@kdj.com

Die bereitgestellten Informationen stellen keine Handelsberatung dar. kdj.com übernimmt keine Verantwortung für Investitionen, die auf der Grundlage der in diesem Artikel bereitgestellten Informationen getätigt werden. Kryptowährungen sind sehr volatil und es wird dringend empfohlen, nach gründlicher Recherche mit Vorsicht zu investieren!

Wenn Sie glauben, dass der auf dieser Website verwendete Inhalt Ihr Urheberrecht verletzt, kontaktieren Sie uns bitte umgehend (info@kdj.com) und wir werden ihn umgehend löschen.

Verwandtes Wissen

Wie berechne ich die tatsächlichen Kosten für die Prägung eines NFT einschließlich Gas?

Wie berechne ich die tatsächlichen Kosten für die Prägung eines NFT einschließlich Gas?

Jun 08,2026 at 04:04am

Die Bestandteile der Gasgebühren verstehen 1. Jeder NFT-Minting-Vorgang auf Ethereum erfordert eine genaue Berechnung der während der Vertragsausführu...

Wie liste ich meinen NFT-Domainnamen zum Verkauf bei Unstoppable Domains auf?

Wie liste ich meinen NFT-Domainnamen zum Verkauf bei Unstoppable Domains auf?

May 31,2026 at 04:40pm

Zugriff auf den Unstoppable Domains Manager 1. Navigieren Sie zur offiziellen Website von Unstoppable Domains und melden Sie sich mit Ihrer registrier...

Wie erstelle ich ein abonnementbasiertes NFT mit wiederkehrendem Zugriff?

Wie erstelle ich ein abonnementbasiertes NFT mit wiederkehrendem Zugriff?

Jun 03,2026 at 03:40am

Abonnementbasierte NFTs verstehen 1. Ein abonnementbasierter NFT ist ein digitaler Token, der zeitgebundenen oder bedingten Zugriff auf Inhalte, Diens...

Wie verfolge ich Walbewegungen auf dem NFT-Markt?

Wie verfolge ich Walbewegungen auf dem NFT-Markt?

May 30,2026 at 02:20am

NFT-Wal-Identität verstehen 1. Ein NFT-Wal ist definiert als eine Ethereum-Wallet, die nicht fungible Token im Wert von über 1 Million US-Dollar enthä...

Wie nutze ich die Kontoabstraktion, um das NFT-Minting für Benutzer zu vereinfachen?

Wie nutze ich die Kontoabstraktion, um das NFT-Minting für Benutzer zu vereinfachen?

Jun 02,2026 at 08:39pm

Kontoabstraktion und Optimierung der Benutzererfahrung 1. Durch die Kontoabstraktion kann die Wallet-Logik vollständig in Smart Contracts implementier...

Wie integriere ich meine NFT-Sammlung in einen benutzerdefinierten Marktplatz?

Wie integriere ich meine NFT-Sammlung in einen benutzerdefinierten Marktplatz?

Jun 07,2026 at 12:40pm

Intelligente Vertragsbereitstellung 1. Schreiben Sie einen konformen ERC-721- oder ERC-1155-Vertrag, der auf die Metadatenstruktur und Lizenzlogik Ihr...

Wie berechne ich die tatsächlichen Kosten für die Prägung eines NFT einschließlich Gas?

Wie berechne ich die tatsächlichen Kosten für die Prägung eines NFT einschließlich Gas?

Jun 08,2026 at 04:04am

Die Bestandteile der Gasgebühren verstehen 1. Jeder NFT-Minting-Vorgang auf Ethereum erfordert eine genaue Berechnung der während der Vertragsausführu...

Wie liste ich meinen NFT-Domainnamen zum Verkauf bei Unstoppable Domains auf?

Wie liste ich meinen NFT-Domainnamen zum Verkauf bei Unstoppable Domains auf?

May 31,2026 at 04:40pm

Zugriff auf den Unstoppable Domains Manager 1. Navigieren Sie zur offiziellen Website von Unstoppable Domains und melden Sie sich mit Ihrer registrier...

Wie erstelle ich ein abonnementbasiertes NFT mit wiederkehrendem Zugriff?

Wie erstelle ich ein abonnementbasiertes NFT mit wiederkehrendem Zugriff?

Jun 03,2026 at 03:40am

Abonnementbasierte NFTs verstehen 1. Ein abonnementbasierter NFT ist ein digitaler Token, der zeitgebundenen oder bedingten Zugriff auf Inhalte, Diens...

Wie verfolge ich Walbewegungen auf dem NFT-Markt?

Wie verfolge ich Walbewegungen auf dem NFT-Markt?

May 30,2026 at 02:20am

NFT-Wal-Identität verstehen 1. Ein NFT-Wal ist definiert als eine Ethereum-Wallet, die nicht fungible Token im Wert von über 1 Million US-Dollar enthä...

Wie nutze ich die Kontoabstraktion, um das NFT-Minting für Benutzer zu vereinfachen?

Wie nutze ich die Kontoabstraktion, um das NFT-Minting für Benutzer zu vereinfachen?

Jun 02,2026 at 08:39pm

Kontoabstraktion und Optimierung der Benutzererfahrung 1. Durch die Kontoabstraktion kann die Wallet-Logik vollständig in Smart Contracts implementier...

Wie integriere ich meine NFT-Sammlung in einen benutzerdefinierten Marktplatz?

Wie integriere ich meine NFT-Sammlung in einen benutzerdefinierten Marktplatz?

Jun 07,2026 at 12:40pm

Intelligente Vertragsbereitstellung 1. Schreiben Sie einen konformen ERC-721- oder ERC-1155-Vertrag, der auf die Metadatenstruktur und Lizenzlogik Ihr...

Alle Artikel ansehen

User not found or password invalid

Your input is correct