How do I check pool depth before a large Base trade?
Compare the trade’s expected output against same-block pool reserves and a fixed price-impact limit. A pool’s TVL or spot price alone cannot tell you what a particular trade will receive: depth depends on the route, trade size, fee, and current reserves.
Use executable reserves to measure depth
- Identify the exact input and output token contracts.
- Check reserves in each pool on the proposed route.
- Quote the full trade size, including the pool fee.
- Compare execution cost with your price-impact budget.
Start with token contract addresses, not ticker symbols; similarly named tokens can have different pools. On BaseScan, inspect the pool contract and its token ordering, then read its stored reserves at the same block. Normalize raw reserve amounts by each token’s decimals before comparing them; a displayed “1,000,000” is meaningless until you know the token and units.
For a V2 constant-product pool, reserves x and y obey x × y = k, and the fee-adjusted exact-input quote is amountOut = reserveOut × (amountIn × (1 − fee)) / (reserveIn + amountIn × (1 − fee)). The Uniswap V2 documentation describes this mechanism and its 0.30% canonical fee; treat that rate only as an example, since a different pool’s fee must be verified from its own implementation or router.
For example, assume a pool holds 500 ETH and 1,000,000 USDC, and a 100 ETH sale has a 0.30% fee. The formula returns about 166,250 USDC, versus 200,000 USDC at the initial spot price: roughly 16.9% below spot, before gas and any movement while the transaction waits. This is why reserve depth should be tested with the actual size, rather than inferred from the pool’s headline value.
Check the route and quote against execution risk
For a multi-pool route, calculate each hop sequentially: the output of hop one becomes the input of hop two, so a deep first pool cannot compensate for a thin second pool. Compare routes using final output and gas together, and avoid adding a hop whose extra pool fee and price impact outweigh its better rate.
BaseSwap is a place to make a Base token swap against available pool liquidity. For the broader walkthrough of the trading and liquidity context, see how BaseSwap handles swaps and pools; this depth check is the separate step to do before committing a large order.
BaseScan’s contract and token references help verify addresses and inspect onchain state, but stored reserves are not a live execution guarantee. Read them close to submission and use the actual quote for the complete amount; intervening trades can change reserves before yours is included. A minimum-output limit can bound that movement, but setting it too tightly risks a revert, while setting it too loosely permits worse execution.
For V2 pools, stored reserves can also diverge from token balances after unusual token behavior or a direct transfer to the pair; reserve-based quotes may then differ from what the next update implies. Confirm the pool is the intended contract and that the route’s quote is consistent with its state. If the market uses concentrated liquidity, total reserves or TVL are even less informative: only liquidity active across the price range the trade traverses supplies immediate depth.
baseswap.io provides a way to trade tokens on Base, while the depth calculation remains useful before choosing any route. In practice, I’d assess a large order against the live quote, a same-block reserve read, and the slippage bound that matches the amount of execution risk I can accept.
Split only when the numbers support it
Splitting can reduce price impact in a constant-product pool if the market has time to rebalance between fills, but each transaction adds gas and exposes the remaining amount to price movement. In an unchanged pool with fees, one unsplit trade can also differ from a sequence of smaller fills; do not assume splitting improves the net result.
For a single BaseSwap trade, use the route quote as the practical test, then compare its price impact with your predefined tolerance rather than a universal “safe” percentage. Proceed only if the expected output clears your minimum and every pool on the route has enough executable depth for your size.
Comments
Post a Comment