Mit Solidity können Entwickler objektorientierte Anwendungen für Distributed Ledger und die Ethereum-Blockchain entwickeln. Die Syntax der Sprache erinnert an JavaScript und Python.
Die Web-basierte Remix IDE auf Ethereum.org bietet zahlreiche Funktionen.
(Bild: Ethereum.org)
Solidity ist die Standard-Sprache für die Entwicklung von Smart Contracts in der Ethereum-Blockchain. Die Programmiersprache steht kostenlos zur Verfügung und kann auch mit Visual Studio und Visual Studio Code eingesetzt werden. Ein erster Einstieg in die Entwicklung ist in der Dokumentation von Solidity zu finden.
Um Solidity mit Visual Studio und Visual Studio Code zu nutzen, müssen in den Umgebungen Erweiterungen installiert werden. Für die Einbindung gibt es eine VS-Erweiterung speziell für Solidity und die Erweiterung ETHcode für das Kompilieren des Codes in der Ethereum-Blockchains und den diversen Testnetzwerken von Ethereum. Parallel dazu stellt Microsoft das Blockchain Development Kit for Ethereum zur Verfügung.
Atom für die Entwicklung nutzen
Der kostenlose Quellcode-Editor Atom steht ebenfalls für die Entwicklung von Solidity zur Verfügung. Auch hier gibt es Erweiterungen, die den Editor fit für Solidity machen. Die Erweiterungen „Atom Solidity Linter“ und Etheratom integrieren die Solidity-Unterstützung in ATOM und ermöglichen auch die Kompilierung von Smart Contracts für Ethereum.
Einstieg in Solidity mit Remix
Solidity-Code lässt sich in der Web-basierten Remix IDE verfassen.
(Bild: Ethereum.org)
Den schnellsten Einstieg in Solidity erhalten Entwickler mit der webbasierten und kostenlosen Web-IDE Remix. Die IDE steht ohne Installation sofort nach dem Aufrufen der Webseite zur Verfügung. Natürlich kann diese nicht nur für den Einstieg genutzt werden, sondern auch für die produktive Entwicklung von Smart Contracts.
Durch einen Klick auf „Solidity“ bei „Featured Plugins“ kann mit der Entwicklung des Solidity-Codes begonnen werden. Das erste Symbol links oben öffnet den File-Explorer in Remix. Hier sind auch bereits einige Dateien mit der Endung *.sol zu finden. Hierbei handelt es sich die Dateiendung für Solidity-Dateien.
Durch einen Klick auf eine Sol-Datei zeigt Remix auf der rechten Seite den Quellcode an. Es ist in Remix auch möglich, mehrere Dateien gleichzeitig zu öffnen. Das Umschalten zwischen den Dateien erfolgt über die Registerkarten im oberen Rand von Remix.
Auch das Kompilieren lässt sich hier direkt realisieren.
(Bild: Ethereum.org)
Der Solidity-Quellcode kann in Remix auch kompiliert und getestet werden. Der Compiler für Solidity steht auf der linken Seite über das zweite Symbol von oben mit der Bezeichnung „Solidity Compiler“ zur Verfügung. Vor der Kompilierung muss noch ausgewählt werden, in welcher Version der Code kompiliert werden soll. Beim Kompilieren von Smart Contracts für Ethereum kann hier noch die „Ethereum Virtual Machine“ (EVM) ausgewählt werden, für welche der Smart Contract kompiliert werden soll.
Nach der Kompilierung kann mit „Deploy & Run Transactions“ das Programm oder der Smart Contract getestet werden. Hier besteht auch die Möglichkeit eines Tests in einer Javascript-VM, außerhalb der Blockchain. Beim Menüpunkt „Environment“ kann auch die Bereitstellung in einer Blockchain erfolgen, zum Beispiel in einem Testnetzwerk von Ethereum.
Ein einfacher Smart Contract kann folgendermaßen aussehen:
Mit dem Icon „Solidity Static Analysis“ ist es möglich, den Quellcode zu überprüfen und auch zu verbessern. Um ein eigenes Solidity-Programm zu entwickeln, wird am Beispiel von Remix eine neue Sol-Datei erstellt. Diese Datei stellt die Grundlage für den Code dar, so wie auch bei anderen Programmiersprachen.
Ein Smart Contract beginnt mit der pragma-Zeile. In dieser ist zum Beispiel definiert, für welche Solidity-Versionen der Smart Contract laufen soll:
pragma solidity >=0.7.0 <0.9.0;
Anschließend beginnt die Definition des Smart Contracts und dessen Namen. Der Quellcode des Contracts steht zwischen geschweiften Klammern:
contract MeinSmartContract { }
In Solidity lassen sich danach die Zustandsvariablen speichern. Soll zum Beispiel eine Variable „preis“ als Integertyp „uint“ definiert werden, sieht der Beispielcode bis an diese Stelle so aus:
Auf der Seite „Solidity by Example“ sind zahlreiche Beispiele für einfache Smart Contracts zu finden. Ein einfacher Smart Contract mit simplen Rechenaufgaben sieht folgendermaßen aus:
pragma solidity >=0.7.0 <0.9.0;contract Counter { uint public count; // Aktuellen Wert von count auslesen function get() public view returns (uint) { return count; } // Aktuellen Wert von count um 1 erhöhen function inc() public { count += 1; } // Aktuellen Wert von count um 1 reduzieren function dec() public { count -= 1; } }
Funktionen in Solidity
Mit Functions kann ein Smart Contract aktiv Code ausführen. Generell entsprechen die Funktionen in Solidity den Funktionen aus anderen Programmiersprachen. Beim Definieren einer Funktion kann festgelegt werden, on diese nur für dem Smart Contract selbst zur Verfügung stehen soll (internal) oder auch für andere Verträge (external). Auch die öffentliche Sichtbarkeit in der Blockchain kann definiert werden (public).
Um eine Funktion zu definieren, die einen Parameter akzeptiert und auch weitergibt, kann folgender Befehl verwendet werden:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
pragma solidity >=0.7.0 <0.9.0;contract MeinSmartContract { uint preis; function buy(uint preis) public returns (uint) }
Funktionsmodifizierer können wiederum das Verhalten von Funktionen in Solidity anpassen. Beispiel dafür kann das Überprüfen sein, ob der jeweilige Benutzer im Distributed Ledger auch als Verkäufer definiert ist:
pragma solidity >0.7.0 <0.8.0;contract Marketplace { address public seller; modifier onlySeller() { require( msg.sender == seller, "Only seller can put an item up for sale." ); _; } function listItem() public view onlySeller { // ... } }
Dieses und weitere Beispiele sind im Microsoft-Lernmodul für Solidity zu finden. Dieses stellt eine gute Grundlage für den Einstieg in Solidity dar.