SimulatePriceMove
Project a Uniswap V2 or V3 LP position's value at a hypothetical price change from the CURRENT pool state (not from entry). A price_change_pct of -0.30 asks 'what if price drops 30% from here'. Returns new value, IL at the simulated price, and percentage change in position value. Fee projection is not modeled (always null).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rpc_url | Yes | An Ethereum (or L2) JSON-RPC URL used to read live pool state. Required; supplied by you per call (BYO-RPC) and may carry your provider key. The endpoint stores and logs nothing — the URL is never persisted or written to logs. | |
| chain_id | No | Optional guard. If supplied and the RPC reports a different chain id, the call is rejected. Defaults to 1 (Ethereum mainnet) conceptually; omit to skip the check. | |
| lwr_tick | No | Lower tick of the position (V3 only; null for V2). | |
| upr_tick | No | Upper tick of the position (V3 only; null for V2). | |
| pool_type | Yes | Which protocol the pool at pool_address belongs to. This tool accepts uniswap_v2 | uniswap_v3. | |
| block_number | No | Optional block number to pin the read to a historical block. Omit to read the latest block. | |
| pool_address | Yes | On-chain address of the pool/pair to analyze (Uniswap V2/V3 pair, Balancer weighted pool, or Curve stableswap pool). Required. Lowercase, uppercase, or checksum casing all work. | |
| position_size_lp | Yes | LP tokens held by the position, in human units. Must be > 0. | |
| price_change_pct | No | Fractional price change from current price. Must be > -1.0. Example: -0.30 models a 30% drop. | |
| price_change_pcts | No | Optional batch form of 'price_change_pct': an array of values to evaluate in a single call. The pool is read once and the result is an array with one entry per element, in input order. Supply EITHER 'price_change_pct' (single) OR 'price_change_pcts' (batch), not both. Max 256 entries. |