Skip to content
eyes docs04 / 10

The engine

How trading fees become burned EYES, who can run it, and why nobody can take the money. A two-minute read.

Most buybacks are a promise: a team decides when to buy and how much, from a wallet it controls. Here there is no such wallet and no such decision. Fees land in a vault only the engine can move, the engine can only buy EYES and burn it, and anyone can make it run. Nobody, us included, can pause it, redirect it or keep the money.

If the team disappeared tomorrow, the fees from the next trade would still end up burned, the first time anyone picks up the bounty.

Every token here, EYES and every launch, names the same vault as the receiver of its protocol fees. That vault is an account owned by the engine program. It has no private key: only the engine can move what’s in it, and the engine only knows six instructions.

Instruction What it does
collect_curve Pulls a curve’s protocol fees (USDC) into the vault
collect_surplus Pulls a graduated curve’s leftover USDC into the vault
collect_pool Pulls fees from the vault’s locked liquidity after graduation
buyback_curve Spends the vault’s USDC on EYES from its curve, then burns it
buyback_pool After EYES graduates: buys EYES from its pool, then burns it
init_state One-time setup at launch

There is no admin instruction and no withdrawal. The program is immutable, so nobody can add one either. USDC comes in, EYES goes out and is burned in the same transaction.

flowchart TD
  T["Every trade on EYES<br/>and on every launch"] -- "protocol fee in USDC" --> V[("Engine vault<br/>no private key, no withdrawal")]:::key
  A(("Anyone")) -. "calls collect<br/>earns 0.5%" .-> V
  V -- "buyback" --> E["Buy EYES<br/>on its own curve"]
  A -. "calls buyback<br/>earns 0.5%" .-> E
  E --> B["Burned in the same transaction<br/>supply only goes down"]:::burn
  classDef pass fill:#0f2a1f,stroke:#5fe39a,color:#d9ffe9
  classDef stop fill:#2a0f1a,stroke:#eb397c,color:#ffd9e6
  classDef burn fill:#2a1a0b,stroke:#ffae5c,color:#ffe8cf
  classDef key fill:#171b45,stroke:#516af6,color:#f1f3ff

Anyone. Every step pays whoever calls it:

  • a collect pays the caller 0.5% of what it pulls into the vault;
  • a buyback pays the caller 0.5% of what it spends.

That bounty is what replaces a server. We run our own runner, which checks every minute and calls the engine once there’s enough to be worth a transaction, but nothing depends on it. If we stopped, anyone could pick up the bounties.

  • Before EYES graduates, no. The buyback buys on the EYES curve, where bots can’t buy, so nobody can front-run or sandwich it.
  • After EYES graduates, each buyback is capped at $500 and runs at most once a minute, which keeps sandwiching unprofitable.
  • Fees can only reach the vault. Each launch’s config fixes the vault as its fee receiver, the hook only accepts our own configs, and every destination in the engine is pinned except the caller’s bounty account.

The engine’s runner also finishes curves that stall one buy short of graduating. Fomo’s buys are fixed-size, and the curve rejects a buy that’s bigger than the room left in it, so a curve can sit at 99.9% while every buy fails.

When a curve’s last gap is small (up to $50), our runner buys exactly the remainder into the vault and migrates the pool in the same run. That buy is paid by us, and its tokens stay in the vault for good. See graduation.