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, because a schedule cannot be edited afterwards.

Updated 2026-09-15 · HoodLock Team
Irreversible

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#

FieldWhat it meansCommon choice
AmountTotal tokens in the scheduleThe whole allocation for that person
StartWhen accrual beginsToday, or a shared team start date
CliffNothing is claimable before thisOne year on a multi-year schedule
EndEverything is claimable at this pointTwo 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.

Note

Allocation benchmarks covers what sizes and durations survive scrutiny, and what a cliff is covers how holders read one.

Create it#

  1. Open vesting. Go to the vesting form with the wallet holding the tokens.
  2. Pick the token. Choose it from your balances or paste the contract address.
  3. Add the recipients. Each row takes the address that will be able to claim and the amount for that address. Use + Add recipient for more rows, or Paste CSV for a longer list. Check every address character by character. This is the field that cannot be fixed later.
  4. Set start, cliff and end. Pick the dates or use the presets. The form enforces the contract's rules, so an invalid combination will not reach a signature prompt.
  5. Review the summary. Check the dates against what you intend to announce. The Vested at creation row shows how much a back-dated start makes claimable straight away (see below).
  6. Approve, then create. Two transactions, or one if you already approved enough. The form does not show the fee, so expect 0.005 ETH per schedule in the wallet prompt, on top of gas. It is charged once, here, and claiming later is free.

The rules the contract enforces#

RuleValue
Minimum durationThe end date must be more than 24 hours after the moment the schedule is created
Orderingstart ≤ cliff ≤ end
FeeExactly the fee per schedule. Any other amount makes the transaction fail, so nothing extra can be lost
Batch sizeUp to 200 recipients per transaction
Careful

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. Every schedule shares the token and the dates, with its own address and amount. 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#

Careful

A schedule with a start date in the past is already partly vested the moment it exists. That is legitimate, since teams often vest from the 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#

Every schedule gets its own proof link under Created by you on the vesting page. Share it 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 →