Pythonic language for the EVM
Vyper logo

Vyper optimises for security, language and compiler simplicity, and auditability.


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


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


Vyper code should be maximally human-readable. It should be maximally difficult to write misleading code.

Building secure and efficient smart contracts with Vyper


  • Bounds and overflow checking: On array accesses and arithmetic
  • 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.

Who’s it for?


Developers choose Vyper for simplicity, security, and Python-like syntax, making it ideal for writing transparent, secure smart contracts with fewer risks of vulnerabilities.



Security conscious sneks use Vyper for its restricted feature set. Minimising vulnerabilities, with clear, audit-friendly syntax.


Why choose Vyper?

Vyper is a friendly, safe and powerful smart contract programming language.

Vyper does not strive to be a 100% replacement for everything that can be done in Solidity; it will deliberately forbid things or make things harder if it deems fit to do so for the goal of increasing security.

If you want to build secure and efficient smart contracts without footguns, use Vyper.