Solidity

Last Updated Sep 24, 2026

In One Sentence

Solidity is a statically typed programming language used to write smart contracts for the Ethereum Virtual Machine.

Solidity is a high-level, statically typed programming language for smart contracts that run on the Ethereum Virtual Machine (EVM). It lets developers define contract state, functions, events, and rules for interacting with digital assets.

From source code to a contract

A compiler translates Solidity source code into EVM bytecode. An application binary interface (ABI) describes how other software can call the contract's functions and interpret its data. Deploying a contract or changing its on-chain state requires transactions and gas; reading existing state through a local node call does not necessarily require a paid transaction.

Solidity supports uses such as token contracts, escrow, and governance. Its syntax may look familiar to JavaScript developers, but execution follows blockchain rules rather than browser behavior. Compiler settings and the target network's supported EVM features affect compatibility.

Code visibility and security

Publishing verified source code helps readers compare code with a deployed contract, but does not establish that the contract is safe. Access controls, external calls, oracle assumptions, and administrative powers still require review.

A variable marked private is not a secret on a public blockchain. Reentrancy can occur when an external call re-enters a contract before its state is safely updated. Testing and independent security review reduce risk without eliminating it.