Skip to content

Latest commit

 

History

History
163 lines (79 loc) · 5.14 KB

README.md

File metadata and controls

163 lines (79 loc) · 5.14 KB

Awesome Solidity (Contract) Programming Language & Tools

What's News?

For weekly solidity (contract) programming "dev stuff" updates - see NEWS »

Bonus: For weekly ethereum improvement proposal (eip) updates - see ETHEREUM »

New to Solidity?

Official

Solidity Language @ https://soliditylang.org

More

Solidity by Example @ https://solidity-by-example.org

Learn X in Y Minutes (Where X=Solidity) @ https://learnxinyminutes.com/docs/solidity

Alternative Contract-Oriented Programming Languages

Higher-Level

Fe - the syntax is inspired by Python and Rust. It is easy to learn, even for those who have never dealt with the ethereum virtual machine (evm) before; designed to be safe and equipped with the tooling needed to validate contracts; uses the same intermediate language as Solidity (YUL), making it a great choice not only for the ethereum mainnet, but also for (upcoming) layer two chains.

Vyper - a more recently developed language, similar to Serpent and again with Python-like syntax. Intended to get closer to a pure-functional Python-like language than Serpent, but not to replace Serpent.

Secure Ruby / Small, Smart, Secure, Safe, Solid & Sound (S6) Ruby (sruby / s6 ruby) - the ruby programming language for contract / transaction scripts on the blockchain world computer - yes, it's just ruby; see the red paper »

Historic

Serpent - a procedural (imperative) programming language with a syntax similar to Python. Can also be used to write functional (declarative) code, though it is not entirely free of side effects.

Bamboo - a language influenced by Erlang, with explicit state transitions and without iterative flows (loops). Intended to reduce side effects and increase auditability.

Low-Level ("Assembly-Like")

YUL - official "intermediate" assembly language for the ethereum virtual machine (evm)

Yul (previously also called JULIA or IULIA) is an intermediate language that can be compiled to bytecode for different backends.

It can be used in stand-alone mode and for "inline assembly" inside Solidity. The compiler uses Yul as an intermediate language in the IR-based code generator ("new codegen" or "IR-based codegen"). Yul is a good target for high-level optimisation stages that can benefit all target platforms equally.

Huff - a low level "intermediate" assembly language for the ethereum virtual machine (evm)

Historic

Low-level Lisp-like Language / Lisp Like Language (LLL) - a functional (declarative) programming language, with Lisp-like syntax. It was the first "intermediate" assembly language for ethereum contracts.

More / Misc

Cairo - a STARK-based turing-complete language for writing provable programs on blockchain.

Contract (Source Code) Verification Tools & Services

Sourcify

Sourcify enables transparent and human-readable smart contract interactions through automated Solidity contract verification, contract metadata, and NatSpec comments.

Etherscan Verify (& Publish Contract Source Code)

Codeslaw (Verified Contract Search)

Codeslaw is a code search engine for verified contracts on ethereum and beyond to help developers find and learn from verified and live contracts. Verified contracts come from the following sources: (1) Etherscan, (2) Tin Tin's Contract Sanctuary, (3) Sourcify

Application Binary Interface (ABI) Specs, Tests, Tools & Services

(Method) Signature Databases / Lookups

More Awesome Awesomeness

A curated list of more awesome lists.

Meta

License

The awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.