asset, amount
What you are giving up, exactly. It stays in your own wallet under a permit that only the settlement contract can spend, and only inside a closing ring.
settlement layer / robinhood chain
Knot settles in rings, not pairs. You sign what you hold and what you will accept, and nothing moves. A solver goes looking for the closed loop that makes six strangers whole at once. The loop clears in a single transaction, or it never happened.
the primitive
Mathematicians call it a Brunnian link. Pull any pair apart and they come away freely, because no pair was ever joined. Pull on the set and it holds. Cut one single ring and all six fall open in your hand, none of them damaged.
woven
Every ring passes over one neighbour and under the other. Nothing is glued, nothing is tied, and no ring touches the ring across from it. The strength is in the arrangement, not in any of the parts.
Knot is that shape written down as a settlement rule. Six people, no pair of whom has anything to offer each other, and one closed ring in which every one of them ends up with exactly what they asked for.
anatomy
That is the whole object. It costs nothing to write, it touches no contract, and it sits in the open book until a solver finds a use for it or it goes cold.
What you are giving up, exactly. It stays in your own wallet under a permit that only the settlement contract can spend, and only inside a closing ring.
The asset you want back and the least you will take for it. Not a price, not a limit against a book. A floor the ring has to clear for you or it does not close.
The moment the strand goes cold on its own. A knot inherits the earliest deadline of its members, so every ring expires with its most impatient strand.
A strand can be woven into one ring and never a second. Two solvers racing for the same strand is not a conflict. The loser reverts, and it costs you nothing.
// what your wallet signs. no contract call, no gas. struct Strand { address owner; address haveAsset; uint256 haveAmount; address wantAsset; uint256 wantFloor; uint64 deadline; uint256 nonce; }
eip-712 typed data, one signature per strand
// what a solver submits. one call, every leg inside it. function weave( Strand[] calldata ring, bytes[] calldata signatures ) external; // reverts unless, for every i: // balance(ring[i].owner, wantAsset) rises // by at least ring[i].wantFloor, this block.
illustrative shape, not a deployed interface
No pool deposit. No escrow account. No approval to a router that lives forever. Until a ring closes around your strand, the protocol has never held a single unit of anything you own.
how a knot forms
You sign a strand off chain. It is free, it is gasless, and you can revoke it at any moment before it is woven. Signing is not a trade. It is a statement about what you would accept.
Solvers read the open book and search it for closed rings up to the depth cap. This is a graph problem, not a pricing problem. Whoever finds the ring that fills the most strands submits it.
The ring executes as one call. Every leg checks its own floor, in its own asset, in the same block. One leg short by one unit and all six legs revert together.
Or no ring is found in time. The strand goes cold, the permit lapses, and you keep everything you started with. In the mark, that is the ring cut from obsidian.
the console
Six assets on the corners, twelve strands drawn between them, each one pointing from what somebody holds to what they want. At depth two a strand only clears if somebody wants precisely the mirror of it. Raise the cap and the loops get longer, stranger, and far more likely to exist.
Twelve sample strands, generated in this browser and solved on this page. Illustration of the mechanism, not live network data and not a performance claim.
Depth is the entire product. At depth two, Knot is an ordinary swap and every exchange on earth already does it. Depth three is where the coincidence of wants stops needing a coincidence. By depth six the person holding the thing you want has never heard of you, wants nothing you own, and will never know your name. The ring still closes, and you are still made whole to the floor you signed.
the open book
There is no private order flow to sell, because there is no private order flow. Solvers all read the same book, which is the only way competing on ring quality can mean anything.
| strand | have | want | woven into | state |
|---|
Sample rows drawn to show the shape of the book. No live strands exist yet.
the disc
The glass disc around the mark is the block boundary. Six invariants hold inside it, one for each ring.
The solver fee is a fixed share of the slack, the surplus left in a ring once every floor has been cleared. That share is not set yet, and no number for it appears anywhere on this page.
the honest part
That is the price of refusing to run a pool. Knot cannot quote you. There is no inventory behind it, no market maker on the other side, nothing standing ready to take the trade because it has to. If no ring forms before your strand expires, nothing happens at all. No fill, no partial, no fee, no position, no exposure. You are exactly where you started, minus the time you spent waiting.
So the rule is simple. If you need a fill in the next second, go and pay a pool for the privilege. If you need the fill you actually asked for, sign a strand and let the graph go and find it.
proof of weave
One link, no account, nothing to install. It shows the whole ring: every leg, every floor, the slack and where the slack went. Anyone can re-run the ring against the chain and confirm it balances.
where it settles
A USDG native L2, an Arbitrum Orbit rollup, chain id 4663, fully EVM. A six leg ring is one transaction carrying six signatures and six balance checks, so the thing Knot needs most is cheap calldata and a block it can trust to land.
the token
No ticker has been chosen. No contract has been deployed. No supply has been set and no liquidity has been opened. When those exist they will appear on this page first, and anything claiming otherwise before then is not us.
order of work
questions
No. A book matches you against a counterparty who wants the mirror of your order. Knot never looks for your mirror. It looks for a loop that happens to contain you, and the other members of that loop may want nothing you hold.
A solver has no path to them. It proposes a ring and the contract executes it. Your permit can only be spent by the settlement contract, only inside a ring that clears your floor, and only in the block where every other leg clears too.
There is no ordering to exploit inside a ring, because a ring is a single call and every leg lands at once. A solver can only compete by finding a ring that fills more strands than the ring the last solver found.
The first one to land wins and spends the nonce. The second reverts on arrival, which is a wasted transaction for that solver and no cost at all to you.
Use a pool when you need certainty right now and are willing to pay for it. Knot is for the other case, where the fill matters more than the second it arrives in, and where the thing you are holding has no pool worth trading through.
Because a Brunnian link only exists at all thanks to the cut that frees it. That ring is the sever, the failure that is designed in rather than patched over. A settlement rule that cannot fail cleanly is a settlement rule that will eventually fail badly.