Bibliothek / SDK
OpenZeppelin/openzeppelin-contracts avatar
OpenZeppelin/openzeppelin-contracts

OpenZeppelin/openzeppelin-contracts: OpenZeppelin Contracts is a library for secure smart contract development

OpenZeppelin Contracts ist eine Bibliothek für die sichere Entwicklung intelligenter Verträge.

27.242 Sterne12.400 ForksSolidityMIT

Auf einen Blick

Was ist das?
Ein deutschsprachiger Leitfaden zu OpenZeppelin/openzeppelin-contracts, seinen dokumentierten Einsatzgrenzen und einem konkreten ersten Prüfschritt.
Für wen ist es gedacht?
Geeignet ist OpenZeppelin/openzeppelin-contracts für Nutzer, deren Aufgabe und Plattform zu den README-Angaben passen. Nicht geeignet ist es als ungeprüfter Ersatz für fehlende Daten, Hardware- oder Sicherheitsentscheidungen.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 1 Tag.
In welcher Sprache ist es geschrieben?
Hauptsächlich Solidity, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Bibliothek statt fertiger Anwendung

OpenZeppelin Contracts beschreibt sich als Bibliothek für die Entwicklung sicherer Smart Contracts. Der Quellcode ist in Solidity gehalten und wird unter MIT veröffentlicht. Das macht das Repository zu einer Bausteinsammlung für eigene Verträge, nicht zu einem kompletten Protokoll oder zu einer Garantie für die Sicherheit eines daraus zusammengesetzten Systems. Die vielen Verwendungen und die öffentliche Entwicklung sind Kontext, ersetzen aber keine Prüfung des konkreten Vertrags.

Module und Einbindung

Die README verweist auf die offizielle Dokumentation unter `docs.openzeppelin.com/contracts`, auf das npm-Paket `@openzeppelin/contracts` und auf die GitHub-Releases. Für ein Projekt ist deshalb zuerst zu klären, welche Version und welches Modul tatsächlich importiert werden. Ein Upgrade kann Verhalten, Compileranforderungen oder Abhängigkeiten verändern; der Versionsstand gehört in die eigene Build-Konfiguration.

Sicherheitsgrenze

Community-geprüfter Code ist ein Hinweis auf den Entwicklungsprozess, kein Ergebnis für jede Nutzung. Eigentumsrechte, Rollen, Upgradepfade, Tokenökonomie und externe Oracles liegen im Vertrag des Anwenders und werden nicht automatisch durch einen Import abgesichert. Die MIT-Lizenz erlaubt Nutzung, Änderung und Weitergabe unter ihren Bedingungen; Lizenzhinweise müssen beim Verteilen der Bibliothek berücksichtigt werden.

Prüfen mit Projektartefakten

Vor dem Deployment sollten die konkreten Imports aus `@openzeppelin/contracts`, der Solidity-Compiler und die passende Release-Seite zusammen betrachtet werden. Danach gehören Tests für Rollen, Grenzwerte und Zustandswechsel in das eigene Repository. Die README liefert mit Dokumentation, npm-Paket, Releases und Forum die passenden Primäranker, aber keine Zusage für eine individuelle Auditierung.

Standards, Berechtigungen und wiederverwendbare Komponenten

OpenZeppelin Contracts ist eine Solidity-Bibliothek für die Entwicklung sicherer Smart Contracts. Laut README baut sie auf einer Grundlage von gemeinschaftlich geprüftem Code auf. Sie enthält Implementierungen von Standards wie ERC20 und ERC721, ein flexibles rollenbasiertes Berechtigungsschema und wiederverwendbare Solidity-Komponenten zum Erstellen eigener Verträge und komplexer dezentraler Systeme. Das README verweist auch auf Contracts Wizard, einen interaktiven Smart-Contract-Generator, für Benutzer, die nicht sicher sind, wie sie beginnen sollen.

Release-Tags für geprüfte und ungeprüfte Versionen

