Solidityとは、ブロックチェーン上で実行されるスマート・コントラクトを記述するための手続き型プログラミング言語である。キャビン・ウッドによって作成された。JavaScriptやC++に似た構文を持つとされる。SolidityによってコンパイルしたプログラムはEthereum Virtual Machine上での実行が想定されている。オープンソースでもある。

例 Solidityのプログラムの例は以下のようになっている。pragma solidity >= 0.7.0 <0.8.0;

contract Coin { // The keyword "public" makes variables // accessible from other contracts address public minter; mapping (address => uint) public balances;

// Events allow clients to react to specific // contract changes you declare event Sent (address from, address to, uint amount);

// Constructor code is only run when the contract // is created constructor() public { minter = msg.sender;

// Sends an amount of newly created coins to an address // Can only be called by the contract creator function mint(address receiver, uint amount) public { require(msg.sender == minter); require(amount < 1e60); balances[receiver] += amount;

// Sends an amount of existing coins // from any caller to an address function send(address receiver, uint amount) public { require(amount <= balances[msg.sender], "Insufficient balance."); balances[msg.sender] -= amount; balances[receiver] += amount; emit Sent (msg.sender, receiver, amount);

実行環境 Solodityを使えるウェブベース開発環境として、代表的に以下がある。

Remix IDE EthFiddle

Solidityが使えるブロックチェーンプラットフォームは、代表的には以下がある。

Ethereum Binance Smart Chain Ethereum Classic Tendermint Counterparty Tron Avalanche Milkomedahttps://dcspark.gitbook.io/milkomeda/ (Cardano・Solana・Algorandのサイドチェーン)

脚注