Vyper is a Pythonic programming language designed specifically for the Ethereum Virtual Machine. Prioritizing security, compiler simplicity, and auditability, Vyper intentionally omits several features from Python to reduce vulnerabilities and potential EVM exploits. Vyper enables developers to deploy smart contracts on the Ethereum platform while ensuring that the contracts are more transparent and easier to audit than those written in other languages.
The donation address for prizes is:
eth:0x18996AdDe10E9AC12e47e5D6a0F486793fad2c15
(vyper-contest.eth)0xf71d2231bc1309db6419F82afD8157ea858ADd8C
3b310d5
./vyper
folderVyper 0.3.9 defaults to shanghai which adds the PUSH0 opcode and which is not yet supported on many chains like Optimism. This can lead to dangerous creation and runtime failures.
You can see the list of known issues here.
Due to the sensitivity of the contest, judging for this contest will be private, and conducted by the Cyfrin team, VSA (Vyper Security Alliance), and the contest will likely involve additional external participants.
For this contest, we are looking exclusively for Highs & Mediums. There will be no Informational / QA prize pool.
You can check the total prize pool here: 0x18996AdDe10E9AC12e47e5D6a0F486793fad2c15
We will use the matrix in the CodeHawks documentation to decide severity, but here are some examples.
INVALID
Opcode is added at the end of metadataThis is our first contest that will include a paid "Invited Hawk". We are excited to welcome obront.eth to this contest! He will be paid an additional flat fee from outside the prize pool.
We will be working closely with the Vyper Security Alliance on submissions.
Lido | Yearn | Curve |
---|---|---|
![]() |
![]() |
![]() |
Cyfrin | UnoRe | |
![]() |
![]() |
Vyper compiler security audit competition starts 14th September with $150k worth of bounties. See the competition on CodeHawks and find more details in this blog post.
See Installing Vyper to install vyper. See Tools and Resources for an additional list of framework and tools with vyper support. See Documentation for the documentation and overall design goals of the Vyper language.
See Learn.Vyperlang.org for learning Vyper by building a Pokémon game. See try.vyperlang.org to use Vyper in a hosted jupyter environment!
Note: Vyper is beta software, use with care
See the Vyper documentation for build instructions.
To compile a contract, use:
vyper your_file_name.vy
generate bytecode
vyper -f bytecode file-name.vy > file-name.bin
generate abi
vyper -f abi file-name.vy > file-name.abi
There is also an online compiler available you can use to experiment with
the language and compile to bytecode
and/or IR
.
Note: While the vyper version of the online compiler is updated on a regular basis it might be a bit behind the latest version found in the master branch of this repository.
(Complete installation steps first.)
make dev-init
python setup.py test