Antfarm mark: an ant carrying a coinAntfarm
Dig a colony

Antfarm

Every coin dug on Antfarm is an ant colony. Its creator fees are its food, kept in the colony's store, which nobody can withdraw. Every 30 min the colony may send one forager: a small piece of the store buys another coin of the pad. Where it goes is decided on chain by Ant Colony Optimization. After 6 h the forager sells and walks home. Trails that brought food home get more scent; trails that stopped paying fade.

Profit feeds the queen: half of it buys the colony's own coin back and burns it. A colony with a big store throws a nuptial flight and launches a daughter coin that is dropped to its holders. A colony with no food for 72 h dies.

This is not a yield product. A round trip on the curve costs about 2.5 % in fees, and memecoins drift down more often than up. The site shows every trip as it came home: no APY, no forecast.

Life of a colony

stagewhat happenswho does it
Diglaunch: the coin is created on pump.fun with the colony's Fees PDA as its creator, plus your optional first buy. Launch fee 0.02 SOL to the treasury.the dev
Freeze the feesfreeze_fees: pump fee sharing is set to 100 % to the colony and the admin of that config is revoked by pump itself, forever.anyone
Foodcollect: pump pays the shared fees into the colony; the program books them and splits them into dev, store, $ANT and treasury buckets.anyone
Join the mapenlist: the colony takes one of the 64 places on the map once it is 6 h old, has 3 SOL of real depth and some food in the last 24 h.anyone
Forageopen_beacon, settle_beacon, then forage picks a trail and buys in the same instruction.anyone (earns a tip)
Walk homereturn_home after the hold: sells, splits the profit, lays scent.anyone (earns a tip)
Queenfeed_queen: the queen bucket buys the colony's own coin and burns it.anyone
Flyflight: a big store launches a daughter coin; its first buy goes to a drop for the mother's holders.anyone, once ready
Starve, die, revivestarve after 48 h without food, death after 72 h; revive when food comes back.anyone

One trip, step by step

  1. Budget. budget = min(store × 10 %, 1 SOL), at least 0.01 SOL; the store must hold 0.05 SOL. The caller's tip is min(0.0001 SOL, budget / 300).
  2. Pick. The program computes the weight of every trail on the map and rolls the epoch's beacon (below). The site computes the same pick first with the program's own math and passes that coin's accounts.
  3. Buy. The spend is capped at 0.5 % of the target's real SOL depth and by a 1 % price impact; the minimum out comes from the target's median price, never from the caller.
  4. Hold. The forager waits 6 h. If the target starves, dies or leaves the map, it may come home early.
  5. Sell and split. Principal back to the store; profit split queen / store / $ANT. Scent is laid only if the trip was credited a profit.

Worked example

Store 4.00 SOL → budget 0.40 SOL. The target has 100 SOL of depth, so the 0.5 % cap (0.50 SOL) does not bind: the forager buys for 0.40 SOL. Six hours later it sells for 0.43 SOL, and the median value of those tokens says 0.432 SOL. Credited return R = min(0.43, 0.432) / 0.40 − 1 = 7.5 %. Profit 0.03 SOL: 0.015 to the queen (burned), 0.012 to the store, 0.003 to $ANT; 0.40 back to the store. Scent laid: Δτ = Q · R = 2 × 0.075 = 0.15, so a trail at τ 1.20 goes to 1.35 (never above 3.00).

The ACO rule

p(j) = τjα · ηjβ / Σ τα · ηβ   α = 1, β = 2

τ, the scent of trail i → j

τ now = τmin + (τ stored − τmin) · 2−age / half-life, computed lazily from the time of the last deposit. A trail nobody walked yet starts at τ0 = 1.00 from the moment that coin joined the map. Bounds τmin 0.10, τmax 3.00 (MAX-MIN Ant System: no trail is ever zero, none wins forever). Half-life 6 h. Integer math with a 16-step table; the site runs a byte-identical copy to draw the fading.

η, how the coin looks like food

η = median price now (5 observations over at least 10 minutes) divided by the hourly median 6 hours ago, clamped to 0.5 – 2.0. A coin more than 15 % under its 6-hour high counts 0.5 (dumping). A starving coin counts 0, and a coin with no fresh price for 2 h is left out of the roulette (weight 0): a forager could not buy it at a fair median anyway.

Who is never picked

The colony itself, its mother, its daughters, coins of the same dev, starving coins, coins with no fresh price for 2 h, coins with less than the minimum depth, and any coin where this colony already has a forager (one forager per trail at a time).

Scent at return

Credited R = min(SOL out, median value of the sold tokens) / SOL in − 1. Δτ = Q · R with Q = 2. Nothing is laid when R is below 0.5 %, when the trip came home early, or when the target colony has a forager in this colony at that moment (A↔B feeding each other).

The beacon

Once per epoch anyone opens the beacon: it fixes three future slots in three different leader windows (S1 = the next multiple of 4 at least 8 slots ahead, S2 = S1 + 4, S3 = S1 + 8). After S3 + 4 anyone settles it: entropy = sha256(h1 · h2 · h3 · epoch), where hk is the hash of the first produced slot in window k, read from the SlotHashes sysvar. Each colony's roll = sha256(entropy · mint · forager number) mod Σw.

Nobody can hold back an outcome they dislike: anyone may settle and anyone may forage. To bias a pick you need the leaders of all three windows; the prize is one forager of at most 1 SOL and 0.5 % of a coin's depth. Every pick is logged with all 64 odds, the roll and the entropy; Replay the roulette shows the latest one.

Where the SOL goes

Fees that come in (collect)

bucketshareboundsuse
dev40 %0 – 50 %claimable by the coin's dev
store (food)45 %30 – 90 %foragers and the nuptial flight
$ANT10 %0 – 20 %buys the pad token and burns it
treasury5 %0 – 15 %the pad

Profit of a trip

shareof profitbounds
queen: buys the colony's own coin and burns it50 %20 – 80 %
store: compounds toward a flight40 %10 – 70 %
$ANT10 %0 – 20 %

A loss comes out of the store only. Nothing in a colony can be withdrawn by anyone; the only payout is the dev's own bucket.

Nuptial flight

When a colony is at least 3 d old, its store holds 3 SOL, its last flight was 7 d ago and its dev planned the daughter (name, ticker, picture), anyone may launch the flight. One instruction creates the daughter coin and buys it with 30 % of the store. All those tokens go to a drop for the mother's holders: weight = each wallet's lowest balance over the 6 h before the flight (pools, the curve, program accounts and the dev excluded), 2 % cap per wallet with the excess spread over the rest.

The attestor posts the drop's merkle root; it becomes final after 2 h unless the guardian vetoes it. Holders claim for 14 days; the rest is burned. If no final root exists 48 h after the flight, the whole drop is burned. At most 3 flights pad-wide per 24 h.

Starving

Food is the coin's own trading fees. 48 h without food: the colony starves (no foraging, others stop picking it, grey on the map). 72 h: it dies, leaves the map (every trail toward it disappears at once), and its store goes to its queen: a last buy-back and burn for the holders who stayed. Its foragers still out come home normally. If its coin trades again, anyone may revive it.

Nobody can starve someone else's colony: only the coin's own volume keeps it alive.

Price guard

  • Every colony keeps a ring of price observations; trades use the median of the last 5 spanning at least 10 minutes.
  • Minimum out is computed on chain from that median; a caller may only ask for more.
  • Impact cap 1 % per trade, one program trade per coin per slot, a forager at most 0.5 % of the target's depth.
  • Selling relaxes with time so nothing is stuck: 3 % slippage until hold + 24 h, 15 % until hold + 72 h, then 50 %.
  • forage, forage_buy and return_home refuse being called from another program.

Parameters

Mainnet values, and what the program on this page's network reads right now (loading). The admin may move them only inside the bounds; changes apply to new colonies only where it matters.

parametermainnetherebounds

Program reference

Program AntoshRqy3ZQVh8BmAyE1mea9KGUXMD3KLhvcw5QUx3k

Accounts and seeds

accountseedsholds
Config"config"admin, treasury, attestor, guardian, pad token, params, rules
Field"field"the map: 64 places with each occupant's η, depth and food
Beacon"beacon"this epoch's three slots and the settled entropy
Anthill"anthill"the pooled $ANT and treasury buckets
Colony"colony", mintbuckets, trails (τ per place), observations, stats, the planned daughter; its lamports are the store
Fees"fees", mintthe coin's pump creator
Purse"purse", colonythe system account that trades for the colony
Forager"forager", colony, seqone trip: target, odds, SOL in, tokens; closed at home
Airdrop"drop", daughtera flight's drop: escrow, root, claimed bitmap

Instructions

instructionwho

Errors

Rendered from the program's IDL.

codenamemessage

Verify on chain

  1. The coin's creator is its Fees PDA ("fees", mint), not a wallet.
  2. The pump fee sharing config of the coin pays 100 % to the Colony account and its admin is revoked.
  3. Every ForageStarted event carries the 64 odds, Σw, the roll and the entropy: recompute the pick.
  4. Every Returned event carries SOL in, SOL out, the credited return, Δτ and the split.
  5. A colony's lamports minus rent equal the sum of its buckets.
  6. The upgrade authority and the admin keys are listed on this page before mainnet.

Admin powers

Can

  • Move parameters inside the published bounds.
  • Pause new launches and new foraging.
  • Set the pad token once.
  • Rotate admin (two steps), attestor and guardian (two steps + 3-day timelock).
  • Change the treasury address.

Cannot

  • Touch any colony's store, queen or dev bucket.
  • Redirect a coin's fees: pump's fee sharing is frozen.
  • Stop returns, claims, collects, burns: pause never blocks them.
  • Pick a forager's target or change a posted roll.
  • Hand drop tokens to anyone but holders: unclaimed tokens burn.

Compromises, plainly

  1. The drop snapshot is attested: holder lists are read off chain by the attestor. Amounts, caps and the escrow are on chain, the guardian can veto, and the full snapshot is published.
  2. Randomness is a public slot-hash beacon, not a VRF. Bending it takes three colluding leaders for a prize of one forager of at most 1 SOL.
  3. The average forager pays the fee drag. In our simulation ACO lost about 1 % per trip against about 4 % for random picks. It is a living network, not a yield product.
  4. "Not the same dev" is cosmetic: anyone can use a second wallet. The real defense is the economic caps: 0.5 % of depth per forager, the entry rules of the map, scent per source colony.

Risks

  • Memecoins go to zero. A forager may come home with less, and often does.
  • A coin can be pumped and dumped on arriving foragers; the caps limit, not remove, that loss.
  • Pump.fun and PumpSwap are external programs; if they change, trades may fail until the program is upgraded.
  • The program is upgradeable until the owner freezes it.

FAQ

Who pays for foraging?

The colony's own store. Whoever sends the transaction gets a small tip from it, capped at 1 % of the budget.

Can the dev take the store?

No. The dev gets only the dev bucket of the fees. The store only buys, sells, burns and flies.

Why does my colony not forage?

It must be on the map (age, depth, recent food), its fees must be frozen, its store at least 0.05 SOL, and it sends one forager per epoch, four at most out at once.

What is $ANT?

The pad's own coin. 10 % of every colony's fees and 10 % of every profit buy it back and burn it.