yoso
Search documentation...Ctrl K

Security

How YOSO liquidity and dev vesting are handled on-chain. Includes HyperSwap Burn & Earn, OpenZeppelin VestingWallet, and verification steps.

3 min read

Overview

YOSO has two security mechanisms that are independently verifiable:

  1. Liquidity moved through Burn & Earn. The initial HyperSwap V3 LP NFT is no longer held by the deployer wallet.
  2. Dev tokens vest over 3 years. The dev allocation is held by an OpenZeppelin VestingWallet-based contract with a 1-year cliff and 2-year linear vest.

Neither mechanism depends on a private promise. The relevant state is readable on HyperEVM.

LP security

What Burn & Earn changed

The YOSO/HYPE pool was seeded as a full-range HyperSwap V3 position. After seeding, LP NFT 173399 was moved through HyperSwap's Burn & Earn flow.

ItemValue
Pool0x10B8D6c2a0BD3C64D4549160261FaA94D0f54021
Position manager0x6eda206207c09e5428f281761ddc0d300851fbc8
LP NFT173399
Burn & Earn tx0xaeb7118060e43bdfeee67a58904d9f3140edc6619fa1426925dd782dfae15fba
Current LP NFT owner0x744C89B7b7F8Cb1E955B1Dcd842A5378d75c96Dc
Deployer LP NFT balance after Burn & Earn0

Some DEX burn flows transfer an NFT to the zero address. HyperSwap's Burn & Earn flow for this position transferred ownership to its Burn & Earn contract. The important checks are that the deployer no longer owns the LP NFT and the position still holds the seeded liquidity.

What it means for holders

The team cannot remove the seeded YOSO/HYPE principal from the pool through the original LP NFT. That NFT is no longer in the deployer wallet.

The position can still earn trading fees. Those fees are separate from the seeded principal.

How to verify

  1. Open the HyperSwap V3 position manager: 0x6eda206207c09e5428f281761ddc0d300851fbc8.
  2. Call ownerOf(173399).
  3. Confirm the owner is 0x744C89B7b7F8Cb1E955B1Dcd842A5378d75c96Dc.
  4. Call balanceOf(0xabcF9D3FA2D51ec1A48Ca880bc5df68add8B2290).
  5. Confirm the deployer holds 0 LP NFTs.

Dev vesting

What it is

The dev allocation is held in VestingWalletCliff, a thin wrapper around OpenZeppelin VestingWallet.

The wrapper sets the OpenZeppelin start timestamp to the cliff end. Because OZ's vesting math returns 0 before start, the cliff comes from the standard VestingWallet schedule. There is no custom release curve.

ItemValue
Vesting contract0x5E3be55Ee8Eed0a4260d38f63D8a4e76f6A21552
Token0x4917afd9f67e314c97b413cC77f325E7F64eE33a
Amount funded199,990,000 YOSO
Funding tx0x9b184b616acc3d6d187b3a18c6a890f599da5216a8820095c9633579430f2f2c
Owner / beneficiary0xDb9e524ACD665a74788E6885739A4EF9E9C6AA10
Ownership transfer tx0x20016ca76b5f9ec7fbaaad16c084398536379686d4649f849a9e51fd6ecf7c1a
Cliff end / OZ start2027-04-16 20:33:45 UTC
Vesting end2029-04-16 08:33:45 UTC

What the owner can and cannot do

OpenZeppelin VestingWallet is Ownable. The owner is the beneficiary that receives released tokens. Ownership was transferred from the deployer to the dev wallet after funding.

The owner can receive vested tokens after they become releasable. The owner cannot accelerate the schedule, pause it, revoke it, or pull unvested tokens.

How to verify

Check vested amount at any time

Call vestedAmount(tokenAddress, timestamp) on the vesting contract.

Contract: 0x5E3be55Ee8Eed0a4260d38f63D8a4e76f6A21552
Function: vestedAmount(address token, uint64 timestamp)
Parameters: 0x4917afd9f67e314c97b413cC77f325E7F64eE33a, current timestamp
Returns: uint256, divide by 10^18 for YOSO

Check how much is currently claimable

Call releasable(tokenAddress).

Function: releasable(address token)
Expected during cliff: 0

Check the schedule parameters

start()                  -> 2027-04-16 20:33:45 UTC
duration()               -> 63115200 seconds
end()                    -> 2029-04-16 08:33:45 UTC
released(address token)  -> total already claimed
owner()                  -> 0xDb9e524ACD665a74788E6885739A4EF9E9C6AA10

Summary

RiskMitigationVerification
Team removes LP principalLP NFT moved through Burn & EarnCheck ownerOf(173399) on the position manager
Team dumps dev tokens at launch1-year cliff plus 2-year linear vestingCall releasable(YOSO) and vestedAmount(YOSO, timestamp)
Vesting schedule changedNo pause, revoke, or schedule update pathRead the vesting contract state and source
Custom vesting curve bugUses OpenZeppelin VestingWallet schedule with a start offsetCheck start(), duration(), and end()

Next steps

  • Contracts: Addresses, txs, and verification script
  • Tokenomics: Distribution and vesting table

yoso agents

> authenticate

enter your email to sign in

or select a method

by continuing you agree to our terms & privacy