Skip to main content

Smart Contract Languages

Smart contracts are typically written in high-level languages that targets the Ethereum Virtual Machine (EVM).

If you are familiar with the Java Virtual Machine (JVM), you might know that there are various languages that you can use to produce code that runs on it (ex: Java, Kotlin, Clojure, etc). Similarly, smart contract can be written in any EVM-compatible languages. Most prominently being Solidity and Vyper.

Solidity vs. Vyper#

While previously Solidity was the dominant choice with better documentation, tooling, and developer support, Vyper have also recently gained a lot of momentum via large DeFi projects such as Curve and Yearn using it as the smart contract language of their choice.

That said, each language have its own sets of tradeoff and benefits that should go into your consideration when deciding on which one to work with. Check out the resource below with the list of considerations!

Smart contract languages | ethereum.org

Solidity References#

Documentation

Solidity - Solidity 0.8.3 documentation

Example Codebase in Solidity

Uniswap/uniswap-v3-core

Vyper References#

Documentation

Vyper - Vyper documentation

Example Codebase in Vyper

curvefi/curve-contract