If you have just received tokens from a project and someone has handed you a 'vesting schedule', the document might look intimidating – dates, percentages, tranches, claim functions. It isn't. Every vesting schedule, on every protocol, ultimately answers the same five questions.
This guide walks through the universal vocabulary, shows how to find the answers in a real vesting position, and points out the same fields on each major protocol. By the end you'll be able to read a Sablier stream, a Hedgey NFT, an UNCX vest, and a Streamflow contract using the same mental model.
The Five Questions Every Vesting Schedule Answers
- 1How much? – the total amount of tokens locked in this vest.
- 2When did it start? – the timestamp from which unlocks are calculated.
- 3When does it end? – the timestamp at which 100% has unlocked.
- 4What about the cliff? – the timestamp before which zero is claimable.
- 5How much can I claim right now? – the unlocked-but-not-yet-withdrawn balance.
Total amount, start time, end time, cliff time, claimable now. Once you can answer those five, you understand the schedule – regardless of which protocol or chain hosts it.
Term-by-Term Breakdown
Here is the canonical vocabulary you'll see across documentation, contract code, and dashboards:
- Total amount (a.k.a. depositedAmount): the full size of the locked allocation. This is fixed at creation and does not change.
- Vesting start (a.k.a. startTime, start, startEmission): the unix timestamp from which time-based release begins.
- Vesting end (a.k.a. endTime, end, endEmission): the unix timestamp at which the schedule completes – 100% unlocked.
- Cliff date (a.k.a. cliffTime, cliff): if non-zero, the timestamp before which zero tokens are claimable. At the cliff, the pro-rata portion for the cliff period unlocks at once.
- Claimable now (a.k.a. withdrawable, claimable): the dollar-or-token amount available to withdraw as of right now.
- Withdrawn amount (a.k.a. withdrawnAmount): the cumulative amount the recipient has already pulled.
- Locked amount: total amount minus withdrawn amount minus claimable now – the future portion still under lock.
- Claim cadence: how often you can call the claim function. Most protocols are continuous (call any time); some are tranched (only at unlock events).
Worked Example
Suppose a project tells you: 'You receive 1,200,000 tokens, vesting over 24 months with a 6-month cliff, starting 1 January 2026.' Translated into the canonical fields:
| Field | Value |
|---|---|
| Total amount | 1,200,000 tokens |
| Vesting start | 2026-01-01 00:00:00 UTC |
| Vesting end | 2028-01-01 00:00:00 UTC (24 months later) |
| Cliff date | 2026-07-01 00:00:00 UTC (6 months after start) |
| Cliff unlock amount | 300,000 tokens (6/24 of total) |
| Post-cliff release rate | 37,500 tokens per month, or roughly 0.0144 tokens/second |
Now imagine you check the contract on 1 October 2026 (9 months in). Pro-rata unlocked = 9/24 × 1,200,000 = 450,000. If you have already withdrawn 200,000, your claimable now is 250,000 and your locked remaining is 750,000.
The Same Fields Across Protocols
Different vesting protocols use slightly different field names for the same concepts. Here is a translation table:
| Canonical name | Sablier | Hedgey | UNCX | Streamflow |
|---|---|---|---|---|
| Total amount | depositedAmount | amount | amount | depositedAmount |
| Start time | startTime | start | startEmission* | start |
| End time | endTime | end | endEmission | end |
| Cliff time | cliffTime | cliff | (via emission delay) | cliff |
| Withdrawn | withdrawnAmount | amountClaimed | amountWithdrawn | withdrawnAmount |
* UNCX models cliff differently – see our UNCX guide for the specifics. The end result is the same: zero claimable until the cliff, then the catch-up amount unlocks.
How to Verify a Schedule On-Chain
Don't trust a schedule from a project deck or PDF. Verify it on-chain. The general procedure is:
- 1Get the vesting contract address (from the project's docs, audit report, or block explorer).
- 2Open the contract on the relevant block explorer (Etherscan, BscScan, Solscan, etc.).
- 3Use the 'Read Contract' interface to query your specific vest by ID or recipient address.
- 4Confirm the total amount, start, end, and cliff match what you were told.
- 5Confirm the contract's actual token balance is sufficient to cover the schedule.
Vestream queries every supported protocol on every supported chain and surfaces the canonical five fields on a single card per stream. No block explorer detective work required.
Common Sources of Confusion
- TGE unlock vs cliff: a TGE unlock releases tokens immediately at token launch. A cliff prevents any unlocks until a later date. Many schedules combine both: 'X% at TGE, then Y-month cliff before the rest starts vesting.'
- Cliff date vs cliff length: cliff length is the duration; cliff date is the timestamp at which the cliff unlocks. Confirm which one a doc is referring to.
- Linear release rate units: some protocols quote 'tokens per second', others 'tokens per month', others as a fraction. Always reconcile against total amount and duration.
- Time zones: vesting timestamps are unix seconds (UTC). Make sure any calendar dates you compute account for the time zone.
Tracking Schedules on Vestream
Whatever protocol holds your tokens, <a href="/login">Vestream</a> presents the same five canonical fields plus claimable now, next unlock, and full schedule chart. Sign in to view your positions.
FAQ
Frequently Asked Questions
Why does my claimable balance never seem to update on the protocol's own page?
Most UIs cache for performance. The on-chain truth always updates per block – try refreshing or query the contract directly. Vestream re-fetches per-stream when you open the card.
What does 'fully vested' mean?
All tokens have unlocked – i.e. the current time is past the end timestamp. Fully vested doesn't mean fully claimed; you may still need to call the withdraw function to move them to your wallet.
What if my schedule was changed after the fact?
On most protocols this is impossible – the schedule is immutable once created. If a project claims to have changed your schedule, ask them to point at the new on-chain position. There should be a fresh contract or a fresh sub-position.
Do I need to claim before vesting ends?
No. Once vested, tokens remain claimable indefinitely. You can wait until the schedule completes and withdraw the full amount in one transaction if gas costs matter to you.