Skip to content

The pool

A strategy that graduates from its curve trades in one Uniswap v4 pool, opened at graduation and never closed. How the pool opens, how a trade pays its fee, and why neither can be undone.

Before a strategy has a pool, it trades on its own bonding curve. That phase, and how a launch graduates out of it, is on The curve. This page is about everything after.

What v4 changes

Uniswap v4 keeps every pool inside a single contract, the PoolManager. A pool can also name a hook: a contract the PoolManager calls at set moments of every trade. Sweep's hook is what charges the fee.

A v4 pool is identified by 5 values, and the hook is one of them:

Value On a Sweep pool
Currency 0 ETH
Currency 1 the strategy token
LP fee 0
Tick spacing 60
Hook Sweep's hook

Change any of the 5, and you are not changing the pool: you are naming a different pool, one that does not exist and holds nothing. That is why the fee cannot be removed. It is not a rule traders are asked to respect; it is part of what the pool is.

v4 even reads what a hook is allowed to do from the hook's own address. Sweep's hook sits at an address that grants exactly 4 moments: before a pool opens, after a deposit, after a swap, and changing a swap's output.

Opening the pool

A pool can only be opened by Sweep's launch contract, and only for a strategy whose curve has just graduated. Anyone else trying to open a pool that names Sweep's hook is refused, so no second pool can ever skim fees for a strategy.

Graduation moves everything the curve collected into one position covering every price, so the pool has depth wherever the price goes.

At graduation
Opening price exactly where the curve closed
ETH in the pool about 4.2 ETH, everything the curve took in
Tokens in the pool about 204,100,000 (20.4% of supply)
Valuation at that price 20.58 ETH
Positions in the pool 1, for good
Who owns it the dead address

The position's ownership is sent to the dead address in the same transaction. Nobody can withdraw it, and the hook refuses every other deposit, forever. The LP fee is 0 because that position belongs to nobody: any fee it earned would be lost. The hook charges the fee instead.

The tokens the pool does not need, about 8.16% of supply, are burnt in that same transaction. Anyone can send it; Sweep's keeper does, soon after the graduating buy.

A trade, step by step

A buy through a Sweep pool Your wallet 0.1 ETH in Sweep router min out, deadline Uniswap v4 pool ETH and the token 1 position, owned by nobody Sweep's hook runs after every swap takes the fee Strategy 8 points, at once Royalty 1 point, paid later Sweep 1 point, paid later tokens, minus the fee swap then sells the fee for ETH A buy through a Sweep pool Your wallet 0.1 ETH in Sweep router min out, deadline Uniswap v4 pool ETH and the token 1 position, owned by nobody Sweep's hook runs after every swap takes the fee Strategy 8 points Royalty 1 point Sweep 1 point tokens, minus the fee then sells the fee for ETH
A buy of 0.1 ETH. Everything happens in 1 transaction: if any step fails, the whole trade is undone.
  1. Your wallet calls Sweep's router with the ETH to spend, the least it will accept, and a deadline.
  2. The PoolManager runs the swap against the pool's single position.
  3. Right after, it calls the hook, which takes the fee: 10%, on a buy or a sell, from the pool's first trade to its last.
  4. On a buy, the fee arrives in tokens. The hook sells those tokens straight back into the same pool for ETH, inside the same transaction. Its own sale pays no fee. On a sell, the fee is already ETH.
  5. The hook splits the ETH. 8 points go to the strategy at once. The royalty and Sweep's share wait in the hook and are paid out later: Sweep's keeper pays them from 0.001 ETH, and a recipient can pull theirs at any time.
  6. The hook opens the token's lock for exactly this trade, and your wallet receives its tokens, minus the fee.

No token moves for the fee itself. v4 keeps a running balance per contract during a transaction, so the tokens the hook is credited and the tokens its own sale spends cancel out, and only the ETH leaves the pool.

Buying and selling

You do You name The fee is taken in
Buy the ETH you spend tokens, sold back for ETH
Sell the tokens you sell ETH

Only "spend exactly" works. "Spend 0.1 ETH" is a trade. "Get exactly 1,000,000 tokens, whatever it costs" is refused, because v4 only lets a hook take its fee from the side of the trade you did not name.

Trade from the Sweep app. Most routers hold your tokens for an instant before passing them on, and the token's lock refuses that as a wallet to wallet transfer. Sweep's router never holds a token: a buy goes straight from the pool to your wallet, a sell straight from your wallet into the pool. It also tells the hook which wallet the trade is for, so the trade shows under your address.

The quote is the trade, run and undone. The app asks the router to perform your exact swap, then throws the result away. What it shows is what the same trade delivers in the same block, to the wei.

Strategies trade here too. A burn, an airdrop or a buyback buys the token through this same pool, and pays the same fee as anyone.

What nobody can do

  • Add liquidity. The hook refuses every deposit but the one made at graduation.
  • Remove liquidity. The only position belongs to the dead address.
  • Open a second pool on the hook. Only a graduation can open one, once per strategy.
  • Trade the token elsewhere. The lock refuses any transfer that is not a trade on this pool, a burn, or a strategy's own delivery.
  • Change the fee. 10% is a constant in the hook. A different rate would be a different hook, and so a different pool.
  • Stop trading. Sweep's router cannot be removed from the list of routers the pool accepts, by Sweep or by anyone.