If you have spent any time around new token launches you have seen the UNCX badge – the green lock icon on a token's listing page that confirms the project's liquidity is locked. UNCX is the most widely-used token locker in the EVM ecosystem, and over time it expanded from LP locks into team-token vesting too.
That expansion creates ambiguity: when someone says 'this token is locked on UNCX', they could mean the project's liquidity is locked, or they could mean an individual recipient's tokens are vesting. These are different products with different contracts. This article clears up the distinction and walks through both.
Token Lockers vs Vesting on UNCX
UNCX runs two distinct product families on each chain it deploys to. The vocabulary overlaps, but the use cases don't.
| Product | What it locks | Who uses it | Release pattern |
|---|---|---|---|
| LP Locker | LP tokens (Uniswap V2/V3, PancakeSwap, etc.) | Project teams locking pool liquidity | Typically single unlock at end date |
| TokenVesting v3 | Bare ERC-20 tokens | Project teams vesting team/investor allocations | Cliff + linear, multi-tranche |
| VestingManager | Bare ERC-20 tokens (per-recipient) | Project teams running larger grant programs | Cliff + linear, sub-position per recipient |
If the underlying asset is an LP token, it's a <em>liquidity lock</em>. If it is a regular ERC-20 going to specific recipient addresses, it's a <em>vesting</em> contract. UNCX runs both and they live in separate contracts.
TokenVesting v3
TokenVesting v3 is UNCX's mature, widely-deployed vesting contract. A single vesting deployment can hold many separate vests, each with their own owner, schedule, and underlying token. The key concepts are:
- Lock owner: the address that can claim from the vest. Usually the recipient.
- Token: the underlying ERC-20.
- Amount: total locked tokens for this vest.
- StartEmission: the timestamp at which linear vesting begins. Before this, only the cliff portion (if any) is claimable.
- EndEmission: the timestamp at which 100% has vested.
TokenVesting v3 supports cliff + linear schedules natively. The cliff is implemented as a TGE unlock plus a delay before startEmission – making it slightly less ergonomic than Sablier's explicit cliff parameter, but functionally equivalent.
VestingManager: The Newer Architecture
VestingManager is UNCX's newer vesting contract. The architectural improvement is that one VestingManager deployment can manage many independent vesting plans for a single project, with cleaner per-recipient sub-positions and less administrative overhead than redeploying TokenVesting v3 for each grant.
From a recipient's perspective, the experience is similar – you see a vesting position keyed to your address, with a claimable balance that grows over time. From a project's perspective, VestingManager is the more convenient choice for distributing tokens to dozens or hundreds of contributors at once.
Inside the Vestream UI, TokenVesting v3 and VestingManager positions are surfaced as a single <em>UNCX</em> protocol card. The underlying contract is recorded as metadata, but you don't have to think about which one your project deployed.
Supported Chains
UNCX deploys to most major EVM networks. The chains Vestream indexes are:
- Ethereum (chainId 1) – TokenVesting v3 and VestingManager
- BNB Chain (56) – both products, very high usage volume
- Polygon (137) – both products
- Base (8453) – both products
- Sepolia (11155111) – TokenVesting v3, for testnet flows
Interpreting an UNCX Vest
Suppose you receive tokens from a project that vested them via UNCX. To verify the schedule yourself:
- 1Find the UNCX vesting contract address on the project's docs or block explorer.
- 2Call the public read function to fetch your vest by lock owner address.
- 3Inspect the four key fields: amount, startEmission, endEmission, and amountWithdrawn.
- 4Compute claimable: pro-rata fraction of (now − startEmission) ÷ (endEmission − startEmission), capped at 100%, multiplied by amount, minus amountWithdrawn.
- 5Cross-check against the project's published vesting terms.
Or just paste your address into Vestream and skip the contract math entirely. For a deeper primer on these fields, see How to Read a Vesting Schedule.
Why Projects Choose UNCX for Vesting
- Brand trust: the UNCX badge is recognised by retail buyers and listing aggregators alike.
- Multi-product platform: teams that already use UNCX for LP locks tend to add team vesting on the same dashboard rather than onboarding to a second protocol.
- Battle-tested contracts: TokenVesting v3 has years of production usage with no major exploits.
- Cross-chain consistency: the same product semantics apply on every chain UNCX deploys to.
Tracking UNCX on Vestream
Vestream queries both TokenVesting v3 and VestingManager subgraphs in parallel for every supported chain. Vests are merged, deduplicated, and presented as unified UNCX cards. You can compare an UNCX position to a Sablier or Hedgey position without translating between contract field names.
Add any wallet on Ethereum, BNB, Polygon, Base, or Sepolia to <a href="/login">Vestream</a> and the UNCX adapter will surface every TokenVesting v3 and VestingManager position it holds.
FAQ
Frequently Asked Questions
Is the UNCX badge on a token listing the same as token vesting?
Not necessarily. The most common UNCX badge refers to liquidity-pool token locks, not team vesting. Read the project's docs to confirm what is locked.
Can a UNCX vest be cancelled by the project?
TokenVesting v3 vests are not unilaterally cancellable by the project once funded. Always verify on a per-deployment basis though – admin keys can vary.
What is the difference between UNCX TokenVesting v3 and VestingManager?
TokenVesting v3 is the older, single-contract-per-deployment model. VestingManager is the newer architecture that handles many recipients more efficiently. Functionally they behave the same from a recipient's perspective.
Does UNCX support per-second streaming?
No – UNCX vests use linear release between startEmission and endEmission, calculated on each claim. Effectively similar to streaming but you only realise the unlock when you withdraw.