Marktkapitalisierung: $2.8167T -5.61%
Volumen (24h): $179.5196B 61.64%
Angst- und Gier-Index:

38 - Furcht

  • Marktkapitalisierung: $2.8167T -5.61%
  • Volumen (24h): $179.5196B 61.64%
  • Angst- und Gier-Index:
  • Marktkapitalisierung: $2.8167T -5.61%
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 erstelle ich einen ERC-1155 Multi-Token Standard Smart Contract?

ERC-1155 is an Ethereum token standard enabling efficient, batched management of both fungible and non-fungible tokens in a single smart contract.

Jan 11, 2026 at 12:39 pm

Grundlegendes zu ERC-1155-Grundlagen

1. ERC-1155 ist ein Token-Standard auf der Ethereum-Blockchain, der die Erstellung mehrerer Token-Typen – sowohl fungibler als auch nicht fungibler – innerhalb eines einzigen Smart Contracts ermöglicht.

2. Im Gegensatz zu ERC-20 oder ERC-721, die separate Verträge für jeden Token-Typ erfordern, reduziert ERC-1155 die Bereitstellungskosten und vereinfacht die Verwaltung durch Batch-Vorgänge.

3. Jeder Token in einem ERC-1155-Vertrag wird durch eine eindeutige uint256-ID identifiziert und die Guthaben werden pro Adresse und ID verfolgt.

4. Der Standard definiert Kernfunktionen wie „balanceOf“ , „balanceOfBatch“ , „safeTransferFrom “ und „setApprovalForAll“ .

5. Die Metadatenunterstützung folgt dem ERC-1155-Metadaten-URI-Schema, bei dem ein Basis-URI festgelegt wird und einzelne Token-URIs durch {id}-Ersetzung abgeleitet werden.

Entwicklungsumgebung einrichten

1. Installieren Sie Node.js und npm, um Abhängigkeiten zu verwalten und Solidity-Code mit Tools wie Hardhat oder Foundry zu kompilieren.

2. Initialisieren Sie ein neues Hardhat-Projekt mit npx hardhat und konfigurieren Sie Netzwerke, Konten und Compiler-Einstellungen in hardhat.config.js .

3. Add OpenZeppelin's ERC-1155 implementation via npm install @openzeppelin/contracts to inherit secure, audited base logic.

4. Erstellen Sie eine neue Solidity-Datei, z. B. MyERC1155.sol , und importieren Sie ERC1155 und Ownable aus OpenZeppelin.

5. Definieren Sie einen Konstruktor, der den Basis-URI festlegt und den Besitz an den Bereitsteller überträgt, um sicherzustellen, dass nur autorisierte Parteien Metadatenpfade später aktualisieren können.

Implementierung der Core-Token-Logik

1. Überschreiben Sie den _beforeTokenTransfer- Hook, um benutzerdefinierte Regeln durchzusetzen – zum Beispiel, um das Minting nach einem bestimmten Block einzuschränken oder Übertragungen während Wartungsfenstern zu verhindern.

2. Führen Sie eine Mint- Funktion ein, auf die nur der Eigentümer zugreifen kann, akzeptieren Sie die Parameter to , id , amount und data und rufen Sie dann _mint auf.

3. Fügen Sie eine mintBatch- Funktion hinzu, die das gleichzeitige Prägen mehrerer Token-IDs und -Beträge unterstützt und so die Gaseffizienz für das Ökosystem-Onboarding verbessert.

4. Implementieren Sie eine rollenbasierte Zugriffskontrolle für sensible Aktionen mithilfe von OpenZeppelins AccessControl , um die Rollen Minter, Pauser und Metadaten-Updater zu trennen.

5. Betten Sie Ereignisemissionen wie TransferSingle und TransferBatch ein, um sicherzustellen, dass Off-Chain-Indexer und dApps Zustandsänderungen korrekt verfolgen.

Bereitstellung und Überprüfung im Mainnet

