IMAGINE

Docs · Security

What the program cannot do

The parts that matter are properties of the deployed program, not promises in a pitch. Each one below is something you can check.

No admin withdraw path

There is no instruction that moves a pool's rewards or locked coins to an admin. Not a disabled one, not a timelocked one: it is not in the program.

Only program-derived accounts move a pool's funds. The vault pays the locker or the treasury that earned a specific amount, in the pair asset. The pool returns locked coins to their owner, or burns an early-exit penalty. Neither can be pointed anywhere else by a key.

Terms are frozen when a pool is created

The fee split, multiplier curve, size tiers, lock bounds, exit penalty, stream window and treasury address are copied onto the pool when it is created, and nothing rewrites them afterwards. Defaults can change for coins launched later; a pool that exists keeps its terms.

Claims and unlocks can't be paused

There is a pause switch, and it stops new pools. Claiming and unlocking do not consult it, so no state of the platform can hold a position hostage.

The creator locks first

A pool opens with the creator's own lock, and nobody else can lock until it exists. The amount and the term are public on the coin's page from the start.

Fees enforced on-chain by Raydium LaunchLab

Launching goes through the program, which creates the coin on Raydium LaunchLab under the IMAGINE platform config it has on file, and checks after the launch that the coin's fee recipient on LaunchLab is the pool's vault. From then on the 0.5% trading fee on every curve trade is charged by LaunchLab itself and accrues to that vault, whoever routes the trade. Collecting it into the pool is permissionless and can only pay the pool.

When a lock's ceiling is priced, the program reads the coin's own LaunchLab pool, pinned when the coin launched, and checks who owns it. After migration it reads the Raydium pool the coin graduated into, the one whose fee recipient is the pool's vault; any other pool for the same pair, which anyone could open at any price, is refused.

A lock vault holds someone else's coins for up to a year, so mints that would let a third party interfere with them are refused. The check is an allow-list of exactly what LaunchLab coins use.

Solvency

Rounding always favours the pool: the amount set aside when fees are spread across weight is rounded up, each position's claim is rounded down. A randomised test drives a pool through long runs of locks, deposits, claims and exits and checks after every step that the vault can still pay everyone it owes.

What can still go wrong

  • The coin can go to zero. Locking makes that worse, because you can't sell into the decline without burning part of your bag.
  • A coin nobody trades pays nothing. There is no emission and no subsidy.
  • The pair asset has its own risks. Lockers are paid in whatever the coin is paired with, and that asset's price moves on its own.
  • Raydium is a dependency. The 0.5% trading fee and the bonding curve are Raydium LaunchLab's programs; IMAGINE relies on them behaving as deployed.
  • The app fee depends on our front-end. It is attached by the transaction our API builds, and it can only ever pay into the coin's own pool.
  • Upgrade authority. Whoever holds a Solana program's upgrade authority can change it. Check this program's authority on an explorer before you trust it with size.
  • No external audit has been published for this program. Treat it accordingly.

Check it yourself

Program: imaguT3XXBk1MuKQA6XCk1KJsGM2YgfM1tA4pQQ3spa

View it on Solscan