Skip to content
imago

Docs

How Imago works

Status

Imago is in pre-launch. This site runs the curve maths and the evolution engine in TypeScript, with tests. The on-chain program that will enforce them is not written or deployed yet, so no coin can be launched or traded. This page describes the design the program is specified to follow.

The idea

A normal memecoin looks the same at $5K and at $5M. An Imago coin ships with a script: a list of market cap tiers, and what happens at each one. When the market cap crosses a tier, the coin molts: it sheds its shell. It can change how it looks, pay its holders, burn supply or drop tokens, and a tier can be a fork that holders vote on.

The script

The creator writes the script before launch. It holds up to 10 tiers, each with a market cap in USD and up to 4 events. Tiers must go up. At launch the script is stored with the coin and becomes read-only: there is no instruction to edit it, for anyone.

Events

EventExact rulePaid from
New imageThe image in the token metadata is replaced by the one set at launch for this tier. The mint address and the ticker stay the same.Nothing moves
New nameThe name in the token metadata is replaced. The ticker never changes, so the coin stays findable under the same symbol and address.Nothing moves
New descriptionThe description in the token metadata is replaced by the text set at launch for this tier.Nothing moves
Sealed messageA text written at launch and stored as a hash. It is published on the coin page when the tier is reached. It can't be edited after launch.Nothing moves
Holder rewardA set percentage of the SOL in the pot is split between the N largest holders, pro rata to their balance. The pool, the airdrop reserve and the creator's dev buy are not counted as holders.The coin's fee pot
Buyback and burnA set percentage of the SOL in the pot buys the coin on its own curve, with no fee. The tokens bought are burned, which lowers the supply.The coin's fee pot
AirdropA set percentage of the supply, reserved at launch and kept out of the curve, is split between the N largest holders, pro rata to their balance. A script can reserve at most 10% of the supply.Reserve set aside at launch
Fee changeThe trade fee is set to a new value from this tier on. It can never go above 2%.Nothing moves

The fee pot

Every trade pays a fee, 1% by default. Half goes to Imago. The other half is the creator's share, and it does not go to the creator directly: it goes into the coin's pot.

  • The pot can't be touched between two evolutions.
  • When a tier fires, its holder reward and buyback take their set percentage of the pot. The rest is released to the creator, and the pot starts again from zero.
  • So a payout of “30% of the pot” means 30% of the creator's fees collected since the previous shell.
  • After the last shell, there is nothing left to fund: the creator's share is paid directly.

Holder rewards and airdrops are split pro rata between the N largest holders. The pool, the airdrop reserve and the creator's dev buy are not holders. The program is specified to rank holders on their average balance over the stage, not on a snapshot, so buying right before a tier earns almost nothing.

How a tier fires

Market cap is the curve price times the circulating supply, converted to USD with the Pyth SOL/USD feed. It is checked on every buy. When it is at or above the next tier, that tier fires inside the same transaction. One large buy can fire several tiers in a row; the first one empties the pot.

Molts are one-way. If the price falls back under a tier, the coin keeps its shell and nothing is taken back.

Forks

A tier can carry a fork: two paths, each with its own events, plus a fallback. The shared events of the tier always fire, then the winning path fires. The creator writes both paths before launch and they are frozen with the rest of the script.

  • Voting. Any wallet can sign a vote for path A or B on a fork that hasn't been reached, and change it until then. Only the latest vote counts.
  • Weight. Read from a balance snapshot taken when the tier is reached. A wallet weighs its balance, capped at 2% of the circulating supply. The pool, the airdrop reserve and the creator's dev buy never vote.
  • Quorum and fallback. The votes need 1% of the supply behind them. Below that, or on an exact tie, the fallback path runs.
  • Money. A path can pay holders, burn or airdrop like any tier, so the pot has to cover each path on its own: no path may spend more than 100% of it, and an airdrop reserve is sized for the larger path.

Known limit: a vote is weighed at the snapshot, so a wallet can buy just before the tier to add weight. The per-wallet cap and the quorum bound how far that goes, but they don't remove it.

Shell badges

When a tier is reached, every wallet holding at least 0.01% of the supply at the snapshot can claim the badge of that shell: a non-transferable token showing the form the coin took. The program stores one commitment per tier and holders claim their own badge, paying the rent themselves, so a coin with thousands of holders costs its creator nothing extra. Badges carry no payout and no voting right.

Sealed looks

A creator can seal a future image, name or description. Buyers then see “???” for that tier, and only a hash of the content is public until it is reached. Sealed messages work the same way. Events that move SOL or tokens, and fee changes, can't be sealed.

Stalled coins

If a coin with an unfinished script goes 30 days without a new shell, anyone can call a function that sends the pot to the top 50 holders. A creator can't sit on a pot by setting a tier nobody will reach.

The curve

Coins trade on a constant-product curve with 30 SOL of virtual liquidity and a supply of one billion. All maths are integers and every rounding favours the pool, so buying and selling straight back never makes a profit. Sells can't be paused or blocked.

Limits

  • Trade fee: never above 2%, whatever the script says.
  • Airdrops: at most 10% of the supply across the whole script, reserved at launch.
  • Launch fee: 0.05 SOL plus network rent.
  • The ticker and the mint address never change.

Write a script