Build an unsigned Uniswap V3 LP mint transaction — opens a new concentrated-liquidity position on the (tokenA, tokenB, feeTier) pool, bounded by [tickLower, tickUpper]. Up to two ERC-20 approvals are chained ahead of the mint() call (one per nonzero deposit side); USDT-style reset is handled auto...
AI agents call prepare_uniswap_v3_mint to permanently remove resources in VaultPilot MCP — typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.
| Parameter | Type | Required | Description |
|---|---|---|---|
chain | string | — | |
tokenA | string | Yes | First token in the LP pair. Pass either order; the builder canonically sorts to (token0, token1) before submission. Native ETH is NOT supported in v1 — wrap to |
tokenB | string | Yes | Second token in the LP pair. Must differ from tokenA. |
wallet | string | Yes | |
feeTier | number | Yes | Pool fee in hundredths of a bip: 100 = 0.01%, 500 = 0.05%, 3000 = 0.3%, 10000 = 1%. Each fee tier is a separate pool; pick the one that matches the pair's volat |
recipient | string | — | Address to receive the minted LP NFT. Default: wallet (the depositor). |
tickLower | integer | Yes | Lower tick of the position's price range. MUST align to the fee tier's tickSpacing (100→1, 500→10, 3000→60, 10000→200) — mis-aligned ticks are rejected. Use Uni |
tickUpper | integer | Yes | Upper tick. Must be > tickLower and aligned to tickSpacing. |
approvalCap | string | — | Cap on the ERC-20 approval preceding this action. Omit for "unlimited" (standard DeFi UX — fewer follow-up approvals). Pass "exact" to approve only what this ac |
deadlineSec | integer | — | Seconds from now until the on-chain `deadline` parameter expires. Default 1200 (20 min). |
slippageBps | integer | — | Slippage tolerance in basis points (1 bp = 0.01%). Default 50 bps (0.5%). Hard ceiling 500 bps; soft cap 100 bps requires acknowledgeHighSlippage: true. Higher |
amountADesired | string | Yes | Human-readable decimal amount of tokenA to deposit. Example: "100.5" for 100.5 USDC. NOT raw wei. Pass "0" for a single-sided range deposit when the current pri |
Parameters from the server's own tool schema.
An AI agent that decides to call prepare_uniswap_v3_mint doesn't hesitate, doesn't double-check, and doesn't stop at one. Whatever it removes from VaultPilot MCP is gone — there is no undo for destructive operations.
Risk signalsHigh parameter count (14 properties)
Attacks that exploit this kind of access
Build an unsigned Uniswap V3 LP mint transaction — opens a new concentrated-liquidity position on the (tokenA, tokenB, feeTier) pool, bounded by [tickLower, tickUpper]. Up to two ERC-20 approvals are chained ahead of the mint() call (one per nonzero deposit side); USDT-style reset is handled automatically. The pool must already exist (initialized) — refuses with a clear error otherwise. Tick bounds MUST align to the fee tier's tickSpacing (100→1, 500→10, 3000→60, 10000→200); mis-aligned ticks are rejected rather than silently rounded. v1 limitation: only WETH (not native ETH) is supported as a pair side; wrap ETH first via prepare_native_send to the WETH contract. Slippage defaults to 50 bps (0.5%); soft cap at 100 bps requires acknowledgeHighSlippage: true. After signing the mint, the resulting LP NFT appears in get_lp_positions for the recipient address. It is categorised as a Destructive tool in the VaultPilot MCP MCP Server, which means it can permanently delete or destroy data. Block by default and require explicit approval.
prepare_uniswap_v3_mint accepts 12 parameters: chain, tokenA, tokenB, wallet, feeTier, recipient, tickLower, tickUpper, approvalCap, deadlineSec, slippageBps, amountADesired. Required: tokenA, tokenB, wallet, feeTier, tickLower, tickUpper, amountADesired. The full parameter table on this page comes from the server's own tool schema.
Register the VaultPilot MCP server in PolicyLayer and add a rule for prepare_uniswap_v3_mint: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches VaultPilot MCP. Nothing to install.
prepare_uniswap_v3_mint is a Destructive tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.
Yes. Add a rate_limit block to the prepare_uniswap_v3_mint rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for prepare_uniswap_v3_mint. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
prepare_uniswap_v3_mint is provided by the VaultPilot MCP server (vaultpilot-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.