Pythonic Smart Contract Language for the EVM
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Charles Cooper ecf3050782
chore: add tests for selector table stability (#3608)
2 weeks ago
.github chore(ci): fix binary names in release asset upload (#3597) 4 weeks ago
docs fix: version parsing for release candidates (#3593) 4 weeks ago
examples refactor: remove mint arguments ERC1155 (#3263) 8 months ago
hooks fix version string generated in docker builds (#2566) 2 years ago
logo [ImgBot] optimizes images 5 years ago
tests chore: add tests for selector table stability (#3608) 2 weeks ago
vyper fix: dense selector table when there are empty buckets (#3606) 2 weeks ago
.gitignore refactor: remove mint arguments ERC1155 (#3263) 8 months ago
.pre-commit-config.yaml chore: update flake8 from gitlab to github (#3566) 1 month ago
.readthedocs.yaml chore: update linter, drop support for python 3.8 and 3.9 (#3325) 6 months ago
Dockerfile chore: update published build to python 3.11 (#3385) 5 months ago
FUNDING.yml Update FUNDING.yml 4 years ago
LICENSE license: add copilot clause (#2848) 1 year ago
Makefile feat: build for aarch64 (#2687) 5 months ago docs: add README banner about Vyper audit competition (#3599) 3 weeks ago doc: update broken links in (#3095) 1 year ago
make.cmd chore: call init during freeze 3 years ago
pyproject.toml chore: update linter, drop support for python 3.8 and 3.9 (#3325) 6 months ago feat: add uint8 type (#2477) 2 years ago
requirements-docs.txt docs: new types, conversions, builtins (#2792) 1 year ago
setup.cfg feat: improve batch copy performance (#3483) 3 months ago fix: dependency specification for `packaging` (#3594) 4 weeks ago
tox.ini feat: O(1) selector tables (#3496) 2 months ago

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.

Build Status Documentation Status Discord

PyPI Docker

Coverage Status Language grade: Python

Getting Started

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 for learning Vyper by building a Pokémon game. See to use Vyper in a hosted jupyter environment!

Note: Vyper is beta software, use with care


See the Vyper documentation for build instructions.

Compiling a contract

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.

Testing (using pytest)

(Complete installation steps first.)

make dev-init
python test


  • See Issues tab, and feel free to submit your own issues
  • Add PRs if you discover a solution to an existing issue
  • For further discussions and questions, post in Discussions or talk to us on Discord
  • For more information, see Contributing