loadWallet
Load and configure Ethereum wallets on the MCP Ethers Wallet server by providing a private key. Optionally save the key to session environment variables for streamlined interactions.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| privateKey | Yes | The private key of the wallet to load. Should start with '0x'. | |
| saveToEnv | No | Optional. If true, the private key will be saved to the server's environment variables for this session. Default is true. |
Implementation Reference
- src/tools/core.ts:189-214 (handler)Handler function that loads an Ethereum wallet from the provided private key, optionally saves the private key to process.env.WALLET_PRIVATE_KEY, updates the ethersService signer, and returns wallet address information.async ({ privateKey, saveToEnv = true }) => { try { const wallet = new ethers.Wallet(privateKey); if (saveToEnv) { process.env.WALLET_PRIVATE_KEY = privateKey; // Update the ethersService with the new wallet const signer = new ethers.Wallet(privateKey, ethersService.provider); ethersService.setSigner(signer); } return { content: [{ type: "text", text: ` Wallet loaded successfully: Address: ${wallet.address} ${saveToEnv ? "Private key has been saved to environment variables for this session." : ""} ` }] }; } catch (error) { return createErrorResponse(error, 'loading wallet'); } }
- src/tools/core.ts:182-188 (schema)Zod input schema for the loadWallet tool: requires privateKey (string starting with '0x'), optional saveToEnv (boolean, defaults to true).privateKey: z.string().describe( "The private key of the wallet to load. Should start with '0x'." ), saveToEnv: z.boolean().optional().describe( "Optional. If true, the private key will be saved to the server's environment variables for this session. Default is true." ) },
- src/tools/core.ts:179-215 (registration)Registration of the loadWallet tool on the MCP server using server.tool(), including inline schema and handler implementation.server.tool( "loadWallet", { privateKey: z.string().describe( "The private key of the wallet to load. Should start with '0x'." ), saveToEnv: z.boolean().optional().describe( "Optional. If true, the private key will be saved to the server's environment variables for this session. Default is true." ) }, async ({ privateKey, saveToEnv = true }) => { try { const wallet = new ethers.Wallet(privateKey); if (saveToEnv) { process.env.WALLET_PRIVATE_KEY = privateKey; // Update the ethersService with the new wallet const signer = new ethers.Wallet(privateKey, ethersService.provider); ethersService.setSigner(signer); } return { content: [{ type: "text", text: ` Wallet loaded successfully: Address: ${wallet.address} ${saveToEnv ? "Private key has been saved to environment variables for this session." : ""} ` }] }; } catch (error) { return createErrorResponse(error, 'loading wallet'); } } );