Add VyperBurner for CRV tokens


Change CRV token burner from 0xdc237b4B882Fa1d1fd1dD5B59A08F8dB3416DbE3 to 0x06452f9c013fc37169B57Eab8F50A7A48c9198A3.

This burner, instead of selling CRV tokens earned from swaps to 3CRV, sends tokens (CRV token only). to the Vyper multisig: vyperlang.eth ( which can be used to fund security related endeavors.


Currently, the DAO earns CRV tokens from swaps, which it then sells to 3CRV and this is paid out to veCRV holders. The proposal removes this logic, and instead sends tokens to the Vyperlang team to secure the underlying infrastructure (Vyper compiler).


Vyper is the primary language used in Curve contracts. It is maintained by a team of 1 full-time contributor and a few interns here and there. It is such a deep part of the Curve ecosystem and yet sees very little DAO-initiated funding endeavors. As a result of this, paying for audits, hiring talent and developing the language becomes a challenge and places too much burden on the shoulders of a lone fulltime contributor.

Previously, Vyper was funded by the core team. There also exists a dedicated Vyper gauge that, if veCRV votes on the gauge, mints CRV inflation for the vyperlang.eth team. This has unfortunately not been very fruitful for Vyper, as veCRV holders barely vote for such an important gauge.

Some ideas can be: to fund vyper with a dedicated stream of CRV tokens from the Grants Council. I believe this is necessary, but it would be even better if there was also a deeper partnership between CurveDAO and Vyper.

The CRV tokens, in my opinion, are better spent by the Vyperlang team to fund security related endeavors and expanding the team. There is so little push for funding public goods, and this could be one of the streams (hopefully of many) that allows Curve to truly decentralise its infrastructure (by supplying a steady stream of funding of the core components it relies on).

The consequence of this is that the DAO will not sell CRV tokens into 3CRV and pass it on to veCRV holders. I believe this is an easy compromise to make: better to help scale and secure infra rather than pay out to stakeholders.


Burner contract:

# @version 0.3.9
@title VyperCRVBurner
@author FiddyResearch
@notice Sends CRV tokens earned by CurveDAO from swaps etc.
        to vyperlang.eth multisig.

from vyper.interfaces import ERC20

CRV: constant(address) = 0xD533a949740bb3306d119CC777fa900bA034cd52
MULTISIG: constant(address) = 0x70CCBE10F980d80b7eBaab7D2E3A73e87D67B775
PROXY: constant(address) = 0xeCb456EA5365865EbAb8a2661B0c503410e9B347

def burn() -> bool:

    amount: uint256 = ERC20(CRV).balanceOf(self)
    if amount != 0:
        ERC20(CRV).transfer(MULTISIG, amount)

    return True

def recover_erc20(_coin: ERC20):
    amount: uint256 = _coin.balanceOf(self)
    _coin.transfer(PROXY, amount)

Deployed at:

To test:

Fund Vyper with CRV earned from admin fees collected by the DAO.

Do not fund Vyper: CRV should be instead sold for 3CRV and distributed to veCRV holders.

On-chain vote coming up.


Would it make sense to do both? Have a burner that directs funds to both vyper org & veCRV holders? This way the veCRV token holders still feel like they are getting something?

very much possible to do! we can also replace it later if we wish.

1 Like