LoomDesk is a market for everything that trades on Robinhood Chain, run on a node of its own, and a token, LOOM, that owns a book of liquidity. Every trade of LOOM pays 4%. Of that, 3% goes into the book, owned by the protocol, and 0.7% pays for operations. The whole book stands in one place: a LOOM/ETH pool of LoomDesk's own, as one full-range position, with the LOOM not yet paired held beside it. The pool's fee is set on every swap by a hook we wrote: never under 4%, and more for a trade that closes a gap between the pool and the market, so arbitrage pays the pool for the gap it closes. Of what that position earns, 20% is kept by the developer, for development and maintenance; the rest is kept as the book's principal and put back into the pool round after round, at no set time, part of it buying LOOM on the chart. Nothing is paid out to holders, nothing is burned, and the protocol never sells LOOM.
Around the book stand the things anyone can use: the marketplace, ladders of liquidity in any pool with an autopilot and limit orders, and pools anyone can open. Each has a section below.
Nothing in this document is a promise of yield or of price. The book earns what its pool earns, and the pool earns what people trade. What is fixed is where the money goes, and that is enforced by contracts, not by us.
A token's liquidity usually belongs to someone who can take it away. LOOM's trading fee builds liquidity that belongs to the protocol and cannot be withdrawn by holders or redeemed by anyone: it only grows, or is placed in the pool. And a pool with a fixed fee charges an arbitrageur the same as anyone else, which is how a pool gives most of its fees straight back: an arbitrage trade only happens when the pool's price is stale, and takes more out of the pool than the fee it pays. So the book runs a pool of its own whose fee depends on what the trade is doing.
This is the third shape of the book, and the paper says so plainly. It began in tokenized stock pools against USDG and paid holders daily in USDG. On 20 September 2026 it moved into LOOM pairs against ETH and every tokenized stock; on 24 September the payouts ended and the earnings began buying LOOM instead. Measured over the following days, 34 of the 35 stock pairs that traded lost more to arbitrage than they earned, and only LOOM/ETH earned. On 28 September the book left the stock pairs, the stock it held was sold for USDG at the market, that USDG bought LOOM, and the book went into LOOM/ETH alone. Past payouts stay claimable on the Rewards page.
A plain ERC-20 launched on Pons, paired with USDG, with a fixed supply of one billion. It has no mint function, no blacklist and no transfer tax of its own. The trading fee is charged by the venue it trades on, not by the token, so wallet-to-wallet transfers are free.
One Uniswap v4 pool, LOOM against WETH, whose fee is set per swap by LoomPairsHook from how far the pool stands from the market price and which way the swap moves it. Every fee is taken in WETH, never in LOOM.
The contracts that receive the fee income, hold the book's position and its idle LOOM, and collect what the position earns. An automated keeper drives them, within limits the contracts enforce.
The marketplace shows every token that trades on the chain and lets anyone trade listed tokenized stocks for USDG through our desk, with no desk fee of its own (only the pool's fee, in the quote). Ladders let anyone lay liquidity over a price band in any pool, in one transaction.
LOOM launches on Pons, Robinhood Chain's launch venue, on a bonding curve paired with USDG. Pons charges its own 1% on every trade, and the creator sets a tax on top; ours is 3%. Pons passes 0.70 points of its own fee back to the creator, so the desk receives 3.7% of every trade, before and after the token graduates from the curve to its Uniswap pool. These rates were measured on a copy of the live chain and again on the live chain itself before launch.
| Slice | Share |
|---|---|
| Paid by the trader | 4% |
| Kept by Pons | 0.3% |
| Received by the desk | 3.7% |
| Operations | 0.7% |
| Into the liquidity book | 3% |
The operations share pays the keeper's gas, the servers and the people. It is a fixed share of receipts written into the desk contract, and it can only be changed by the desk's owner, in public, up to a hard cap. The desk cannot spend the book on operations: the contract keeps principal and earnings in separate buckets, and operations are taken only from fee receipts as they arrive.
The book started in other people's Uniswap pools, and measuring them taught us the problem. Fee income looks the same whoever paid it, and it is not: an ordinary trade pays the fee and leaves, while an arbitrage trade pays the fee and takes more than that back, because it only happens when the pool's price is stale. A fixed fee cannot tell the two trades apart. So the book's pool sets its fee on every swap, through a hook we wrote, LoomPairsHook.
Before each swap the hook works out the pool's fair price from two readings it takes itself: ETH in dollars from Chainlink, and LOOM in dollars from its main pool on Pons. It never reads fair from the pool it prices. A swap that moves the pool away from fair, or happens while the two stand within 5% of each other, pays 4%. A swap that pulls the pool back toward fair from further away is closing a gap; it pays 1% plus 60% of the gap, which is 4% at a 5% gap and rises to the cap of 40%. No swap pays under 4% or over 40%. Arbitrage still closes every gap to about where a flat 10% left it, which is what keeps the pool honest; the part above 4% is what the pool is paid for it. With no usable reference (a feed that is stale, or Pons too thin to trust) every swap pays a flat 9%. A price service pokes the hook when LOOM moves, and the hook stores its own reading of Pons for a short while, so that pushing Pons inside one transaction to make a gap look smaller does not lower the fee.
Whichever way a swap goes, its fee is taken in WETH. A swap that pays WETH in pays the pool's fee on the way in. A swap that pays LOOM in goes through the pool at no fee, and the fee is held back from the WETH coming out and handed to the pool's liquidity. So what the book earns arrives as ETH, and the protocol never has to sell LOOM to use it.
Anyone may add liquidity to the LOOM/WETH pool, as one full-range position; the hook refuses any other range there. That is the price of taking fees in ETH alone: a fee handed to the liquidity after a swap goes to the positions in range where the swap ended, and only when every position is in range for every swap does each get the share it served. It follows that no ladder and no limit order can be built in this one pool. Every other pool on the chain, LOOM's main pool against USDG among them, takes ladders of any range.
A tenth of the plain 4% fee, 0.4% of the money side of a trade, is the hook's cut, paid to the desk in WETH, 14% of it to development. The part of a fee above the plain 4% carries no cut: all of it goes to the pool's liquidity. The cut can be no more than three tenths of the plain fee, and development's part no more than a fifth of the cut, in the code.
It sets a fee, takes the cut and hands the rest to the liquidity. It holds no tokens between calls and never touches a position. It is built never to fail a swap over a price: a reading that is missing, stale or malformed means the flat fee. A payment it cannot make inside a swap (to the desk, or back to a caller) becomes a claim on the pool manager in that party's name, which a small contract, ClaimRedeemer, pays out; it never becomes a gift to whoever is in the pool. The one swap it refuses names an amount no pool holds. Only the owner can open a pair on it, at the hook's own fair price. The owner can set the fees within bounds written into the code: the calm fee between 5% and 20%, the cap at most 50%, and the gap arbitrage leaves open between 12.5% and 20%. A further fee that rises with the pair's own recent moves is in the contract and switched off.
Two earlier hooks of ours remain on the chain and open to anyone's liquidity. LoomFeeHook prices the tokenized stock pools against USDG, where the book once stood and holds nothing now. LoomOpenHook is the one behind the pools anyone can open, below.
One full-range position in the LOOM/WETH pool, and beside it, idle on the desk, the LOOM that has no ETH to be paired with yet. A full-range position never leaves the price: it sells LOOM as LOOM rises against ETH and buys it as it falls, and earns the fee on every trade either way. The token page shows the position, the idle LOOM and the book's value at the current price, read from the chain.
Two streams feed it. The trading fee of LOOM itself arrives at the desk as USDG, less the operations share. And the position's own earnings, with the hook's cut, arrive as ETH. Round after round the keeper collects, turns what came in into the two sides the pool needs, buying LOOM in its main pool on Pons and ETH through the router, and adds to the position, using the idle LOOM first where there is some. Every purchase of LOOM is recorded with its transaction on the Buyback page. The keeper's own gas is paid from the book's earnings too, a small slice at a time, so the book runs without anyone topping a wallet up.
LOOM stands on one side of the pool, so a fall in LOOM is a fall in the book's value, and the position buys LOOM on the way down and sells it on the way up. Against holding the two assets, a liquidity position gives up value when the price moves a long way in either direction; the fees are the pay for that, and they are not guaranteed to cover it. The idle LOOM is simply held.
The desk keeps principal and earnings apart. Principal is what may be placed; earnings are the fees the position has paid, collected on their own. When a position is unwound, for a move from one pool to another, everything that comes back is booked as principal in the same transaction, whether it is worth more or less than went in. A gain on the way out stays in the book; a loss is a loss of principal the book carries. Earnings become principal through the desk's own distribution, which sends half through the rewards contract as an epoch of the book's own and straight back; nobody else is paid by it. No number on the site marks the position against principal; the book value shown is the position at the current price plus what is idle, and it is labelled as such.
The fair objection to all of this is that a fund could run the same strategy without a token: take deposits, issue shares, pay out the fees. Ladders are that version, each person with a position of their own, and they need no token at all. So the token has to earn its place, and here is the case, with what it cannot do said as plainly as what it can.
The capital is permanent, and raised without a raise. An open-ended fund's capital is redeemable: depositors have to be persuaded to arrive, and they leave in the first bad week, usually the week the book would most want to keep its positions. A closed-ended fund solves that too, by raising once and locking the capital in, so permanence is not unique to this design and it would be wrong to claim otherwise. What the fee adds is that there is no raise at all: no allocation, no cap table, no minimum round, no investors to select. Trading itself capitalises the book, and nothing can withdraw it, holders included. It only grows, or is placed in pools.
Who funds it and who owns it. Plainly: the book is funded by trading flow and owned by holders. Those are not always the same people. Someone who buys and sells within the week pays 4% into a book they stop earning from when they leave, while someone who buys once and keeps holding pays the same once and earns from it indefinitely. That transfer is the mechanism, not a side effect of it, and this is built for the second person. It is why holding costs nothing, why transfers between wallets are free, and why the buyback runs on its own, at no set time, rather than being something you have to be present for.
"But it is split between everyone." The number of holders does not change what the buyback does for any holder. What the book earns buys LOOM on the chart whether there are a hundred holders or ten thousand, and the bid it adds is set by one ratio: what the book earns, times the book's size over the token's market value. The holder count is not in that anywhere. A new holder does not dilute the others: they paid 4% into the book on the way in, and the book is what pays everyone. What the objection really notices is that a young book makes a small pot, and that is true: a book of a few thousand dollars earns a few dollars a day, and a small stake's share of that is cents. It is a fair rate on a small base, not a small rate. So judge it as a rate and not as a pile. Every trade of LOOM in either direction makes the book larger, all of everything earned is put back into it, and a tenth of every fee paid in the pools anyone opened on our hook arrives on top. The size of the pot is a statement about the date; the ratio of book to market value is the number to watch.
A ladder is not the token's competitor. A ladder asks you to bring capital, choose a pool, choose a range and re-range it when the price leaves. The token asks you to hold. Most people want the second, and the ones who want the first can do it here or on Uniswap directly, which is said elsewhere in this paper because it is true.
The limit. This strategy has a ceiling. A pool only earns what is traded through it, and the book's pool charges at least 4%, so routers send it a trade only when it still fills best after that fee, and much of what it sees is arbitrage. A deeper pool does not earn more from the same flow: the more the book holds in it, the less each dollar earns. What the book earns therefore follows how much LOOM trades and moves, not a number the protocol can raise by wishing. The supply of one billion LOOM says nothing about that ceiling; it is a denomination, not a capacity.
Since 24 September 2026 nothing the book earns is paid out to holders. From 30 September 2026 the developer keeps 20% of what the book's LOOM/ETH position earns, for development and maintenance: it is taken as ETH, before the rest is booked. The rest of what the book earns is put back into the book, and on its way in, part of it buys LOOM in its main pool on Pons, on the chart, because the pool needs LOOM beside its ETH. The LOOM bought is not burned and not held for sale: it goes into the pool as liquidity, or waits on the desk to be paired. It happens round after round, at no set time, in sizes small enough not to move the price against the book. The Buyback page lists every purchase with its transaction.
The protocol never sells LOOM. The only LOOM that leaves the book is what its position sells as the price rises, which is what liquidity does, and it buys it back as the price falls. LOOM that arrives as a ladder's cut is kept as it is.
What a buyback does for a holder is a bid on the chart and a deeper pool, not an income. Its size is set by what the book earns, and that by how much LOOM trades. The daily payouts in USDG that ran until 24 September are over; what they left unclaimed can still be claimed on the Rewards page within thirty days of each payout.
The marketplace shows everything that trades on Robinhood Chain, not a list we chose. A program of ours runs beside our own node and reads every swap on the chain as it happens, on Uniswap v3, on v4 and on the other exchanges built the same way. From those swaps it works out, for every token and pool, the price, the volume, the fees traders paid, the depth, one-minute candles for the charts, and what a pool actually keeps of its fees once the price has moved against it. Prices and the last candle on the site are pushed from that feed about once a second; nothing on the page is a number we typed in. The header search finds any token that traded in the last day by symbol, name or contract address.
Two things are done about fakes. Volume that comes from almost no distinct traders is somebody trading with themselves, and a token like that cannot top a list. And the busiest tokens are put through a sell test: in a simulation, from an address nobody has whitelisted, a little is bought and sold straight back. A token a stranger cannot sell is marked and is not listed; it can only be found by pasting its exact address. A token is called established only when its pool has traded on most days for two weeks, holds real depth, and keeps passing that test. None of this is a guarantee, and nothing on the site is advice.
Every listed tokenized stock on Robinhood Chain that has a USDG pool can be bought or sold on the site. Prices shown are the live pool mid price, read from the chain every few seconds. A quote comes from Uniswap's QuoterV2 on chain and includes the pool's own fee. Our desk adds no fee of its own. The trade settles through the MarketDesk contract in one transaction: it takes the USDG, swaps, and delivers the stock to your wallet, or the reverse. If the pool cannot meet your minimum the whole trade reverts and only gas is spent. Approvals are for the exact amount of one trade.
The site never routes through an aggregator and never holds your funds. The desk contract keeps nothing between trades; an unspent remainder is refunded with its share of the fee.
The Playground opens positions with play money in real pools: nothing on chain, the same prices, every account starting with $1,000, and from 6 October 2026 the leaderboard ranks those accounts beside the wallets, nobody shown by account.
Earn opened a position in one of our stock pools for a fee of 1%, minted straight to the user's wallet. It took no new positions after 20 September 2026, when the book left those pools, and its page was removed on 9 October 2026. A position opened through it is an NFT its owner holds: it can still be closed through the Earn desk, which has no power over it, or on Uniswap directly.
A ladder is one deposit spread over many narrow price ranges, called rungs, in any pool on the chain: ours or anyone's, Uniswap v3 or v4, quoted in USDG or in ETH. You draw a band on the token's chart, pick a shape (even, heaviest near the price, heaviest at the edges, half even and half at the edges, or from 6 October 2026 one you paint, a height for each rung) and the number of rungs, up to forty. Every rung is one-sided. Rungs under the price hold the quote asset and buy the token as it falls into them; rungs over the price hold the token and sell it as it rises into them. So nothing is swapped to open a ladder, and which rungs get built follows from what you put in: only the quote asset builds the half under the price, only the token builds the half over it, both build the whole band. The chart shows the rungs that will be built filled in and the ones that will stay empty as outlines, before you sign.
Someone holding one asset can still build the whole band. A second contract, LoomZap, swaps part of what they brought for the other asset in the very pool the ladder is for and then builds every rung, in one transaction, with the ladder belonging to them from the first moment. Because the swap moves the price, the amounts for each rung are worked out after it, from what is really in hand and where the price really is; a rung the price has reached is left out. The least the swap may return is taken from the chain's own quoter, which already includes whatever the pool's hook takes, so the slippage a user sets covers price movement and nothing else. LoomZap has no owner and no settings and holds nothing between calls. A ladder can also be partly withdrawn: a chosen share of every rung comes out and the rest keeps working.
The LoomLadder contract holds the rungs' position NFTs for their owner, because that is what makes a fee on earnings possible. The fee is 5% of the trading fees a ladder earns, taken when fees are collected, rounded in the book's favour by at most one unit, and capped at 5% in the code. Ladders opened from 22 September 2026 also pay 0.25% of what is put in when they are opened, part of which credits the wallet that referred or was copied. Ladders opened from 19 September 2026 (a second LoomLadder contract; earlier ladders stay in the first, on its terms) and before 30 September 2026 also pay the same share of the result when liquidity is taken out at a gain (ladders opened from 30 September 2026 pay nothing of a gain): the contract records what went in, counted in the pair's money side (USDG, else ETH or WETH, else LOOM) at the pool's price of that moment, or exactly what was paid for a ladder built from one asset; at a close or a partial withdraw it values what comes out the same way, and takes the share of the difference when it is positive. A loss pays nothing. Ladders opened from 21 September 2026 (a third contract, the same way) pay every cut as USDG whatever the pool: the cut comes off the money side, a slice of the token side is sold in the ladder's own pool when that is short, and ETH is sold for USDG along a route the owner sets (from 29 September 2026 a cut that falls in LOOM is never sold, and one too small to sell at a fair price is taken as it is), all in the user's transaction, at the pool's price less a bound (a sale the pool will not make at that price is not made, and that part is taken in kind and sold by the keeper). Taking the position NFTs out as they are, which closes nothing and so leaves no result to share, pays the same 5% (3.5% for holders) of the ladder's whole value at that moment, settled from the fees waiting in the rungs and then from a slice of the rungs. Pairs with no money side cannot hold a ladder there. A wallet with at least 100,000 LOOM staked for a week pays 3.5%; a stake comes back whenever it has served its week. Of the 5%, 4.3 goes to the liquidity book and 0.7 to development; the development part comes out of the fee, never on top of it, can be lowered to zero and is capped at 1 in the code. The book's share paid in USDG goes straight to the book, where it is earnings like any other and buys LOOM; the share paid in other tokens is sold for USDG first, except LOOM, which is never sold and is kept as it is. A ladder's owner can have its fees put back into its rungs (compound), by hand or, once they switch it on, by the keeper once a day: the fee comes off as on any collect, nothing is swapped, what no rung can take is sent to the owner, and what is added is recorded as put in, so it is not counted as a gain later. The switch gives the keeper that one action on that one ladder and nothing else.
Ladders opened from 25 September 2026 (a fourth LoomLadder contract, the same way as before: earlier ladders stay where they were opened, on their terms) can be given rules that the keeper keeps for them. The owner sets them in one transaction, packed in one word, and can change or clear them at any time. There are three, and the contract itself, not the keeper, checks every one before it lets anything happen. Re-lay: once the price has left every rung on a side the owner named (up, down, or either), or, when the owner asked it to follow the price, once it has drifted a set number of ticks from the middle of the rungs on such a side while still inside them, and the fees the ladder has earned since the last re-lay are at least the share of it the owner asked for, every rung comes out and the rungs are laid again around the price, in the width, count and shape the owner set; what is held is sold in the pool only as far as the new rungs' two sides want it (a small mismatch is left alone), at no worse than the pool's price less a bound, and what the new rungs cannot take goes to the owner's wallet. A re-lay charges no opening fee and takes no share of a gain: the entry is carried over, grown by the fees folded in and shrunk by what came back. Exit: once what the rungs hold is worth a take-profit share more than what went in, or a stop-loss share less, at the pool's price of that moment, the ladder is closed to its owner as a close would, and paid as USDG where the owner asked for that and the pools give a fair price; what they will not take at one is handed over as it is. Harvest: once the fees waiting are worth what the owner named, they are collected, sold for USDG the same way and sent to the owner. The owner may run each of the three by hand at any time, rules or no rules.
The keeper's powers over a ladder end there, in the code: it may re-lay or collect on one ladder at most once in twenty minutes (an exit at the owner's take profit or stop loss, which ends the ladder, does not wait on ladders opened from 2 October 2026), every sale it causes has a floor of 3% under the pool's price whatever the owner's own slippage allows, a re-lay whose swap would leave the ladder worth less than 95% of what it held is refused, and nothing it does can send anything anywhere but into the ladder's own rungs, to the owner, or to the book as the usual cut. It cannot open, add to, or take the positions of a ladder, cannot set anyone's rules, and cannot act on a ladder that has none. The gas is the owner's: a second contract, PilotGas, is the ladder's pilot, owners put ETH into it, the keeper runs every action through it, and the gas the action burnt (at no more than a gwei a unit, plus a fixed allowance for the transaction around it) is taken from the owner's ETH there and paid to the keeper; an owner with nothing in the tank is not served, and an owner may take the ETH back at any time. A compromised keeper could still re-lay or close a ladder at a poor moment within those bounds, and a keeper that is down does nothing at all; the rules are a service, not a guarantee. Following the price is what makes a ladder a market maker rather than a range order: the band is laid again around the price before the price can leave it, so the price stays near the middle where the rungs earn, and the bigger orders at the edges keep meeting the swings. The fourth shape, hybrid, is made for it: half of the money laid even across the band, a floor of liquidity in every rung for the fees, and half weighted to the edges for the swings. The builder offers named models, each a band, a shape and a set of rules that belong together and stay editable: Fee max (a tight even band that follows the price both ways), Precision hybrid (the hybrid shape over a wider band, following the price, re-laid once fees cover the move), Swing (wide, weighted to the edges, left alone, with a take profit once the rungs have sold their way up), Accumulate (a band under the price that buys on the way down and then holds what it bought, with a stop loss), and Distribute (a band over the price that sells into strength and pays out as USDG once the price has gone up through it). The lab runs any of them over a pool's past hourly candles and volume against simply holding, with the pool's liquidity as it stands today: a way to compare choices on the same history, not a forecast. The review of the contract change, with what it found and fixed, is in the repository as docs/autopilot-audit.md. On the current ladder the owner may set that gap, from a minute to two hours.
A limit order is a ladder with one job. A limit sell holds the token in rungs over the price and sells it as the price rises through them; a limit buy holds ETH, USDG or the pool's other quote in rungs under the price and buys the token as the price falls through them. Nothing is swapped when it is placed, nothing happens until the price gets there, and while it fills it earns the pool's swap fee, like any rung. One price is one rung, as narrow as the pool's steps allow; two prices make a range of up to forty. A part fill is not final: a rung trades both ways, so if the price turns back inside the order the rungs undo what they did, and the owner keeps the pool's fees of both passes. Only the whole order can be made final, by a fourth rule the contract checks itself: once the price has passed all the way through, the keeper closes the order and pays its owner what it holds, as it is. An order costs what every ladder costs: 0.25% to place and the share of the fees it earns. Nothing is taken of a gain.
Ladders opened from 6 October 2026 (a fifth LoomLadder contract; earlier ladders stay where they were opened, on their terms) can be handed on or run by someone else. Give moves a ladder to another wallet, rungs and fees waiting together; on ladders opened from 30 October 2026 its rules end with it; it is final, and any delegate is dropped with it. Delegate names one wallet and what it may do, as four permissions the owner sums: add, remove, collect, rules. A delegate acts on the ladder but is never paid by it: every collect, close, partial withdraw or NFT withdrawal it sends must go to the owner, and the contract refuses any other destination; what a delegate adds is its own money. The owner can replace or remove the delegate at any time, and only the owner can give or delegate. The housekeeping the contract already had (returning positions, rescuing stray tokens, routes) moved into a library in the same step, because the contract had reached the chain's size limit.
Holding positions for people must never become a trap, so the exits were designed before the entry. The owner of a ladder can take its position NFTs into their own wallet at any time, also while new ladders are paused; fees are settled first when that works, and when it does not (a hook that reverts, a token that refuses a transfer) the NFTs leave anyway. Every exit lets the owner name where the proceeds go. The contract's owner can set the fee under the cap, pause new ladders, and return things sent to the contract by mistake. It can also send a ladder's positions back, but only to that ladder's own owner, and it cannot move what is owed to a user anywhere but to that user. It has no way to take a position. Your profile page lists every ladder you hold with its value, the fees waiting in it, a bar showing which rungs the price has crossed, and what you have done before.
A ladder carries the same risks as any liquidity position. If the price falls through your bids you end up holding the token, bought on the way down; if it rises through your offers you have sold on the way up. Fees are the pay for that, and they are not guaranteed to cover it. The contract was reviewed by us and tested against live pools. ContractWolf audited the ladder contracts: its report names the contracts new ladders open on and marks all 17 findings resolved.
A new token often trades only in its launchpad's pool, where the launchpad's hook keeps the whole fee and a liquidity provider earns nothing. A second hook of ours, LoomOpenHook, lets anyone open a pool for any token against USDG or ETH that does pay its liquidity. The creator picks a flat swap fee, 1% or 3%, and pays about a dollar (1 USDG or 0.0004 ETH) once; after that anyone can provide liquidity in it. A trader pays exactly that fee. A tenth of the base fee is LoomDesk's share, always taken in the quote it is paired with and never in the token; the same 0.7-in-5 proportion of the share goes to development, inside it. The share is capped at three tenths of the base fee in the code. The pool's liquidity providers keep the rest, less a royalty to its creator (up to three tenths of the base fee) and a burn on sells (up to two tenths) when the creator set them at opening on LoomBlocksHook. A share that cannot be paid out is skipped for that trade; it can never make a trade fail.
Since 30 September 2026 a pool comes in two kinds, chosen at opening and fixed from then on. The first takes any range, ladders and limit orders included, and pays its fee in the token the trader pays with; its creator picks a base fee from the tiers on offer and may add two things: a volatility fee (the pool counts its own price moves, and a swap pays half of the count over 3%, falling back over seconds) and a launch fee, from up to 50% down to the base in a straight line over a minute to a day. The second kind, on a hook of its own, LoomFullHook, takes one full-range position and nothing narrower, and pays every fee in the quote, ETH or USDG, whichever way the swap goes. It also charges arbitrage for the gap it closes: with the token's Uniswap v3 pool against the same quote as its reference, a swap that moves the pool toward that price across a gap wider than 3% (or twice the base fee) pays 1% plus six tenths of the gap, up to 40%, the higher of two readings of the reference, its price now and its price averaged over the last seconds. Everything over the base fee is the liquidity's; LoomDesk's share is a tenth of the base fee alone. Without a reference the second kind charges its base fee and nothing more.
The hook acts when a pool is created and around swaps, and nowhere else: that is fixed by its address and cannot be changed. It has no say over adding or removing liquidity, so it can never hold anyone's funds in a pool. A pool can only be opened through the hook itself, at the price of the token's existing market when it has one in the same asset, checked to within 2% by the contract, because liquidity placed at a wrong price is a gift to the first arbitrageur. The owner can change the toll under its cap, change the creation fee under its cap, offer other fee tiers, and pause new pools. It has no power over a pool that exists.
What such a pool earns depends on who trades in it, and that is mostly arbitrage: whenever the token's main market moves by more than the pool's fee, someone trades the pool back into line and pays the fee to do it. Routers also send ordinary trades when the pool's price is better. A new pool starts with neither, and nothing guarantees either. Arbitrage only trades against liquidity after the price has moved, so it is the flow that costs a provider the most, and the fee is the pay for it. On a token that moves a lot the fee can more than cover it. It can also fall short.
From 14 October 2026. A ladder is a position with one owner. A Weave is one full-range position in a Uniswap v4 pool, held by a contract nobody owns, whose ERC20 is a share of it. Anyone makes one for any two tokens at any fee tier, and the first mint opens the pool when none exists. Shares are by liquidity, never by price: a mint buys the share of the supply that it adds to the position, and the fees waiting beside the position are collected and put back first, so a mint buys none of them. Redeem for both tokens, for one, or for plain ETH; mint with ETH alone along the route finder's pools.
Fees go back into the position on every mint and redeem. Anyone may compound at any time, and whoever brings the fees in is paid a tenth of LoomDesk's cut for it, so no keeper is needed. LoomDesk takes 0.3% of the fees, in kind, to development (5% on the Weaves of the factories before v6, made on 14 October 2026): nothing on what goes in or out, no share of a gain. A Weave earns by its part of the pool's in-range liquidity, which the page shows beside its worth, and a small full-range position beside concentrated makers earns little. The first supply is the position's worth in the quote, so a share starts as one USDG or one ETH. A billionth of a share is burned, so the position can never be emptied and the share price never reset. Every Weave answers the metadata calls launchpad tokens answer, with its picture and metadata pinned on IPFS and recorded on the factory by the one address with that power.
The share trades on a market of its own, the float, a pool on a LoomDesk hook that keeps no liquidity. It holds a float of shares and quote as the pool manager's own claims and fills every swap from it at what a share holds, read from the Weave at that moment, less a spread of up to 1% set at opening. Worth is read twice, now and as it was in an earlier block; a buy of shares pays the higher, a sale takes the lower, and the two must agree within a twentieth, so a push of the Weave's pool inside one transaction cannot take from the float. When the shares fall under two fifths or over three fifths of the float by value, anyone refills it to half through the Weave and is paid 0.2% of what moved. The float is owned in units pro rata, earns the spread, and comes out at any time. LoomDesk takes a tenth of the spread. A buy on any terminal and a mint on the page cost the same, to the spread. Contracts: LoomWeaveFactory 0x58eb43d99e0Ed3530e54039F37C8aEE58476a900 (v6, 0.3%; v5 0x543D85B35Eb0DAFE6781faf92c621F46Aa6f0152 and v4 0x45F0a9cad579b4F635EDfD03bc099420263088C5, at 5%, still listed), LoomWeaveZap 0x17b07EAe901850C4d976C8b96Fc04d3099e8AA1C, LoomWeaveFloat 0x19e65E56b16c62a67014faace56863E909Cb2888. The pins are recorded by the keeper's wallet, the factory's curator.
A basket, from the same day, is several Weaves as one token: two to eight of them, a fixed number of shares of each per basket share, set once by whoever makes it, the name and symbol theirs. A mint pulls every Weave's part from the minter and a redeem gives it back, rounding up on the way in and down on the way out, so the basket never holds less than it owes. No price is read inside it, nothing is traded inside it, nobody rebalances it, and nobody owns it: the mix by value moves with the pools' prices, and each Weave keeps putting its pool's fees back into its position. A zap mints a basket from ETH alone, one route per Weave, and redeems it to one token every Weave has as a side. A basket's market is the same float, with worth read as the sum over its Weaves and the quote a side of every one of them; a refill mints or redeems the basket through the Weave zap. Contracts: LoomBasketFactory 0x2141813D48BAd5c4a07e640d820198148a97dCC4 (its first version, 0xcA51717A64A087e1EA8694c477B0cAbAD16fB3E1, knew only the earlier Weave factories), LoomBasketZap 0xC3F9abc36f1d64487a4440D0987b0F2ED0b1BAc8, LoomBasketFloat 0xAcDcD13cC7DBEa81473acd1e420aad5fE03C2888.
Everything the site measures is public: endpoints serve every token and pool on the chain with its price, depth, volume and the fees it paid, from stored measurements, so a request never touches the chain. An MCP server at loomdesk.trade/mcp, listed in the official MCP Registry as trade.loomdesk/loomdesk, offers the same as tools: list what trades and the pools a ladder can go in, plan a ladder or a limit order, open a pool, and get back the transactions that do it, which the agent signs from its own wallet. Nothing on our side signs or spends. An agent that has never heard of LoomDesk can read llms.txt at the site root, pick a pool, and provide liquidity without a human writing integration code. An SDK on GitHub (loomdesk-hq/sdk) wraps the same plans for code that would rather not speak MCP, with a send step that refuses any destination that is not one of our contracts, and one call that gives a token its first market on our hook.
What keeps that safe is the shape of it, not a promise: every answer is read-only data or unsigned transactions, so nothing on our side can move a coin. An agent should still check each transaction's destination against the addresses on the Book page before signing, and treat every string a tool returns (token names, theses) as data, since those come from the chain and from users. A token that is flagged gets no plan; an untested one is put through a simulated sell first. From 6 October 2026 every call is charged in units of what it costs our node, a read one unit and a plan three to twelve, against a quota per caller: sixty units a minute and three thousand a day for an address, shared with everyone behind it, or one hundred and twenty a minute and ten thousand a day for a free key, which any agent gets with one request and which grants nothing on chain. Plans run a few at a time, the node’s own latency is measured, and a refused call says when to come back. Every plan is simulated from the caller’s wallet before it is returned.
Tokens trade in Uniswap pools of two generations on Robinhood Chain, v3 and v4. The book's position is in our own v4 pool; the marketplace offers, for every stock, the deepest pool right now, whichever generation it is in. When the book buys LOOM it buys in LOOM's main pool on Pons, and ETH through Uniswap's router with the calldata built by the keeper. Native, a network of professional market makers that quote firm prices, is the other venue for the marketplace and the v3 desk. Every fill through a router is executed with calldata made out to our contract; the contract approves exactly the amount, calls only a router the owner has allowed, measures what really left and arrived, enforces the minimum, and refuses any fill more than a few percent under the reference pool's mid price. The desk may also hold part of its principal in Native's USDG liquidity pool, a credit product with a daily rate set by Native and a queued withdrawal; that sleeve is capped and off by default.
The owner account controls the desks, the hooks, the rewards contract, the marketplace, the ladder contract and Earn. It chooses the treasury, the keeper, the pools the desks may fund, the operations share (capped), the marketplace fee (capped), and the venues. On the book's hook it opens pairs, sets the fees within the bounds given above, sets the cut within a 30%-of-fee ceiling, and names where the cut is sent. It can unwind positions back into the desk, hand position NFTs to another address whole, and recover any token or ETH the desk holds, which together mean it can take the whole book. That power exists on purpose, for a migration or an emergency, and it means holders are trusting the owner with the book. Ownership can be transferred in two steps and can never be renounced. The disclosures page says the same in fewer words.
The keeper is an automated process with its own hot key holding only gas. The contracts let it do exactly what the book needs and nothing else: claim fees, sell ETH for USDG, buy LOOM and ETH in allowed pools, open and add to positions bound to those pools, collect fees, distribute, and publish the book's own epochs. Every trade it makes needs a minimum the contract enforces, and a venue fill is checked against the pool price on chain. It can unwind a position only once the price has left its range, and what comes back stays in the desk as principal. It cannot spend earnings, cannot move principal out of the desk, cannot change any setting, and cannot pay anyone except through a published root. If it is compromised, the worst it can do is trade principal at a bad price within those bounds. A second key, the price service's, may only poke the hook to take a reading and switch a pair to the flat fee; it holds gas and nothing else. With ladders the keeper is the pilot: it may compound a ladder whose owner asked, and re-lay, exit, harvest or close a filled limit order only as that ladder's own rules say, once in twenty minutes, at no worse than 3% under the price, and never to anyone but the owner (see Ladders).
After the token graduates to its pool, the trading fee accrues in Pons' hook and only Pons' own operator moves it to where the desk can claim it. Pons' admin can also redirect a token's fee income to another address after a three-day notice that nobody else can cancel. The keeper watches both and raises an alert. This is a dependence we accept by launching on Pons, and it is disclosed.
The contracts, the keeper and the site were reviewed in six rounds, the last after the Uniswap v4 leg and Earn were added, and everything found was fixed and pinned by a test. Those reviews were internal: each round was done by a reviewer working without the previous round's notes, which catches more than one pass does, but none of them was an outside firm and none was paid to disagree. That last round added one guard worth naming: every trade the keeper makes in a pool must land within a few percent of the pool's own mid price, so even a stolen keeper key cannot give principal away through a bad minimum. The hook had its own review, written up in the repository, before and after the cut was added: 37 unit and fuzz tests at 20,000 random cases per property across every price Uniswap can represent, any feed answer, either token order and any decimals, and 10 tests against the real PoolManager on a copy of the chain with the real META token and feed. The properties that hold in every case: the hook never reverts, the fee stays inside its bounds, a wider gap never pays less, flow away from the reference always pays the base fee, the cut is bounded and lands on the desk with the hook holding nothing. The book's hook, LoomPairsHook, was reviewed the same way in both its versions: for the second, a security review and an economics review each ran their own attacks against the real PoolManager on a copy of the chain, and what they found changed the design before it was built (full-range liquidity only, claims in place of donations, a floor under the fee band); it carries 21 unit and fuzz tests at 10,000 random cases per property, 22 tests against a copy of the live chain with those attacks among them, and the whole move of the book was rehearsed on a copy of the chain before it was made. Its third version, live since 9 October 2026, is the second with one bound lowered (the least fee, from 5% to 4%): it passed the same 21 tests and was not reviewed again. At the time of writing the contracts carry about 130 unit and invariant tests and 50 tests against a copy of the live chain; the keeper 102 unit and 39 integration tests against a local chain and a real database; the site 30 end-to-end tests that drive every transaction flow in a browser with a scripted wallet and check the result on chain. The invariant tests fuzz the desk with every keeper, owner and market action mixed together and check that principal is always held, that only the distribution ever moves earnings, and that the operations cut is exactly its configured share.
Before launch the whole path was run twice on Robinhood Chain itself with real money and an unrelated wallet: a launch on Pons, buys on the curve, the fee claim, the stock purchase, a position, a deposit into Native's pool, the daily distribution, the snapshot, the published root and the payout to a holder's wallet, once paired with ETH and once with USDG, and an Earn position opened, collected and closed with real USDG. Two keeper bugs and one contract edge were found by those rehearsals and fixed. Every review named here was our own; no outside firm has reviewed any of it.
Market. LOOM has no floor and can lose most or all of its value, and the book does not protect against that: half of it is LOOM, and its position buys more as the price falls. ETH moves too. Tokenized stock prices move with their markets and can fall a long way.
Liquidity. Pools on Robinhood Chain can be thin. A large trade moves the price; a minimum not met reverts the trade. A swap in the book's pool pays at least 4%, and up to 40% when it closes a wide gap, so selling there after a large move costs more than selling in LOOM's main pool.
Flow. A pool only earns what is traded through it, and routers send a trade wherever it fills best. The hook's fair price rests on Chainlink's ETH feed and on LOOM's pool on Pons; when either cannot be read the pool falls back to a flat fee and gives more back to arbitrage, as any fixed-fee pool does.
Counterparty. Tokenized stocks are separate tokens with their own issuers and terms, and an issuer can pause or freeze them. USDG can freeze addresses. Native's pool lends to market makers. Pons controls the fee rail after graduation.
Operational. The owner account controls everything. One keeper key runs the book. One server runs the site and the keeper, and one node of our own serves them. Each has been hardened, none is redundant.
Legal. The status of tokens like this one, and of tokenized stocks, is unsettled and differs by country. You are responsible for whether you may use this where you live. Nothing here is investment advice.
Handing on. Sending a ladder to another wallet is final, and the site cannot tell a typo from a friend. A delegate is never paid, but one given Remove can close your ladder when it likes, to you, and one given Rules can set its autopilot and spend your gas tank on it. Give each only to something you would let do that.
Principal: money the desk may place into liquidity; fee receipts less operations, and what comes back from positions up to what went in. Earnings: everything the desk holds above principal; what the buyback spends. Epoch: one published distribution, a Merkle root on chain plus its list; today the book's own, in the past a day's payout to holders. Curve: the Pons bonding curve the token trades on before it graduates to a Uniswap pool. Graduation: the point at which Pons moves the token's liquidity from the curve into a pool. Range: the price band a concentrated position earns in. Basis: what a position or pool deposit is carried at. Hook: a contract a Uniswap v4 pool calls around each swap; ours sets the fee and takes the cut. Gap: how far a pool's price stands from the market's. Capture: the part of a fee above the plain 4%, paid by a swap that closes a gap. Cut: the tenth of the plain fee that goes to the book.