A vending machine that fills swaps on Solana. It earns by solving intents, holds what it is paid in on twelve coils, and every trade on this coin turns the coils. A completed turn sells one packet and buys the coin. There is no key, no clock, and no operator.
A coin's price is a number other people agree on and can stop agreeing on in a block. This paper describes a machine attached to one coin that holds something else: a shelf of real assets, earned by doing work. The machine is registered as a solver on Solana, where people publish what they want swapped and solvers compete to fill it. When this machine wins a fill, it keeps the spread, and the spread arrives as whatever asset it was paid in.
What it does with that balance is the part worth reading. The shelf is divided across twelve coils. Coils do not turn on a clock and nobody can turn them by hand. The only thing that moves them is trade on the coin itself. Every trade of size s advances every coil by 360 · s / P, where P is that coil's pitch. A small trade nudges the tight coils and barely registers on the wide ones. A large trade turns several at once.
When a coil completes a full turn it vends. It sells a fixed fraction of its own balance, buys the coin with the proceeds, and the coin it bought becomes a packet that goes to the wallet whose trade finished the turn. The machine does not decide who gets it. Arithmetic does.
Twelve coils, twelve pitches, from $250 at the tight end to $40,000 at the wide end, spaced roughly 1.6× apart. Pitch is how much volume one full turn costs. A $250 coil completes forty turns on $10,000 of trade; a $40,000 coil completes a quarter of one.
This is the whole reason the machine has twelve coils instead of one. A single pitch would either vend constantly in a hot market and never in a quiet one, or the reverse. Spread across an order of magnitude and a half, something is always close to the top of its turn and something is always a long way from it.
A trade turns every coil at once. It is not routed. It is not assigned. The same dollar of volume advances all twelve, each by its own fraction.
Six assets, two coils each. The machine holds what it was paid in and does not rebalance, rotate or take a view. If fills arrive in one asset for a week, the shelf tilts that way for a week.
A vend sells a packet equal to f × balance, with f fixed at one twenty-fourth — about 4.17%. Every vend leaves the coil with (1 − f) of what it had, so a coil that vends n times without being refilled holds (1 − f)n of where it started. It approaches zero and never reaches it. The only way a coil empties is if it is vending faster than fills are refilling it, which is a statement about the market, not about the machine.
The machine only quotes requests whose out-asset sits on a lit coil, and it never quotes more than that coil is holding. It cannot promise what it does not have. Its spread starts at 0.30% and widens by 0.05% each time a coil sells out, which is the machine getting more expensive exactly when it is running thin.
A completed turn opens an intent: sell one packet of the coil's asset for SOL, use the SOL to buy the coin, and hold the coin as the packet. The packet sitting in the tray transfers to its recipient on the next vend, which means the tray is never empty while the machine is working and never pays out before the next turn is done.
A packet goes stale once six later vends have happened. Stale packets burn on the vend that makes them stale, together with whatever dust has collected. Nobody claims them and nobody can.
A vend that stays unfilled past the confirmation depth of its source jams the coil. The coil stops advancing until a curve buy larger than the jammed vend clears it — the market unjams the machine, not an operator.
A sell larger than a coil's last vend kicks that coil back by 30°, floored at zero. Volume that leaves does not count the same as volume that arrives.
The light is on while the machine has won a fill since its last vend. It does nothing else. It changes no parameter and gates no behaviour. It is there so you can tell, at a glance, whether the thing is working or just sitting there.
Coils
Pitch is the dollar volume one full turn costs. The three right-hand columns are read from the coin's live 24-hour volume and the pitch — they are what that volume would turn, not a reading of where each coil is standing right now.
Shelf
Six assets, two coils each. Prices are read live from the market for each mint. Balances are read from the machine's accounts — anything not returned stays a dash rather than a guess.
Solver
The machine quotes out of a lit coil and never beyond its balance. Each time a coil sells out, that coil's notch goes up one and its spread widens by δ.
Enter a notional and a notch and this works out what the machine quotes against the live price of the out-asset, and what it keeps.
Tray
One packet sits in the tray at a time. It transfers on the next vend. Six vends later, whatever is still unclaimed is stale and burns.
What one coil holds after n vends with nothing refilling it, as a share of where it started. The curve never touches zero.
Activity
Read from the pair every forty-five seconds. This is what is turning the coils.
the line starts when the first reading lands
Value
Price comes from the pair. Supply comes from the mint account. Neither is typed in by anyone.
—copyThe shelf is the part of the coin that is not a number other people agree on. This is how much of the market value it currently covers.
Chains
The machine settles on Solana and is paid in assets that arrive there. Each row is the mint it actually holds, and the price column is read against that mint.
Model
Put a trade size in and this is exactly what it does to all twelve coils. Nothing is rounded in your favour and nothing is hidden.
Volume needed for one more turn on each coil from the starting angle above, and what that is at the coin's live 24-hour rate.
Program
Nobody can add to the shelf. Nobody can take from it. Nobody can change a pitch, change f, change the spread, pause a coil, redirect a packet or claim one on someone else's behalf. There is no admin instruction because there is no admin.
That is the entire security model, and it is the reason the machine is boring to look at and hard to argue with. It has no privileged user. It does not have one that is renounced, not one held in a multisig, not one that is time-locked. It never had one.
—copy—copy—copy