Team vesting
20M tokens · 12-month cliff · 24-month vestKeeps contributors aligned. Nothing unlocks until the cliff, then tokens release every second.
VestlyEverything you need to lock, release and claim tokens on Robinhood Chain — from your first schedule to reading the contract directly.
Vestly locks tokens in a smart contract and releases them to a recipient on a fixed timetable. Once a schedule is created, nobody — including Vestly and the creator — can change it or take the tokens back. Recipients claim what has unlocked, whenever they want.
Creator deposits tokens into the contract
Tokens unlock over time, second by second
Recipient pulls unlocked tokens to their wallet
Every schedule has four numbers: amount, start, cliff and duration. Before the cliff ends, nothing is claimable. After that, the unlocked amount grows in a straight line until the end of the duration, when 100% is available.
unlocked = 0 if now < start + cliff
unlocked = amount × (now − start) / duration while vesting
unlocked = amount after start + duration
claimable = unlocked − already claimedKeeps contributors aligned. Nothing unlocks until the cliff, then tokens release every second.
A short cliff followed by steady release for seed and strategic backers.
A continuous stream from day one. Creators can claim whenever they like.
Long-horizon release that makes treasury supply predictable for the market.
Split a pool into several schedules to release rewards in waves.
Recipients open Claims and connect the wallet the schedule was made for. Every schedule shows its progress, what's claimable now and what's still locked. Pressing Claim sends everything unlocked so far to that wallet. There's no deadline — unclaimed tokens simply keep adding up.
Paste any token address into the public tracker to see every Vestly schedule for it: total locked, unlocked, claimed, upcoming unlock events and the split by category. The link is shareable, so your community can follow unlocks without trusting a spreadsheet.
createSchedule(token, beneficiary, amount, start, cliff, duration, kind, label)Pulls tokens from the caller and creates a schedule. Returns its id.claim(id)Sends all claimable tokens to the beneficiary. Only the beneficiary may call it.vested(id)Total amount unlocked so far.releasable(id)Amount claimable right now.getSchedule(id)Full schedule details, including amount claimed.schedulesByCreator / Beneficiary / Token(address)Lists schedule ids for a wallet or token.scheduleCount()Number of schedules ever created.// Read claimable amount with viem
const amount = await client.readContract({
address: "0xa18332891b0f0909c481e56de75ac1b09b8607b4",
abi: vestlyAbi,
functionName: "releasable",
args: [scheduleId],
});Non-custodial: tokens sit in the contract, never with Vestly
Schedules can't be edited or cancelled once created
Reentrancy-protected claim and create
Every action is a public transaction on Etherscan