prepare_uniswap_v3_mint
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...
This record as markdown: /tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-v3-mint.md
What prepare_uniswap_v3_mint does on VaultPilot MCP
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.
Why prepare_uniswap_v3_mint is rated Critical
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
The rule that runs prepare_uniswap_v3_mint safely
PolicyLayer is an MCP gateway: it sits between your AI agents and VaultPilot MCP, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For prepare_uniswap_v3_mint, this is the rule to start with:
prepare_uniswap_v3_mint is removed from the agent's tool list entirely, so the agent never calls it. The rest of the server keeps working.
The button opens the PolicyLayer dashboard: create your workspace, connect VaultPilot MCP, apply this rule, and every prepare_uniswap_v3_mint call is checked against it from then on.
Questions about prepare_uniswap_v3_mint
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.
More on VaultPilot, and thousands of servers like it.
Across the catalogue