Create a vesting schedule.
Four numbers decide everything: how much, when it starts, when the cliff falls and when it ends. Get them right before you sign — a schedule cannot be edited afterwards.
No HoodLock function can cancel, edit or recover a schedule. A wrong beneficiary address or a wrong amount is permanent. Read this page before you start rather than during.
The token is the one exception: an upgradeable, pausable or blacklisting token can still undo or freeze a schedule after the fact, and if you deployed the token, you may hold that power yourself. See how vesting works.
Decide the four numbers#
| Field | What it means | Common choice |
|---|---|---|
| Amount | Total tokens in the schedule | The whole allocation for that person |
| Start | When accrual begins | Today, or a shared team start date |
| Cliff | Nothing is claimable before this | One year on a multi-year schedule |
| End | Everything is claimable at this point | Two to four years for team supply |
Between start and end, release is linear. Before the cliff it is zero even though time is accruing — when the cliff passes, everything earned to that point becomes claimable at once. The exact formula is on the vesting page.
Allocation benchmarks covers what sizes and durations survive scrutiny, and what a cliff is covers how holders read one.
Create it#
- Open vesting. Go to the vesting form with the wallet holding the tokens.
- Pick the token and amount. Same as any other flow — from your balances or by address.
- Enter the beneficiary. The address that will be able to claim. Check it character by character. This is the field that cannot be fixed later.
- Set start, cliff and end. The form enforces the contract's rules, so an invalid combination will not reach a signature prompt.
- Review the summary. Check the dates against what you intend to announce — a back-dated start makes part of the schedule claimable immediately (see below).
- Approve, then create. Two transactions. The fee is charged once, here; claiming later is free.
The rules the contract enforces#
| Rule | Value |
|---|---|
| Minimum duration | 24 hours between start and end |
| Ordering | start ≤ cliff ≤ end |
| Fee | Exactly the fee — overpayment is not refunded, unlike locks and burns |
| Batch size | Up to 200 beneficiaries per transaction |
If you build transactions yourself rather than using the app, note that the API validates
end - start ≥ 86400 while the contract validates end > block.timestamp +
MIN_DURATION. A back-dated start can pass the first and fail the second. Validate against
block.timestamp. Details on the API page.
Vesting a whole team at once#
Batch creation makes one schedule per beneficiary in a single transaction — same token, same timing, different addresses and amounts. Up to 200 at a time, with the fee charged per schedule.
It is the practical way to set up a cap table, and it produces one proof page per person rather than one shared page, which is what you want when someone asks about a specific allocation.
Be honest about back-dating#
A schedule with a start date in the past is already partly vested the moment it exists. That is legitimate — teams often vest from a date people actually joined, but a schedule that is 50% claimable on day one is, in practice, half a transfer.
The proof page does not state this for you. It shows what has vested so far, and it warns when a future cliff will release a large chunk at once, but a schedule that was already substantially vested when it was created reads, months later, exactly like one that vested honestly over that period.
So say it yourself, in your own announcement: the start date, and what share was already claimable on day one. It costs nothing, and it is the one number a sceptical reader cannot reconstruct from the page.
After creating#
- The beneficiary claims, when they choose. Nothing is pushed automatically and unclaimed tokens never expire.
- Claims are free. Gas only.
- The beneficiary can hand over to a new address themselves, for a wallet change. You cannot do it for them.
- You cannot change anything. Not the amount, not the dates, not the recipient.
Share the proof link the same way you would a lock — proof of lock covers what it shows.
Create a vesting schedule
Flat 0.005 ETH per schedule, claims are free, and no HoodLock function can alter it afterwards.
Open vesting →