Docs.
Everything below is what the contract does, not what the site says about it. The contract is verified on the explorer and linked at the bottom.
What a Watery pool is
An ordinary Uniswap v4 pool on Robinhood Chain: one coin, one quote (ETH or USDG), no hook, and a swap fee of 0.30% or 1.00% that goes to the liquidity providers. Watery did not write the pool contract. Uniswap did, and Robinhood deployed it. Watery is the front door and the ledger.
Full range only. A full-range position never goes out of range, so it never sits idle and nobody has to manage ticks. It also means depth is spread thin around the current price compared to a concentrated position, which is the trade you make for never touching it again.
Pouring
A pour adds full-range liquidity to a pool in your name. Watery asks the PoolManager for the position under a salt that is your address, so your liquidity is a distinct position inside the singleton that no other pourer's actions can touch. Watery keeps a count of it; the singleton keeps the position.
You give two amounts. Watery sends the largest position both can cover at the pool's current price and never more than either: the ETH side is what you sent, and anything the pool cannot take comes back in the same transaction; the token side is pulled from your wallet straight into the PoolManager, so you approve Watery for the token first.
If the pool does not exist, your pour opens it at the price you give. Set it where the coin trades elsewhere, or the first trade will move it there for you at your expense.
Withdraw takes liquidity out with every fee it has earned, straight to the address you name. Collect takes only the fees. Both are open at all times.
Bounties
Anyone can post ETH on a pool with three numbers: a target, a deadline and a hold. The target is measured in liquidity, the same unit the singleton uses, so it means the same thing at any price; the site translates it into "this much of the quote on the quote side" at today's price. The deadline is 1 hour to 90 days out. The hold is 1 hour to 90 days.
Only Watery's own liquidity counts toward the target. Liquidity added to the pool through other routes is real depth, but Watery cannot attribute it, so it cannot pay it.
One live round per pool. While a round is open, anyone can add ETH to it. An open round can also be bumped: a new post that is at least twice as rich and no harder to fill replaces it on the spot, and the bumped round's funders refund. A round that has filled cannot be replaced until its hold is over.
A round that reaches its deadline unfilled refunds every funder what they put in, on request. Watery takes nothing from a bounty in any case.
The fill
The fill is the pour that takes Watery's liquidity in the pool to the target or past it. At that block the round records the total, and everyone with liquidity poured at that moment owns a share of the bounty in proportion to what they hold. Liquidity added after the fill earns swap fees like any other, but it has no share.
The hold
Withdraw any of the liquidity you held at the fill before the hold ends, and your share is forfeited. It does not go to Watery and it does not go back to the poster: the round's total shrinks by your share, so the people who stayed split the whole bounty between them. Liquidity you added after the fill can be withdrawn during the hold without penalty, as long as you keep at least what you held at the fill.
If every pourer leaves during the hold, the round has nobody to pay, and the funders can refund once the hold is over.
Claiming
Once the hold is over, claim on Positions. Claiming does not touch the liquidity; the liquidity stays in and keeps earning until you withdraw it. If you change your liquidity in a pool after a round you were part of has finished, Watery settles that round for you inside the same transaction, so nothing is left behind.
Launching
Launch mints a coin with a fixed supply of 1,000,000,000, opens its 0.30% ETH pool at the price your seed implies, and pours 80% of the supply against your seed ETH in your name. You keep the other 20%. The ETH you send beyond the fee and the seed becomes the opening bounty on that pool, with the target, deadline and hold you set. Your seed counts toward the target like any other pour, and is yours to withdraw.
The coin has no owner, no minter, no pause and no upgrade path. Its name, image, description and links are set at birth and never editable. The launch fee is 0.005 ETH and is the only fee on the desk.
Custody
- Every position lives in the Uniswap PoolManager, owned by the Watery contract under a salt that is the pourer's address. Only that pourer's calls can change it.
- Watery holds no pool tokens between transactions. A pour, withdraw, collect or swap settles inside the singleton's lock and every delta is zero by the time it closes.
- The only ETH Watery keeps is bounty escrow. It leaves through
claimandrefund, and nothing else. There is no sweep, no owner withdrawal. - The owner of the contract can change the launch fee and where it goes. Nothing else on the contract answers to an owner.
- Every write is guarded against re-entry, and the singleton's callback accepts calls from the PoolManager only.
Numbers
- Fee tiers: 0.30% (tick spacing 60) and 1.00% (tick spacing 200). All of it to pourers.
- Minimum bounty: 0.002 ETH. Minimum seed: 0.001 ETH. Launch fee: 0.005 ETH.
- Deadline: 1 hour to 90 days. Hold: 1 hour to 90 days.
- A bump needs at least 2× the open round's ETH and a target no higher.
- Watery's cut of a bounty, a fee, a fill or a swap: 0.
Contracts
Watery 0x400AC7b3097B48409FDAB57E046D51eC015b8523 CoinDeployer 0x6bcb90d77C10101DCa01f315D59838603B207fbe PoolManager 0x8366a39CC670B4001A1121B8F6A443A643e40951 (Uniswap v4, Robinhood's deployment) USDG 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 Chain Robinhood Chain, id 4663
The read path on this site is poolState, position, currentRound and shareOf, plus the contract's own events. There is no server, no database and no indexer; if the site and the contract ever disagree, the contract is right.