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
open_claim
and let anyone to claim for beneficiary recipient. - An ability to terminate an escrow and choose beneficiary for the unvested tokens using
revoke
. The recipient is still entitled to the vested portion. - An ability to use ERC20 non-compliant
token
, e.g. USDT. - An ability to
support_vyper
at escrow creation. - 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.
VestingEscrowFactory
: Factory to deploy many simplified vesting contractsVestingEscrowSimple
: Simplified vesting contract that holds tokens for a single beneficiary
$ ape console --network mainnet
funder = accounts.load(name)
factory = project.VestingEscrowFactory.at('0x200C92Dd85730872Ab6A1e7d5E40A067066257cF')
factory.deploy_vesting_contract(token, recipient, amount, vesting_duration, vesting_start, cliff_length, open_claim, support_vyper, owner, sender=funder)
This version is audited by Mixbytes.
VestingEscrowFactory
: 0x200C92Dd85730872Ab6A1e7d5E40A067066257cFVestingEscrowSimple
: 0x9692F652A3048eb7F5074e12B907F20d33F37a01
VestingEscrowFactory
: 0x98d3872b4025ABE58C4667216047Fe549378d90fVestingEscrowSimple
: 0xaB080A16007DC2E34b99F269a0217B4e96f88813
renounce_ownership
on it.
VestingEscrowFactory
: 0xF124534bfa6Ac7b89483B401B4115Ec0d27cad6AVestingEscrowSimple
: 0x9c351CabC5d9e1393678d221F84E6EE3D05c016F
VestingEscrowFactory
: 0x2836925b66345e1c118ec87bbe44fce2e5a558f6VestingEscrowSimple
: 0x8bb4edaf9269a3427ede1d1ad1885f6f9d5731f5
VestingEscrowFactory
: 0x8bb4edaf9269a3427ede1d1ad1885f6f9d5731f5VestingEscrowSimple
: 0xd887a875f4bc3b2aa5928e46607b7a06facfe3d0