tapp_remove_single_clmm_liquidity
Remove liquidity from a single CLMM position on Tapp Exchange. Specify the pool ID, position address, share tokens to burn, and minimum token amounts to withdraw.
Instructions
Remove liquidity from a single CLMM position
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| minAmount0 | Yes | Minimum amount of token0 | |
| minAmount1 | Yes | Minimum amount of token1 | |
| mintedShare | Yes | The amount of share tokens to burn | |
| poolId | Yes | The ID of the CLMM pool | |
| positionAddr | Yes | The address of the liquidity position |
Implementation Reference
- src/mcp/tapp/liquidity-tools.ts:211-223 (handler)MCP tool handler that validates input, calls TappAgent.removeSingleCLMMLiquidity, and returns transaction result.handler: async (agent: TappAgent, input: Record<string, any>) => { const result = await agent.removeSingleCLMMLiquidity({ poolId: input.poolId, positionAddr: input.positionAddr, mintedShare: input.mintedShare, minAmount0: input.minAmount0, minAmount1: input.minAmount1 }); return { status: "success", transaction: result }; },
- Zod input schema defining parameters for removing single CLMM liquidity.schema: { poolId: z.string().describe("The ID of the CLMM pool"), positionAddr: z.string().describe("The address of the liquidity position"), mintedShare: z.number().describe("The amount of share tokens to burn"), minAmount0: z.number().describe("Minimum amount of token0"), minAmount1: z.number().describe("Minimum amount of token1") },
- src/mcp/index.ts:50-50 (registration)Registration of the tool in the main TappExchangeMcpTools object."RemoveSingleCLMMLiquidityTool": RemoveSingleCLMMLiquidityTool,
- src/agent/index.ts:485-504 (helper)TappAgent helper method that uses the Tapp SDK to generate transaction payload and submits it via Aptos client.async removeSingleCLMMLiquidity(params: RemoveSingleCLMMLiquidityParams): Promise<TransactionResponse> { try { const data = this.sdk.Position.removeSingleCLMMLiquidity(params); const response = await this.aptos.transaction.submit.simple({ sender: this.account.accountAddress, data: data } as any); return { hash: response.hash, success: true }; } catch (error) { return { hash: '', success: false, error: error instanceof Error ? error.message : 'Unknown error' }; } }
- src/mcp/index.ts:10-22 (registration)Import of the RemoveSingleCLMMLiquidityTool from liquidity-tools.ts for registration.CreateAMMPoolAndAddLiquidityTool, CreateCLMMPoolAndAddLiquidityTool, CreateStablePoolAndAddLiquidityTool, AddAMMLiquidityTool, AddCLMMLiquidityTool, AddStableLiquidityTool, RemoveSingleAMMLiquidityTool, RemoveMultipleAMMLiquidityTool, RemoveSingleCLMMLiquidityTool, RemoveMultipleCLMMLiquidityTool, RemoveSingleStableLiquidityTool, RemoveMultipleStableLiquidityTool } from "./tapp/liquidity-tools";