Mechanics
AMOEBA has a supply of 1,000,000,000 and nothing can mint more. At launch 100% of it is seeded as single-sided liquidity into one Uniswap v4 pool, HYPE/AMOEBA, on Elysium. The position is owned by an immutable locker that can only ever add to it. There is no team allocation and no presale: the pool is the only place the token comes from.
Every buy and sell pays 2% of the HYPE leg into the hook. At launch all of it, 2%, goes to the treasury (the team's revenue), the split the launch begins with. Two more programs are built into the hook and off until the owner switches them on through the 24-hour timelock: a buyback-and-burn reserve (0% today) and a liquidity reserve that adds permanent depth (0% today). Every fee, buyback, burn, liquidity increase and treasury claim is on chain and listed in the ledger.
Fees
One fee, on the HYPE side of every trade, in HYPE. The pool's own LP fee is set to 0, so the hook's fee is the only fee.
| Destination | Rate | What it does |
|---|---|---|
| Treasury | 2% | Live. Claims to the Safe. Pays the team, infrastructure, marketing, the audit. |
| Burn reserve | 0% | Planned. Buys AMOEBA from the pool in batches of at least 1 HYPE and burns it, once switched on through the timelock. |
| Liquidity reserve | 0% | Planned. Buys its AMOEBA share and adds two-sided depth to the locked launch position. |
| Total | 2% | Hard cap 5% for any future plan, changeable only through the timelock. |
The math, from the hook: an exact-input buy pays in × 2% before the swap, the pool swaps the rest. An exact-input sale pays 2% of the HYPE the pool pays out. Exact-output trades gross the fee up, rounded up. A partial fill reverts (PartialNativeFill, PartialTokenOutput), so no fee is ever charged on volume that did not execute. The trade panel shows the fee and its split on every quote and nothing else: Amoeba charges no other fee.
The curve
The whole supply sits in one constant-product-shaped position from the opening tick down, with an opening fully diluted value of 100 HYPE. After H HYPE of net buys the FDV is about (100 + H)² / 100 HYPE.
| Net HYPE bought | FDV (HYPE) | Multiple of opening |
|---|---|---|
| 0 | 100 | 1× |
| 150 | 625 | 6× |
| 450 | 3,025 | 30× |
| 1350 | 21,025 | 210× |
The liquidity reserve's deposits add depth below the price and do not change this curve above it; buybacks move along it like any other buy.
The launch
The launch is six transactions from a fresh key. The first five deploy inert pieces: the hook implementation, the timelock and the three vaults. The sixth, AmoebaBootstrap, does the launch itself in one step: it deploys the token and the hook, mints the supply to itself, opens the pool at an opening value of 100 HYPE, seeds 100% of the supply into the locked position and hands the token to the Safe. If any check fails, that transaction reverts as a whole. There is no initial buy and the team keeps nothing: the first buyer gets the opening price.
One protection runs on chain time for the first hour:
| Protection | Value | Shown as |
|---|---|---|
| Wallet cap | 1% of the supply per wallet for 1 hour | WalletCapExceeded when a buy would pass it. Selling and burning are never capped. |
The hook also carries a surcharge on early buys that falls to zero over a set time. It is set to zero at this launch; after launch it can only be lowered or shortened, never raised.
The reserves
The three vaults are immutable and hold their share of the fee as ERC-6909 claims of HYPE on the PoolManager. None has an owner, a pause or an arbitrary-call path.
- BurnReserve.process(minOut) is permissionless and runs when the reserve holds at least 1 HYPE: it swaps at most 2% of the pool's HYPE for AMOEBA inside its own unlock (the hook charges it no fee) and burns everything it bought. The keeper calls it every minute when due; anyone may.
- LiquidityLocker.deposit() is permissionless and runs when the reserve holds at least 1 HYPE and the price is above the opening tick: it adds HYPE-only depth in a fixed range below the opening price to a second locked position. The locker can increase positions and never decrease, burn or transfer them.
- TreasuryVault.claim(amount) sends HYPE to the fixed Safe address. Anyone may call it; the recipient never changes.
One pool, by design (URC-5)
The token implements URC-5 venue policy in Enforced mode: it refuses to be held by any venue but its canonical pool. Allowed hooks report the AMOEBA leg of each swap from their callbacks; the PoolManager may then move only that much in the same transaction. A pool without an allowed hook can neither be funded nor pay out. Predicted copy venues are listed inbound-blocked before the pool opens, and outbound is never blocked so liquidity can always leave a copy. The policy page reads all of this from the token live.
A known limitation: a net-zero route can pass AMOEBA through a copy pool as claims without a transfer, and an LP who batches a decrease and a re-add in one transaction mints both budgets. Gated liquidity adds bound the second; the first is low value because a copy can be funded only from, and paid only back through, the canonical pool.
Contracts
Not deployed yet
| AmoebaToken | at launch | Immutable ERC-20, URC-5 enforcement, launch wallet cap |
| AmoebaHookProxy | at launch | The fee hook, upgradeable behind the timelock |
| AmoebaHookV1 | at launch | The current implementation |
| TreasuryVault | at launch | Claims to the Safe |
| BurnReserve | at launch | Buys AMOEBA from the pool and burns it |
| LiquidityLocker | at launch | Owns the positions, increase-only |
| AmoebaBootstrap | at launch | The one-transaction launch |
| Timelock | at launch | 24-hour TimelockController, the ProxyAdmin’s owner |
| Safe | at launch | The team’s multisig: token owner, timelock proposer |
Elysium periphery the app binds to
| Uniswap v4 PoolManager | 0xE2e105d3F7209A9DA11f83cCf3E7398a753823F1 | The canonical pool lives here |
| PositionManager | 0x1d1C51b9d07fD27d36412A2b66CC23D19Eb3E518 | Mints and increases the locked positions |
| Universal Router | 0xA13f7611115752DEB2B13813BDDE16A5073e4b45 | The trade panel swaps through it (V4_SWAP) |
| V4Quoter | 0x379F556c5a748BD7Cc9baF0F7A344094Ac1814f5 | Quotes by simulation |
| StateView | 0x27eD73aE0652fdCf71d6793412A7525f32bE9dfE | Pool state reads |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | Token allowances for sales |
| Second PoolManager | 0x5fb015a49f5b35073f9Ce01C2aDb287A75F89600 | A blocked external venue |
Chain 99901 (Elysium). Explorer: https://elysium.kinetiq.xyz. The app reads through the RPC in its configuration and hands wallets the chain's public RPC.
Upgrades and governance
| What | Who | Can |
|---|---|---|
| The token | Nobody | Immutable: no upgrade, no mint, no tax logic. The owner (the Safe) can only change venue policy within hard bounds. |
| The hook | Timelock (24 h), proposed by the Safe | Replace the implementation; change the fee plan within the 5% cap by at most one point per change; lower or shorten the surcharge. |
| The vaults and the locker | Nobody | Immutable. The locker can only increase liquidity. |
| Venue policy | The Safe, immediately | List or block external venues and providers. The launch pool and its hook can never be delisted. Preferred mode is the emergency switch that turns every check off. |
| The keeper | A hot key with gas | Call process() and deposit(), which anyone may call anyway. |
Every queued change appears on the policy page 24 hours before it can execute. There is no guardian pause: a paused pool is a trust failure, and the token's Preferred switch plus the upgrade path cover faults.
The numbers
The home page, the trade page, the ledger and the policy page read an indexer that follows the chain every minute and writes swaps, fee events, buybacks, liquidity events, treasury claims, balances and candles. The tape also subscribes to new swaps directly. Quotes, balances and the policy state are read from the chain in the browser.
The 24-hour fee figure is summed from fee events; when a day holds more events than one page, it is derived from indexed volume at the plan's rate and marked ≈. The 24-hour volume comes from hourly candles. Before launch the app runs in preview mode on a deterministic sample and says so on every page.
The organism
The organism on the home page is drawn from a state computed every minute from the same indexed data, by rules published in full on the DNA page. Real events become numbered entries in the journal, each with its evidence. The character is fiction; the facts are not. Posts on X are drafted by a language model from journal entries, checked by code (no number that is not in the entry, no promises, no links of its own) and posted by a person on the team.
Risks
- The hook is upgradeable behind a 24-hour public timelock controlled by the team's Safe. A new implementation could change how fees are taken, within the 5% cap.
- The team receives 2% of every trade through the treasury.
- AMOEBA is a memecoin on a new chain. It is not an investment, promises no return and can lose all value. Elysium's operators can change, pause or reset the chain.
- Smart contracts can have bugs, Amoeba's and Uniswap's. The contracts are reviewed before launch; an audit is paid from the treasury.
- In the first hour one wallet can hold at most 1% of the supply; a buy that would cross it is refused whole.
Error catalog
Every refusal the trade panel decodes, through the Universal Router's, the quoter's and the PoolManager's wrapping, and what to do about it.
| Error | Meaning | Fix |
|---|---|---|
VenueNotAllowed | The token refused this venue: AMOEBA can only be held by its canonical pool. | Trade here, through the canonical pool. Copy pools cannot be funded by design. |
WalletCapExceeded | Wallet cap: for the first hour after launch a wallet may hold at most 1% of the supply. | Buy less, or wait for the cap to end. Selling is never capped. |
ERC20InsufficientBalance | You don't hold that much AMOEBA. | Lower the amount. |
ERC20InsufficientAllowance | The token approval doesn't cover this sale. | Approve again, then sell. |
PartialNativeFill | The pool couldn't fill the whole HYPE amount, so nothing was charged. | Try a smaller amount. |
PartialTokenOutput | The pool couldn't deliver the whole AMOEBA amount, so nothing was charged. | Try a smaller amount. |
NotPoolManager | The hook refused a call from outside the PoolManager. | Try again. |
BelowMinimumBatch | The burn reserve holds less than one batch (1 HYPE). | Wait for more fees. |
TooSoon | The burn reserve ran a batch very recently. | Try again in a moment. |
TransactionDeadlinePassed | The trade landed after its deadline. | Send it again, or allow more time in settings. |
V4TooLittleReceived | The price moved past your slippage limit. | Try again, or raise slippage in settings. |
V4TooMuchRequested | The trade would need more HYPE than allowed. | Try again, or raise slippage in settings. |
V4TooLittleReceivedPerHopSingle | The price moved past the per-hop limit. | Try again, or raise slippage in settings. |
V4ExactOutputUnfilled | The pool couldn't fill the requested output. | Try a smaller amount. |
InsufficientETH | The HYPE sent didn't cover the trade. | Try again. |
InsufficientToken | The router didn't receive enough tokens. | Try again. |
ETHNotAccepted | The router refused the HYPE sent with this call. | Try again. |
LengthMismatch | The trade was encoded wrongly. | Reload and try again. |
InvalidCommandType | The router did not recognise the trade. | Reload and try again. |
DeltaNotPositive | The swap left nothing to take. | Try a smaller amount. |
DeltaNotNegative | The swap left nothing to settle. | Try again. |
UnsupportedAction | The router did not recognise the swap action. | Reload and try again. |
PoolNotInitialized | The pool doesn't exist yet. | — |
SwapAmountCannotBeZero | Enter an amount above zero. | — |
SafeCastOverflow | This amount is too large for the pool. | Try a smaller amount. |
NotEnoughLiquidity | There isn't enough liquidity for this amount. | Try a smaller amount. |
CurrencyNotSettled | The swap didn't settle. | Try again. |
PriceLimitAlreadyExceeded | The pool refused the price limit. | Try again. |
HookCallFailed | The hook refused the swap. | — |
HookDeltaExceedsSwapAmount | The fee would exceed the swap. | Raise the amount. |
InsufficientBalance | The PoolManager balance was short. | Try again. |
InvalidNonce | That Permit2 signature was already used. | Sign again. |
SignatureExpired | The signature expired before the trade landed. | Sign again, or allow more time in settings. |
InvalidAmount | The signature covers fewer tokens than the sale. | Sign again. |
InvalidSigner | The signature doesn't match your wallet. | Sign again from the connected wallet. |
InvalidSignature | The wallet's signature didn't verify. | Sign again. |
InvalidSignatureLength | The wallet's signature didn't verify. | Sign again. |
InvalidContractSignature | Your smart wallet's signature didn't verify. | Sign again. |
AllowanceExpired | The Permit2 allowance for the router expired. | Sign again, then sell. |
InsufficientAllowance | The Permit2 allowance doesn't cover this sale. | Sign again, then sell. |
TRANSFER_FROM_FAILED | The token transfer failed. | Check your balance and approval, then try again. |
Eligibility
Amoeba is not offered to persons located in, or residents of, the United States, the United Kingdom or any jurisdiction where it would be unlawful. Do not use a VPN or other means to get around this. See the terms.