Home/Resources/Fundamentals
Fundamentals

How to Read a Vesting Schedule: A Beginner's Guide

Cliff date, vesting end, claimable now, total amount – the same five fields appear on every vesting protocol. Here is how to read them.

April 27, 2026·8 min read·VestreamVestream

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

  1. 1How much? – the total amount of tokens locked in this vest.
  2. 2When did it start? – the timestamp from which unlocks are calculated.
  3. 3When does it end? – the timestamp at which 100% has unlocked.
  4. 4What about the cliff? – the timestamp before which zero is claimable.
  5. 5How much can I claim right now? – the unlocked-but-not-yet-withdrawn balance.
🧭Five fields, every protocol

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:

FieldValue
Total amount1,200,000 tokens
Vesting start2026-01-01 00:00:00 UTC
Vesting end2028-01-01 00:00:00 UTC (24 months later)
Cliff date2026-07-01 00:00:00 UTC (6 months after start)
Cliff unlock amount300,000 tokens (6/24 of total)
Post-cliff release rate37,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 nameSablierHedgeyUNCXStreamflow
Total amountdepositedAmountamountamountdepositedAmount
Start timestartTimestartstartEmission*start
End timeendTimeendendEmissionend
Cliff timecliffTimecliff(via emission delay)cliff
WithdrawnwithdrawnAmountamountClaimedamountWithdrawnwithdrawnAmount

* 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:

  1. 1Get the vesting contract address (from the project's docs, audit report, or block explorer).
  2. 2Open the contract on the relevant block explorer (Etherscan, BscScan, Solscan, etc.).
  3. 3Use the 'Read Contract' interface to query your specific vest by ID or recipient address.
  4. 4Confirm the total amount, start, end, and cliff match what you were told.
  5. 5Confirm the contract's actual token balance is sufficient to cover the schedule.
🔬Or just use Vestream

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

📡Read every schedule the same way

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.

Track your own token vesting

Paste any wallet, see every unlock across 12+ protocols and 9+ chains. Free, no sign-up.

Track every token unlock in one dashboard

Vestream covers Sablier, Hedgey, Superfluid, LlamaPay, UNCX, Unvest, Team Finance, PinkSale, HoodLock, Magna, Streamflow, and Jupiter Lock – across all chains – in a single real-time view. No sign-up forms.

More from Vestream Resources