weave is one coin in two places. the same name, the same supply on each side, launched in the same second on pump.fun and on pons. the problem with a coin in two places is that the two places drift. one side gets bought, the other does not, and within an hour there are two prices and two market caps for what is supposed to be one thing. the shuttle is the answer to that. it is a reserve on each side and a rule for spending it, and the rule is simple: sell where it is high, buy where it is low, until the two caps meet.
each side starts life on a bonding curve. the sol side on pump.fun and the rh side on pons both price the token against a constant product of two reserves: the tokens still on the curve, and the native asset paid in so far. price on a side is the native reserve divided by the token reserve. market cap on a side is that price, times the side's supply, times the native asset's dollar price. when a side graduates from its curve into a pool, the same math applies to the pool's reserves.
| symbol | meaning |
|---|---|
| x | tokens in the curve or pool on a side |
| y | native asset in the curve or pool on that side |
| k | x times y, constant across a trade with no fee |
| p | price on that side in native per token, y over x |
| S | supply on that side |
| u | dollar price of that side's native asset |
| cap | S times p times u |
| m | the mean of the two caps |
| p* | target price on a side, m over S times u |
tension is the gap between the two caps as a fraction of their mean, in basis points. positive tension means the rh side is higher. negative means the sol side is higher. the band is the amount of tension the shuttle tolerates. inside the band the shuttle rests. the band exists because every trade on a curve moves the price, and chasing a gap smaller than the movement a pick causes would only make noise.
a pick is sized so that each side lands on the mean. the loom does not guess an amount and check afterward. it reads the reserves on each side and solves for the trade.
on the high side the bobbin sells tokens into that side's curve. selling adds tokens to x and removes native from y. after the sell the price must equal p*, so the new token reserve is the square root of k over p*. the amount sold is that new reserve minus the old one.
on the low side the bobbin spends native to buy tokens from that side's curve. buying adds native to y and removes tokens from x. after the buy the price must equal p*, so the new native reserve is the square root of k times p*. the amount spent is that new reserve minus the old one.
the shuttle pushes both sides to the mean instead of pushing one side to match the other because it costs half as much. moving one cap all the way to the other means one large trade on one curve, and the price impact of a trade on a constant product curve grows with the square of its size. two trades of half the size, one on each curve, move each price half as far and pay a quarter of the impact each. the mean is also the only target that treats both sides the same, which is the point of the whole thing.
each bobbin was funded from its own launch and only from its own launch. when the sol side was created, a fixed share of the supply was sent to the sol bobbin as tokens, and a fixed share of the native raised on the curve was sent to it as sol. the rh side did the same with its supply and its eth. the share is the same on both sides and is shown on the landing page as bobbin share. nothing was bridged to seed a bobbin, so neither side started with an advantage.
the loom is the process that watches and acts. it subscribes to new blocks on both chains and reads both curves on every block. it keeps a running tension and a count of consecutive reads outside the band. when the count reaches two and the cooldown has passed, it builds both legs of a pick, signs them with the loom wallet on each chain, sends both, waits for both to confirm, reads both curves again, and records the pick with the tension before and after and both transaction hashes. if one leg fails, the other is not sent, and the attempt is recorded as a pick with the note one leg failed and no hashes. the loom's wallets are listed on the verify page.
over time the two bobbins' native balances drift apart, because picks sell on one chain and buy on the other. the loom does not bridge on every pick. it bridges the net difference in batches when the difference crosses a fixed share of the smaller balance, and records each batch as a pick with the note bridge and one transaction hash per chain. the bobbin tokens never move across chains. the two token supplies are separate and stay separate.
| key | value |
|---|---|
| band | |
| pick cap | |
| cooldown | |
| bobbin share | |
| launched |
a price index can lag. the site shows the source and the age of every read so a stale number is visible as stale.
a chain can stall. if one chain stops producing blocks the loom stops picking, because a pick needs both legs.
a bobbin can run dry. the bobbins panel shows how much of each is left, and when one is empty the shuttle can only act in one direction on that side.
the band can be too tight. if picks fire and the tension does not settle, the band is narrower than the impact of a pick, and the loom widens the band by half and records the change as a pick with the note band widened.
| term | meaning |
|---|---|
| weave | the coin, and the project. |
| the sol side | the pump.fun token on Solana. |
| the rh side | the pons token on Robinhood Chain. |
| the shuttle | the mechanism that holds both market caps level. It sells on whichever side is higher and buys on whichever side is lower. |
| a pick | one action by the shuttle. One pick is one sell on the high side and one buy on the low side, recorded as a pair of transactions. |
| the bobbin | the reserve held on each side that the shuttle trades from. There is a sol bobbin and an rh bobbin. |
| the tension | the current spread between the two market caps, in basis points. |
| the band | the amount of tension the shuttle allows before it picks. |
| the loom | the keeper process that reads both sides every block and fires picks. |
| the cloth | the history of readings, every fifteen seconds, both sides and the tension between them. |
| level | the state where the tension is inside the band. |