/yearn-vesting-escrow

token vesting escrow with cliff and clawback

Primary LanguagePythonMIT LicenseMIT

Yearn Vesting Escrow

A modified version of Curve Vesting Escrow contracts with added functionality:

  • An escrow can have a start_date in the past.
  • The first unlock can be delayed using cliff_length.
  • An ability to claim partial amounts or use a different beneficiary account.
  • An ability to terminate an escrow and clawback all the unvested tokens using rug_pull. The recipient is still entitled to the vested portion.
  • Factory admin controls removed, anyone can deploy escrows, funds are pulled instead of pushed.
  • Factory emits an event which allows finding all the escrows deployed from it.

Contracts

Usage

$ brownie console --network mainnet
funder = accounts.load(name)
factory = VestingEscrowFactory.at('0x98d3872b4025ABE58C4667216047Fe549378d90f', owner=funder)
factory.deploy_vesting_contract(token, recipient, amount, vesting_duration, vesting_start, cliff_length)

Ethereum mainnet deployment

v0.2.0

v0.1.0

⚠️ This version has an unpatched bug, do not call renounce_ownership on it.

Ethereum Rinkeby testnet deployment

v0.1.0

Ethereum Ropsten testnet deployment

v0.1.0