Skip to content

Overview

Contribution Guidelines

Curve Smart Contracts are fully open source, hosted on GitHub, and written in Vyper.

Writing Vyper contracts

The grand majority of the codebase is written in Vyper. We try to follow the Vyper style guide, available here.

Why Vyper?

Vyper is an EVM-compatible language that is designed to be simple and easy to understand. It closely resembles Python, which makes it easier to write and read math heavy code. Furthermore Vyper has less issues than Solidity when it comes to large contracts (e.g. no stack too deep errors, better optimizer allows to fit more code in a single contract and many other features).

The Vyper community has supported Curve from day one, and from the origin of the protocol working alongside Vyper has allowed both Curve and Vyper to grow an thrive together.

Writing unit tests

At Curve we have quite a unique setup when it comes to writing tests. You can read more about it in the testing section.

Documentation

Our documentation is hosted on Github at CurveDocs/curve-docs while our user resources are hosted on CurveDocs/curve-resources and they both use mkdocs in combination with Material for MkDocs to display the beautiful documentation you see today.

Important Repositories