A token vesting and lockup contract audit verifies tokens release on the correct schedule and can't be withdrawn, frozen, or reclaimed early. Learn what auditors check — cliff and vesting math, access control, revocation logic, fee-on-transfer compatibility, and reentrancy risks — to protect team, investor, and advisor allocations from permanent loss or unauthorized clawback.

A vesting or lockup audit asks a simple question: does the contract release the right amount of tokens at the right time, and can anyone pull, freeze, or take back those tokens before they’re meant to be released? These contracts often look simple, which makes it easy to miss problems. A tiny mistake can lock team or investor tokens forever, or let an administrator reclaim tokens that should already be out of their control.
A vesting or lockup contract stores tokens and lets them out according to a schedule instead of giving the whole amount at once. The typical pattern uses a cliff followed by linear vesting. Nothing can be claimed until the cliff ends; after that, tokens are released gradually until the full allocation is vested. Teams, investors, advisors, and other long‑term participants use this pattern in almost every token launch. Many projects start with OpenZeppelin’s VestingWallet, but the risk usually comes from the extra code added on top of it.
Most bugs appear in the timing calculations. The auditor checks the core formula: given the current timestamp, how many tokens should be vested and how many can be claimed. An off‑by‑one error, a rounding issue, or a wrong cliff rule can make tokens unlock too early, too slowly, or leave the final chunk forever out of reach. The moment the cliff switches to the linear phase gets extra attention because any mistake there propagates to every later release.
Here we look at who can do what in the contract. The audit lists every privileged action: who can create schedules, change beneficiary addresses, pause the contract, or revoke allocations. Revocation itself is not a problem; many projects let unvested tokens be taken back if, for example, an employee leaves early. The key is that revocation only touches unvested tokens and never touches tokens that have already vested. A serious risk is an owner who can pull any locked token at any time – that defeats the purpose of a lockup.
Unexpected token behavior is a common cause of failure. If the vested token charges a transfer fee, changes its supply, or uses reflection, the contract may end up with fewer tokens than expected. Over time the schedule and the actual balance drift apart, and beneficiaries might reach the final claim only to find the contract empty. The audit checks whether the contract is built to handle these special token features or clearly states that it does not support them. If your token has fees, rebasing, or other custom mechanics, note that before the audit starts.
Locked tokens must eventually be claimable. Auditors search for situations where tokens could become permanently inaccessible—tiny rounding errors that leave dust behind, beneficiary flows that get stuck, or schedules that never finish because of a logic flaw. They also review any recovery function. A legitimate recovery hook can rescue tokens stuck due to an edge case, but it must not become a hidden way to bypass the vesting schedule.
The claim function is examined for re‑entrancy because it sends tokens out. Auditors verify it follows the checks‑effects‑interactions pattern. They also test for double‑claim bugs, where a beneficiary could claim the same amount twice because the contract’s state isn’t updated correctly. Rounding and precision get close attention; Solidity’s integer math can accumulate tiny errors that lock small balances or shift the schedule. Finally, timestamp handling is reviewed to ensure release times are calculated correctly and the start date matches the intended configuration.
Area checked | What can go wrong |
| Schedule math | Releases too many tokens, too few tokens, or locks funds permanently |
Cliff logic | Tokens unlock too early or never unlock |
Access control | Admin can withdraw locked tokens before vesting |
Revocation | Clawback affects tokens that have already vested |
Token compatibility | Fee‑on‑transfer or rebase mechanics break accounting |
Stuck funds | Dust balances or deadlocks permanently trap tokens |
Claim function | Re‑entrancy or double‑claim vulnerabilities |
Vesting contracts often hold the most valuable pieces of a project: team tokens, investor allocations, and advisor shares that may stay locked for months or years. A flaw doesn’t just cause a failed transaction or higher gas fees; it can lock millions of dollars’ worth of tokens or let an admin take back assets that should already belong to beneficiaries. The contracts themselves are usually small, but the value they protect is large. Treating a vesting contract as “just another utility contract” and skipping its review is rarely worth the risk.
Vesting contracts may not get the same spotlight as lending protocols or exchanges, but they protect some of the biggest assets in a project. A tiny mistake in the release logic or access controls can stay hidden for months, eventually locking funds forever or exposing them to unauthorized grabs. A thorough audit makes sure tokens are released exactly as intended, beneficiaries get what they’re owed, and the contract behaves correctly long after deployment.
fundamental question, exactly why they're easy to underestimate, most common setup, part of almost every token launch, proven implementation, vulnerabilities rarely come from the base contract itself, custom features added on top, most vesting-related vulnerabilities, the auditor begins by verifying, small error, off-by-one mistake, incorrect rounding, flawed cliff logic, the most common source of unexpected failures, non-standard token behaviors, hidden backdoor
Contents


From day-zero risk mapping to exchange-ready audits — QuillAudits helps projects grow with confidence. Smart contracts, dApps, infrastructure, compliance — secured end-to-end.