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.
| Rule | What the contract checks |
|---|---|
| First order | Picks the closing round, 15 to 180 seconds out. |
| Later orders | Seal to that round or up to 30 seconds after it, and only while it is still in the future. |
| Closing | Anyone can close the batch once its last round has passed. |
| Settling | The 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
- A token leaves only against a leaf of a signed root, once, to the address that leaf's key signed for.
- Every committed root sums to no more than the vault holds of that token.
- A deposit not credited within a day goes back to whoever made it.
- Every order on the book is folded into the hash the settling batch must name.
- An unanswered exit demand, a closed book left unsettled for an hour, or 48 hours without a batch freezes the vault, after which every position is withdrawable by its owner with a proof.
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
| CowlVault | Not deployed yet |
| Pons factory | 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e |
| v4 PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 |
| drand | quicknet, a round every 3 seconds |
Cowl
Open app
