Vyper is an EVM smart contracts programming language that is based on Python and used as an alternative to Solidity.

Vyper is a programming language used for deploying Ethereum Virtual Machine (EVM) smart contracts. As an alternative to the EVM programming language, Solidity, Vyper inherits many similarities to Python in syntax and structure. A few of its key principles and goals are increased security, language and compiler simplicity, and audibility. While it does have these principles, it also lacks certain features such as inheritance and modifiers.

As the second most used smart contract language for EVM, it does not have the level of developer community and contributors when compared to solidity. It does, however, make it easier for Python developers to start building and deploying EVM smart contracts. Vyper was not intended to be a replacement for solidity but to act as another tool for developers to use. These languages have key differences for smart contract deployment, which can be used for different uses and applications, but it mainly comes down to the developer's preference.

Principles and Goals

Security: It should be possible and natural to build secure smart contracts in Vyper.

Language and compiler simplicity: The language and the compiler implementation should strive to be simple.

Auditability: Vyper code should be maximally human-readable. Furthermore, it should be maximally difficult to write misleading code. Simplicity for the reader is more important than simplicity for the writer, and simplicity for readers with low prior experience with Vyper (and low prior experience with programming in general) is particularly important.


As a Python-based alternative to Solidity, it does have key differences and features. These are just some of the differences for Vyper. More details and information can be found in the resources below.

Support for signed integers and decimal fixed point numbers

Decidability: It is possible to compute a precise upper bound for the gas consumption of any Vyper function call.

Strong typing

Small and understandable compiler code

Limited support for pure functions: Anything marked constant is not allowed to change the state.

Vyper Resources

https://docs.vyperlang.org/en/stable/ https://reference.auditless.com/cheatsheet/

Last updated