1. Schreiben Sie Bereitstellungsskripts mithilfe der Bereitstellungsaufgabe von Hardhat und geben Sie dabei Netzwerkendpunkte, private Schlüssel und Konstruktorargumente einschließlich der Basis-URI-Zeichenfolge an.

2. Verwenden Sie den API-Schlüssel von Etherscan und das Verifizierungs -Plugin von Hardhat, um Quellcode und Konstruktorargumente automatisch zur Überprüfung einzureichen.

3. Bestätigen Sie die erfolgreiche Bereitstellung, indem Sie die Vertragsadresse auf Etherscan überprüfen und bestätigen, dass der uri(1) -Aufruf einen ordnungsgemäß formatierten JSON-Endpunkt mit Namen, Beschreibung und Bildfeldern zurückgibt.

4. Interagieren Sie mit dem bereitgestellten Vertrag über die Registerkarte „Vertrag schreiben“ von Etherscan oder programmgesteuert über ethers.js, um die Präge-, Genehmigungs- und Übertragungsfunktionen zu testen.

5. Speichern Sie den Basis-URI auf IPFS oder einem dezentralen Speicherdienst und heften Sie ihn mithilfe von Diensten wie Pinata oder Web3.Storage an, um die langfristige Verfügbarkeit von Metadatenbeständen zu gewährleisten.

Häufig gestellte Fragen

F: Kann ein ERC-1155-Vertrag sowohl NFTs als auch FTs gleichzeitig enthalten? A: Ja. Eine einzelne Token-ID kann je nach Nutzungskontext und Anwendungslogik entweder einen fungiblen Token (mit Saldo > 1) oder einen nicht fungiblen Token (mit Saldo = 1) darstellen.

F: Ist es möglich, Token in einem ERC-1155-Vertrag zu brennen? A: Ja. Entwickler können eine Brennfunktion implementieren, die _burn oder _burnBatch von der ERC1155-Basis von OpenZeppelin aufruft, wodurch Guthaben reduziert und entsprechende Ereignisse ausgegeben werden.

F: Wie geht ERC-1155 im Vergleich zu ERC-721 mit Genehmigungen um? A: ERC-1155 nutzt die Genehmigung auf Betreiberebene über setApprovalForAll und gewährt einem Dritten eine pauschale Genehmigung für alle Token-IDs, die dem Aufrufer gehören, statt einer Genehmigung pro Token.

F: Unterstützen Marktplätze wie OpenSea ERC-1155-Token? A: Ja. Wichtige Plattformen wie OpenSea, Blur und Magic Eden unterstützen ERC-1155, obwohl einige möglicherweise Einschränkungen für Stapelübertragungen auferlegen oder eine spezielle URI-Formatierung für die ordnungsgemäße Darstellung von Assets erfordern.

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 führe ich eine kettenübergreifende Nachricht mit einem LayerZero-Vertrag aus?

Wie führe ich eine kettenübergreifende Nachricht mit einem LayerZero-Vertrag aus?

Jan 18,2026 at 01:19pm

Grundlegendes zur LayerZero-Architektur 1. LayerZero fungiert als leichtes, erlaubnisloses Interoperabilitätsprotokoll, das die Kommunikation zwischen...

Wie implementiert man EIP-712 für die sichere Signaturüberprüfung?

Wie implementiert man EIP-712 für die sichere Signaturüberprüfung?

Jan 20,2026 at 10:20pm

EIP-712-Übersicht und Hauptzweck 1. EIP-712 definiert einen Standard für typisiertes strukturiertes Daten-Hashing und Signieren in Ethereum-Anwendunge...

Wie kann ich mich für Airdrops qualifizieren, indem ich mit neuen Verträgen interagiere?

Wie kann ich mich für Airdrops qualifizieren, indem ich mit neuen Verträgen interagiere?

Jan 24,2026 at 09:00pm