Die Bibliothek verwendet npm-Tags, um geprüfte von ungeprüften Versionen zu unterscheiden. Das latest-Tag ist die standardmäßig installierte geprüfte Version, installiert mit npm install @openzeppelin/contracts. Das dev-Tag ist eine finalisierte und funktionsvollständige, aber noch nicht geprüfte Version; sie ist vollständig getestet, kann in der Produktion verwendet werden und ist durch das Bug-Bounty-Programm abgedeckt. Das next-Tag markiert Release-Kandidaten, die nicht endgültig sind. Das README warnt außerdem, dass OpenZeppelin Contracts semantische Versionierung für API- und Speicherlayout-Kompatibilität verwendet und dass bei Upgrade-Verträgen verschiedene Hauptversionen als inkompatibel angenommen werden sollten, zum Beispiel ist ein Upgrade von 4.9.3 auf 5.0.0 unsicher.

Installation mit npm und Foundry

Für Hardhat-Projekte zeigt das README npm install @openzeppelin/contracts für die neueste geprüfte Version und npm install @openzeppelin/contracts@dev für die neueste ungeprüfte Version. Für Foundry lautet der Befehl forge install OpenZeppelin/openzeppelin-contracts, gefolgt vom Hinzufügen von @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ zu remappings.txt. Das README warnt, dass die Verwendung des master-Zweigs als git-Abhängigkeit ein häufiger Fehler ist, da es sich um einen Entwicklungszweig handelt, und dass nachfolgende forge update-Befehle nach der ersten Installation master verwenden.

Importieren von Verträgen in Solidity

Nach der Installation werden Verträge normal importiert. Das README gibt ein Beispiel mit pragma solidity ^0.8.20 und importiert ERC721 aus @openzeppelin/contracts/token/ERC721/ERC721.sol und definiert dann einen Konstruktor, der den Token-Namen und das Symbol an den Basisvertrag übergibt. Das README rät Benutzern, immer den installierten Code unverändert zu verwenden, nicht aus Online-Quellen zu kopieren oder selbst zu ändern, und weist darauf hin, dass nur die verwendeten Verträge und Funktionen bereitgestellt werden, sodass die Bibliothek die Gaskosten nicht unnötig erhöht. Für openzeppelin-openzeppelin-contracts-deep-analysis bleibt dieser Punkt an der README, den konkreten Beispielen und der erzeugten Ausgabe prüfbar. Nicht dokumentierte Eigenschaften werden nicht als Zusage behandelt. Für openzeppelin-openzeppelin-contracts-deep-analysis bleibt dieser Punkt an der README, den konkreten Beispielen und der erzeugten Ausgabe prüfbar. Nicht dokumentierte Eigenschaften werden nicht als Zusage behandelt. Für openzeppelin-openzeppelin-contracts-deep-analysis bleibt dieser Punkt an der README, den konkreten Beispielen und der erzeugten Ausgabe prüfbar. Nicht dokumentierte Eigenschaften werden nicht als Zusage behandelt. Für openzeppelin-openzeppelin-contracts-deep-analysis bleibt dieser Punkt an der README, den konkreten Beispielen und der erzeugten Ausgabe prüfbar. Nicht dokumentierte Eigenschaften werden nicht als Zusage behandelt. Für openzeppelin-openzeppelin-contracts-deep-analysis bleibt dieser Punkt an der README, den konkreten Beispielen und der erzeugten Ausgabe prüfbar. Nicht dokumentierte Eigenschaften werden nicht als Zusage behandelt. Für openzeppelin-openzeppelin-contracts-deep-analysis bleibt dieser Punkt an der README, den konkreten Beispielen und der erzeugten Ausgabe prüfbar. Nicht dokumentierte Eigenschaften werden nicht als Zusage behandelt.

Redaktionelles Fazit

Geeignet ist OpenZeppelin/openzeppelin-contracts für Nutzer, deren Aufgabe und Plattform zu den README-Angaben passen. Nicht geeignet ist es als ungeprüfter Ersatz für fehlende Daten, Hardware- oder Sicherheitsentscheidungen. Vor der Auswahl sollte der im Text genannte Befehl beziehungsweise Dateipfad mit einem kleinen Beispiel ausgeführt und die konkrete Ausgabe kontrolliert werden.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen