How orders fill
Your limit and DCA orders are filled by GAMA's keepers: programs run by GAMA that watch the market and send the fills for you. The keeper decides only when to fill and how much at a time. Everything that protects your price is checked by the order contract itself, on every fill, and a keeper cannot get around it. This page explains those rules, with examples from the release that went live on 3 October 2026.
Who can fill
Only keepers on the order contract's list can fill an order, and the order's own owner. The protocol owner adds and removes keepers; the first keeper of the current release is GAMA's orders operator. A plain wallet that is not on the list cannot fill anyone's order: in the live test, a stranger's attempt was refused, and so was a stranger's attempt to add itself as a keeper.
This matters because whoever fills an order chooses the moment. If anyone could fill, someone could push the price against you, fill your order at the bad price and sell straight after, all in a row. With keeper-only fills, that sequence is closed.
You never depend on the keeper for your money. Pausing, editing, cancelling and refunding are always yours to do, keeper or not.
When a DCA buy happens
A DCA order has a schedule: one instalment per interval, from its start until its last interval. The keeper fills each interval's instalment at a random moment inside the interval, not at its start. Orders that share a route share the same random moment, which is drawn fresh for every interval. No one can know in advance when your next buy will land.
Limit orders have no schedule: the keeper fills them once the price reaches your limit.
The price average and the 3% band
Every GAMA launch pool and every bonding curve keeps a running average of its own price over about three minutes. It is updated by the first trade of each block, from the price before that trade, so trades inside a block, including the one being filled, cannot move it.
A DCA buy is refused when, at any step of its route, the current price is more than 3% away from that average, in either direction. The keeper then waits and tries again later in the same interval. Your order shows Waiting: the price is more than 3% from its average in the meantime. If the price has not settled by the end of the interval, that buy is skipped: it is not cancelled, and it is not made up later.
In the live test, a wallet bought 0.055 test ETH of a thin new launch, which pushed its price about 3.6% above its average, right before a DCA buy was due. A keeper fill at that price was refused, and the buyer's own attempt to fill the order was refused too. The keeper waited and filled the instalment 69 seconds later, once the price was back within 3%.
When a token trends sharply, so that its price runs more than 3% ahead of its average, DCA buys pause until it settles. A token that has just graduated starts its pool's average at the pool's opening price, so buys continue straight away.
WARNING
A step through an ordinary pool, one without GAMA's launch hook, has no price average. The order form then asks for your own price limit, and the order contract will not fill such an order without one.
Your floor on each buy
Each DCA buy must give you at least a floor. For every step of the route, the order contract values your instalment at whichever is worse for you, the current price or the average, after fees, and then takes off your slippage. If you also set a price limit, the stricter of the two applies.
The 1% impact cap and sub-fills
No single DCA fill may move the price by more than about 1% on its own: its output must be at least its value at the price before the fill, less 1%.
When an instalment is too large to fill within that cap, for example in a thin market early on a curve, the keeper splits it into several smaller fills within the same interval. Each part is at least the order's minimum fill, except a last part that takes exactly what the interval has left, and together they never add up to more than the instalment. Whatever an interval leaves unfilled is not carried into the next one.
In the live test, a DCA of 2 × 0.06 test ETH every three minutes went into a fresh launch whose curve allowed only about 0.03 ETH per fill under the cap. The keeper filled:
| Interval | Fills | On Gamascan |
|---|---|---|
| 1st | 0.0316 ETH | one fill |
| 2nd | 0.0321 + 0.0279 ETH = 0.06 ETH | first part, second part |
| 3rd | 0.0284 ETH, the rest of the budget | one fill |
In the order's fills, a split shows as, for example, Buy 2 · part of 2 fills.
The band and the impact cap apply to DCA buys, which trade at the market price. A limit order is protected by your limit itself: every fill must meet your price or better.
Batches: one trade, one price
When several orders buy the same token by the same route, the keeper can fill them together in one trade. The output is divided in proportion to what each order put in, rounded down, with the few leftover units going to the largest share. Every order in a batch gets the same price.
- Each order's share must still meet that order's own floor. If one share would fall short, the whole batch is refused and nothing changes; the keeper leaves out orders that would fail.
- The whole trade must meet the 1% impact cap.
- Buy limits apply to each owner's share, not to the batch as a whole.
- The network fee is shared: each order pays an equal part of the batch's measured cost, never more than its own fee limit.
In the live test, five wallets placed the same DCA, 3 × 0.001 test ETH into GAMA every minute. The keeper filled all fifteen instalments in six trades, among them a batch of five orders. In a batch of five, each order's network fee was about a third of what it was for an order filled on its own. In your fills, such a fill shows Batch of 5 orders.
The keeper's charge
There is no order fee. Each successful fill pays the keeper its measured network cost, taken from the fill on the ETH side:
- Paying with ETH: the fill sets your fee limit aside before trading, pays the measured cost, and returns the rest to your order.
- Receiving ETH: the cost comes out of the ETH you receive.
- Neither side ETH: each fill pays exactly your fee limit, in the token you pay with.
A fill whose cost would exceed your Network fee limit per fill does not happen; your order shows Waiting: network fees are high until fees fall, or until you Raise network fee limit. Failed attempts are never charged to you. GAMA sets the limit for you at five times today's estimated cost, and at least 0.00002 ETH. In the live test, the charge per order ranged from 0.000000156 to 0.000000522 test ETH.
What these rules do not cover
- Anyone can see your order. Orders are public on the chain. Someone can buy ahead of a large DCA in a thin market and sell into its later buys. In the live test, a wallet did that and made about 2% on 0.055 test ETH, from the order's own buying of about 0.09 ETH into a curve about 3 ETH deep. Every fill stayed within the band and the cap. GAMA treats this as ordinary market impact of a large order in a thin market. Smaller buys over a longer time reduce it.
- The worst case per fill. A fill can cost you at most about the 3% band, plus your slippage, plus the 1% impact allowance, compared with a fair price.
- Fills are not guaranteed. A buy can be skipped when the price will not settle, the market is too thin, or a limit, a buy cap or the fee limit stands in the way.
See Price impact and sandwiches.
