freeze_account
Prevent token transfers by freezing a specific Solana token account using freeze authority from a designated wallet.
Instructions
Freeze a token account to prevent transfers
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet with freeze authority | |
| tokenMint | Yes | Token mint address | |
| accountAddress | Yes | Address of the token account to freeze |
Implementation Reference
- src/index.ts:1030-1056 (handler)The handler function that executes the freeze_account tool. It retrieves the wallet, ensures connection, and calls the SPL freezeAccount function to freeze the specified token account.async function handleFreezeAccount(args: any) { const { walletName, tokenMint, accountAddress } = args; const wallet = wallets.get(walletName); if (!wallet) { throw new Error(`Wallet '${walletName}' not found`); } ensureConnection(); const tokenMintPubkey = new PublicKey(tokenMint); const accountPubkey = new PublicKey(accountAddress); const signature = await freezeAccount( connection, wallet.keypair, accountPubkey, tokenMintPubkey, wallet.keypair ); return { success: true, signature, accountAddress, explorerUrl: `https://explorer.solana.com/tx/${signature}?cluster=${currentNetwork}` }; }
- src/index.ts:373-394 (schema)The tool definition including name, description, and input schema for validation in the MCP tools list.{ name: "freeze_account", description: "Freeze a token account to prevent transfers", inputSchema: { type: "object", properties: { walletName: { type: "string", description: "Name of the wallet with freeze authority" }, tokenMint: { type: "string", description: "Token mint address" }, accountAddress: { type: "string", description: "Address of the token account to freeze" } }, required: ["walletName", "tokenMint", "accountAddress"] } },
- src/index.ts:1339-1341 (registration)Registration in the main tool dispatch switch statement that routes freeze_account calls to the handler.case "freeze_account": result = await handleFreezeAccount(args); break;