Anforderungen an die Vertragsinteraktion verstehen 1. Die meisten Airdrop-Kampagnen erfordern eine direkte Interaktion mit Smart Contracts, die auf un...

Wie überwacht man einen Smart Contract auf Sicherheitswarnungen?

Wie überwacht man einen Smart Contract auf Sicherheitswarnungen?

Jan 21,2026 at 07:59am

On-Chain-Überwachungstools 1. Blockchain-Explorer wie Etherscan und Blockscout ermöglichen die Echtzeitprüfung von Vertragsbytecode, Transaktionsproto...

Wie kann ich einen Vertrag für automatisierte Zahlungen abschließen und finanzieren?

Wie kann ich einen Vertrag für automatisierte Zahlungen abschließen und finanzieren?

Jan 26,2026 at 08:59am

Grundlegendes zur Bereitstellung intelligenter Verträge 1. Entwickler müssen eine kompatible Blockchain-Plattform wie Ethereum, Polygon oder Arbitrum ...

Wie verwende ich OpenZeppelin-Verträge, um sichere dApps zu erstellen?

Wie verwende ich OpenZeppelin-Verträge, um sichere dApps zu erstellen?

Jan 18,2026 at 11:19am

Grundlegendes zu den OpenZeppelin-Vertragsgrundlagen 1. OpenZeppelin Contracts ist eine Bibliothek wiederverwendbarer, von der Community geprüfter Sma...

Wie führe ich eine kettenübergreifende Nachricht mit einem LayerZero-Vertrag aus?

Wie führe ich eine kettenübergreifende Nachricht mit einem LayerZero-Vertrag aus?

Jan 18,2026 at 01:19pm

Grundlegendes zur LayerZero-Architektur 1. LayerZero fungiert als leichtes, erlaubnisloses Interoperabilitätsprotokoll, das die Kommunikation zwischen...

Wie implementiert man EIP-712 für die sichere Signaturüberprüfung?

Wie implementiert man EIP-712 für die sichere Signaturüberprüfung?

Jan 20,2026 at 10:20pm

EIP-712-Übersicht und Hauptzweck 1. EIP-712 definiert einen Standard für typisiertes strukturiertes Daten-Hashing und Signieren in Ethereum-Anwendunge...

Wie kann ich mich für Airdrops qualifizieren, indem ich mit neuen Verträgen interagiere?

Wie kann ich mich für Airdrops qualifizieren, indem ich mit neuen Verträgen interagiere?

Jan 24,2026 at 09:00pm

Anforderungen an die Vertragsinteraktion verstehen 1. Die meisten Airdrop-Kampagnen erfordern eine direkte Interaktion mit Smart Contracts, die auf un...

Wie überwacht man einen Smart Contract auf Sicherheitswarnungen?

Wie überwacht man einen Smart Contract auf Sicherheitswarnungen?

Jan 21,2026 at 07:59am

On-Chain-Überwachungstools 1. Blockchain-Explorer wie Etherscan und Blockscout ermöglichen die Echtzeitprüfung von Vertragsbytecode, Transaktionsproto...

Wie kann ich einen Vertrag für automatisierte Zahlungen abschließen und finanzieren?

Wie kann ich einen Vertrag für automatisierte Zahlungen abschließen und finanzieren?

Jan 26,2026 at 08:59am

Grundlegendes zur Bereitstellung intelligenter Verträge 1. Entwickler müssen eine kompatible Blockchain-Plattform wie Ethereum, Polygon oder Arbitrum ...

Wie verwende ich OpenZeppelin-Verträge, um sichere dApps zu erstellen?

Wie verwende ich OpenZeppelin-Verträge, um sichere dApps zu erstellen?

Jan 18,2026 at 11:19am

Grundlegendes zu den OpenZeppelin-Vertragsgrundlagen 1. OpenZeppelin Contracts ist eine Bibliothek wiederverwendbarer, von der Community geprüfter Sma...

Alle Artikel ansehen

User not found or password invalid

Your input is correct