Vesting
The Factory ships with a generic vesting contract used for creator and team allocations of Factory tokens. Schedules are linear, optionally cliffed, and last a minimum of 14 days.
How a schedule works
Every vesting schedule has the same shape:
| Field | What it means |
|---|---|
| Beneficiary | The wallet that will receive the tokens. |
| Start | When vesting begins. Must be at or after the time of creation. |
| Cliff | The earliest moment anything can be released. Set equal to the start time for no cliff. |
| Duration | The total vest length. Minimum 14 days. |
| Slice period | The granularity of releases. A 30-day vest with a 1-day slice releases in 30 even chunks; with a 1-second slice it streams essentially continuously. |
| Total amount | The total tokens that will eventually unlock to the beneficiary. |
Inside the schedule, vesting is linear: the amount available at any time is the total amount scaled by the fraction of the duration that has elapsed since the start, rounded down to the nearest slice. Nothing is releasable before the cliff. Once the duration has fully elapsed, the entire total is available.
Creating schedules
Schedules are created in bulk: a single transaction can produce schedules for many beneficiaries at once. You provide the list of recipients and the matching list of amounts; everyone in the call gets the same start, cliff, duration, and slice period.
Before creating schedules, the caller must approve the vesting contract to spend the total combined amount of the underlying token, so the contract can custody them for the lifetime of the vest.
Releasing
Only the schedule's beneficiary can release tokens against it. Calling release at any time after the cliff transfers whatever is currently unlocked but unclaimed to the beneficiary's wallet. Calling it before the cliff reverts; calling it when nothing new has vested since the last release returns zero.
A beneficiary can release as often as they like. Most users either release at the end (once the schedule is fully vested) or on a regular cadence that matches the slice period.
Integration with the Factory
When the Factory's vesting contract is registered, two things happen automatically:
- The vesting contract is added to every new token's pre-LP transfer allow-list, so it can hold curve-restricted tokens before graduation.
- Creators who launch with a vesting allocation can fund their schedule directly from their pre-buy, knowing the tokens can sit safely in the vesting contract even while the token is still on the curve.
If the vesting contract isn't registered (the default before launch), tokens still deploy and trade normally - vesting is just unavailable until the contract is wired in.
Use cases
- Creator self-vesting - a creator pre-buys 5% of supply at deploy and immediately vests it linearly over six months to credibly signal long-term alignment.
- Team and contributor allocations - split a treasury across multiple wallets with a single create call.
- Cliffed bonuses - a 12-month vest with a 6-month cliff for a contributor who needs to still be around at the cliff date.
There is no admin-side cancel or recover path. Once tokens are committed to a schedule, only the beneficiary can ever pull them out, by releasing.