Solidity is a statically typed programming language designed for developing smart contracts that run on the Ethereum Virtual Machine (EVM) or compatible virtual machines.[16] Solidity uses ECMAScript-like syntax which makes it familiar for existing web developers;[17] however unlike ECMAScript it has static typing and variadic return types. Solidity is different from other EVM-targeting languages