Prepare an LP position deposit
prepare_lp_position_depositPrepare a v3 position mint or add_liquidity, initializing a new pool at initial_tick when requested, with every approval, refund and cleanup step. Ekubo ticks use base 1.000001, so tick = ln(price in base units) x 10^6 and a Uniswap-style 1.0001 calculation is 100x too small. The token ratio follows the range and current price: do every swap first, re-read the tick with the pool's current_state_query, then mint once. If the wallet lacks one side, execute that swap separately and size the deposit from the measured balance after its receipt, never a quoted output. See ekubo://docs/lp-position-workflow.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | mint_new | |
| sender | Yes | address | |
| pool_id | No | Omit when pool_key is supplied (decimal or 0x-hex integer) | |
| chain_id | Yes | EVM chain ID | |
| pool_key | No | Required for an uninitialized pool. PoolKey {token0, token1, config}: token addresses (zero = native), bytes32 config | |
| token_id | No | add_liquidity only (decimal or 0x-hex integer) | |
| tick_lower | Yes | ||
| tick_upper | Yes | ||
| max_amount0 | Yes | Max token0 base units; 0 for single-sided (decimal integer) | |
| max_amount1 | Yes | Max token1 base units; 0 for single-sided (decimal integer) | |
| core_address | Yes | v3 Core address | |
| initial_tick | No | Uninitialized pool only: initializes at this tick | |
| slippage_bps | Yes | User-selected liquidity slippage | |
| pool_initialized | No | false only for a new pool to initialize here |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| execution_plan_reference | No | artifact_reference; pass unchanged |