Overview
YOSO has two security mechanisms that are independently verifiable:
- Liquidity moved through Burn & Earn. The initial HyperSwap V3 LP NFT is no longer held by the deployer wallet.
- 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.
| Item | Value |
|---|---|
| Pool | 0x10B8D6c2a0BD3C64D4549160261FaA94D0f54021 |
| Position manager | 0x6eda206207c09e5428f281761ddc0d300851fbc8 |
| LP NFT | 173399 |
| Burn & Earn tx | 0xaeb7118060e43bdfeee67a58904d9f3140edc6619fa1426925dd782dfae15fba |
| Current LP NFT owner | 0x744C89B7b7F8Cb1E955B1Dcd842A5378d75c96Dc |
| Deployer LP NFT balance after Burn & Earn | 0 |
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
- Open the HyperSwap V3 position manager: 0x6eda206207c09e5428f281761ddc0d300851fbc8.
- Call
ownerOf(173399). - Confirm the owner is
0x744C89B7b7F8Cb1E955B1Dcd842A5378d75c96Dc. - Call
balanceOf(0xabcF9D3FA2D51ec1A48Ca880bc5df68add8B2290). - 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.
| Item | Value |
|---|---|
| Vesting contract | 0x5E3be55Ee8Eed0a4260d38f63D8a4e76f6A21552 |
| Token | 0x4917afd9f67e314c97b413cC77f325E7F64eE33a |
| Amount funded | 199,990,000 YOSO |
| Funding tx | 0x9b184b616acc3d6d187b3a18c6a890f599da5216a8820095c9633579430f2f2c |
| Owner / beneficiary | 0xDb9e524ACD665a74788E6885739A4EF9E9C6AA10 |
| Ownership transfer tx | 0x20016ca76b5f9ec7fbaaad16c084398536379686d4649f849a9e51fd6ecf7c1a |
| Cliff end / OZ start | 2027-04-16 20:33:45 UTC |
| Vesting end | 2029-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 YOSOCheck how much is currently claimable
Call releasable(tokenAddress).
Function: releasable(address token)
Expected during cliff: 0Check 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() -> 0xDb9e524ACD665a74788E6885739A4EF9E9C6AA10Summary
| Risk | Mitigation | Verification |
|---|---|---|
| Team removes LP principal | LP NFT moved through Burn & Earn | Check ownerOf(173399) on the position manager |
| Team dumps dev tokens at launch | 1-year cliff plus 2-year linear vesting | Call releasable(YOSO) and vestedAmount(YOSO, timestamp) |
| Vesting schedule changed | No pause, revoke, or schedule update path | Read the vesting contract state and source |
| Custom vesting curve bug | Uses OpenZeppelin VestingWallet schedule with a start offset | Check start(), duration(), and end() |
Next steps
- Contracts: Addresses, txs, and verification script
- Tokenomics: Distribution and vesting table
