prepare_open_position
Prepare an unsigned, fully-simulated transaction that opens a new CLMM position. Prefer passing nftMint from an agent-held Keypair so the server never signs: wallet signs first, then add the mint signature on the wallet-returned tx and call submit_open_position. Without nftMint, open signUrl: the sign page generates the mint in the browser, re-prepares, wallet signs first, then the mint (the returned tx is a preview only). HMAC permit, summary, signUrl. 1232-byte limit, fresh blockhash, full simulation. Not submit_signed_transaction — this tx has two required signers.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"wallet": "<wallet>",
"poolId": "<poolId>",
"inputMint": "<inputMint>",
"inputKind": "<inputKind>",
"amount": "<amount>"
},
"name": "prepare_open_position"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in token units | |
| poolId | Yes | Raydium CLMM pool id | |
| wallet | Yes | Wallet public key | |
| nftMint | No | Client-generated position NFT mint public key. Prefer this so the server never signs. Omit only for the MCP signUrl fallback. | |
| maxPrice | No | ||
| minPrice | No | ||
| inputKind | Yes | ||
| inputMint | Yes | Input asset mint, or "SOL" / "USDC" | |
| rangePreset | No | standard | |
| resaleFloorBps | No | ||
| slippageToleranceBps | No |