wallet_encrypt
Encrypt Ethereum and EVM-compatible wallets using a password to secure private keys, mnemonics, or JSON files, with optional custom scrypt parameters.
Instructions
Encrypt a wallet with a password
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Optional encryption options | |
| password | Yes | The password to encrypt the wallet | |
| wallet | Yes | The wallet to encrypt (private key, mnemonic, or JSON) |
Implementation Reference
- src/handlers/wallet.ts:156-176 (handler)The encryptWalletHandler function implements the core logic for the wallet_encrypt tool. It retrieves a wallet using getWallet, encrypts it with the provided password and options using ethers.Wallet.encrypt, and returns the encrypted wallet JSON.export const encryptWalletHandler = async (input: any): Promise<ToolResultSchema> => { try { if (!input.wallet) { return createErrorResponse("Wallet is required"); } if (!input.password) { return createErrorResponse("Password is required"); } const wallet = await getWallet(input.wallet); const encryptedWallet = await wallet.encrypt(input.password, input.options); return createSuccessResponse( `Wallet encrypted successfully Encrypted Wallet: ${encryptedWallet} `); } catch (error) { return createErrorResponse(`Failed to encrypt wallet: ${(error as Error).message}`); } };
- src/tools.ts:113-138 (schema)Input schema definition for the wallet_encrypt tool, specifying the required wallet and password parameters, along with optional scrypt encryption options.{ name: "wallet_encrypt", description: "Encrypt a wallet with a password", inputSchema: { type: "object", properties: { wallet: { type: "string", description: "The wallet to encrypt (private key, mnemonic, or JSON)" }, password: { type: "string", description: "The password to encrypt the wallet" }, options: { type: "object", description: "Optional encryption options", properties: { scrypt: { type: "object", properties: { N: { type: "number" }, r: { type: "number" }, p: { type: "number" } } } } } }, required: ["wallet", "password"] } },
- src/tools.ts:556-608 (registration)The handlers dictionary registers 'wallet_encrypt' key mapped to the encryptWalletHandler function, which is used by the MCP server to dispatch calls to the correct implementation.export const handlers: HandlerDictionary = { // Provider Methods "wallet_provider_set": setProviderHandler, // Wallet Creation and Management "wallet_create_random": createWalletHandler, "wallet_from_private_key": fromPrivateKeyHandler, "wallet_from_mnemonic": fromMnemonicHandler, "wallet_from_encrypted_json": fromEncryptedJsonHandler, "wallet_encrypt": encryptWalletHandler, // Wallet Properties "wallet_get_address": getAddressHandler, "wallet_get_public_key": getPublicKeyHandler, "wallet_get_private_key": getPrivateKeyHandler, // Blockchain Methods "wallet_get_balance": getBalanceHandler, "wallet_get_chain_id": getChainIdHandler, "wallet_get_gas_price": getGasPriceHandler, "wallet_get_transaction_count": getTransactionCountHandler, "wallet_call": callHandler, // Transaction Methods "wallet_send_transaction": sendTransactionHandler, "wallet_sign_transaction": signTransactionHandler, "wallet_populate_transaction": populateTransactionHandler, // Signing Methods "wallet_sign_message": signMessageHandler, "wallet_sign_typed_data": signTypedDataHandler, "wallet_verify_message": verifyMessageHandler, "wallet_verify_typed_data": verifyTypedDataHandler, // Provider Methods "provider_get_block": getBlockHandler, "provider_get_transaction": getTransactionHandler, "provider_get_transaction_receipt": getTransactionReceiptHandler, "provider_get_code": getCodeHandler, "provider_get_storage_at": getStorageAtHandler, "provider_estimate_gas": estimateGasHandler, "provider_get_logs": getLogsHandler, "provider_get_ens_resolver": getEnsResolverHandler, "provider_lookup_address": lookupAddressHandler, "provider_resolve_name": resolveNameHandler, // Network Methods "network_get_network": getNetworkHandler, "network_get_block_number": getBlockNumberHandler, "network_get_fee_data": getFeeDataHandler, // Mnemonic Methods "wallet_create_mnemonic_phrase": createMnemonicPhraseHandler };