> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waifu.fun/llms.txt
> Use this file to discover all available pages before exploring further.

# vesting explained

> the 50/50/24h vesting schedule on graduating tiers

BASED, WAGMI, and GIGACHAD (TIER\_90 / TIER\_95 / TIER\_98) have vesting enabled. SMOL (TIER\_80)
does not. when vesting is on, your tokens unlock over 24 hours starting from
the launch block.

## the schedule

* **50% at TGE.** as soon as the launch transitions to `LAUNCHED`, half of
  your allocation is claimable.
* **50% linear over 24 hours.** the remaining half unlocks proportionally
  over the next 86400 seconds (24 hours) after launch.

## the math

```solidity theme={null}
uint256 constant VESTING_WINDOW    = 86_400;   // 24 hours
uint256 constant VESTING_TGE_BPS   = 5_000;    // 50% TGE
uint256 constant VESTING_LINEAR_BPS = 5_000;   // 50% linear

function _vestedOf(uint256 alloc, uint256 launchTs) internal view returns (uint256) {
    if (!vestingEnabled) return alloc;
    uint256 tge = (alloc * VESTING_TGE_BPS) / BPS_DENOM;
    uint256 linear = alloc - tge;
    uint256 elapsed = block.timestamp - launchTs;
    if (elapsed >= VESTING_WINDOW) return alloc;
    return tge + (linear * elapsed) / VESTING_WINDOW;
}
```

at any moment, your claimable amount is:

```
claimable = _vestedOf(alloc) - alreadyClaimed
```

`claim()` reads this, transfers the delta, and updates `alreadyClaimed`.

## what this looks like in practice

say your allocation is 1,000,000 tokens and the launch happens at timestamp T:

* **T + 0 seconds:** 500,000 claimable (TGE half)
* **T + 1 hour:** 500,000 TGE + (500,000 \* 1 / 24) = \~520,833 claimable
* **T + 6 hours:** 500,000 + 125,000 = 625,000 claimable
* **T + 12 hours:** 500,000 + 250,000 = 750,000 claimable
* **T + 24 hours:** 1,000,000 claimable (fully vested)
* **T + 25 hours:** 1,000,000 claimable (capped, no extra unlock)

you can call `claim()` any number of times. each call only transfers the
delta between vested and claimed. no penalty for claiming early or often,
except gas.

## why vesting exists

the presaler allocation is large (a flat 200M tokens, 20% of total supply).
releasing all of that at once produces immediate sell pressure that crashes
the freshly-deployed PCS pair. spreading it over 24 hours dampens this and
gives the token a chance at organic price discovery.

it does not prevent dumping. it just spreads the dump curve over a day. read
[risks](/presalers/risks) for what this means for you.

## SMOL has no vesting

SMOL (TIER\_80) is curve-only. there is no PCS pair at launch. all of your tokens
unlock at LAUNCHED and `claim()` returns the full allocation in one call.

this is partly because SMOL has no follow-up buy and trades on FLAP's curve
until it organically graduates. the social contract is different: SMOL is a
curve play, not a v2 launch. the absolute presaler allocation is the same
200M tokens as any other tier.

## claim mechanics

* `claim()` is permissionless. anyone can call it on their own behalf, but
  the tokens go to `msg.sender` so you cannot claim for someone else.
* there is no claim deadline. tokens sit in the vault indefinitely. you can
  claim a year later if you want.
* claim reverts with `NothingToClaim` if your vested amount equals your
  already-claimed amount (e.g. you just claimed in the same block, or your
  allocation is zero because you did not deposit).

## what if i deposited then withdrew

your `Depositor.deposited` is reset to zero on `withdraw()`. your allocation
is therefore zero. you have nothing to claim and nothing to refund.
