How it works.

Cowl is one contract on Robinhood Chain, CowlVault, an operator that runs batches, and this site. The contract holds everyone's ETH and Pons coins. What it records is a Merkle sum tree per token: each leaf is a position (key, token, amount, salt) where key is a one-time address only its owner can sign for.

Your keys

Your wallet signs one fixed message. Its hash becomes a spend key and a view key, here in the tab. Each new position gets a fresh one-time address derived from those, and a note encrypted to your view key so you can find it in the batch data. The same wallet always rebuilds the same book.

A sealed order

An order is the message a position's key signs: sell this much, buy that token, accept no less than this, before this time. The browser packs it with a random salt and encrypts it with drand's timelock to a round less than a minute out. The relay posts it to order(commitment, round, ciphertext) from its own wallet. The vault keeps only a hash chain over the batch's orders.

RuleWhat the contract checks
First orderPicks the closing round, 15 to 180 seconds out.
Later ordersSeal to that round or up to 30 seconds after it, and only while it is still in the future.
ClosingAnyone can close the batch once its last round has passed.
SettlingThe batch that settles must name the closed book's hash, within an hour, or anyone can freeze the vault.

Clearing

Once the round is out the operator opens every order. Each coin clears at one price: buyers and sellers cross at the mid read from the coin's curve or pool, and only the remainder trades, inside the same transaction, on the Pons curve or the v4 pool through the PoolManager. Orders the clearing price would fill below their limit are turned down first. The settling batch publishes what became of every order: filled, limit, unreadable, invalid, expired or no route.

What the contract enforces

What you trust

Between roots, the ledger is kept by the operator and every root is signed by the attester quorum. They can stall, and the freeze rules above cover that. They cannot move a position without its key's signature, and they cannot read your order before its round.

Addresses

CowlVaultNot deployed yet
Pons factory0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e
v4 PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951
drandquicknet, a round every 3 seconds