wallet_from_mnemonic
Generate an Ethereum or EVM-compatible wallet using a mnemonic phrase. Specify optional HD path and locale for wordlist to derive the wallet address and private key.
Instructions
Create a wallet from a mnemonic phrase
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Optional locale for the wordlist | |
| mnemonic | Yes | The mnemonic phrase | |
| path | No | Optional HD path |
Input Schema (JSON Schema)
{
"properties": {
"locale": {
"description": "Optional locale for the wordlist",
"type": "string"
},
"mnemonic": {
"description": "The mnemonic phrase",
"type": "string"
},
"path": {
"description": "Optional HD path",
"type": "string"
}
},
"required": [
"mnemonic"
],
"type": "object"
}
Implementation Reference
- src/handlers/wallet.ts:100-126 (handler)The main handler function for 'wallet_from_mnemonic' tool. It validates the mnemonic input, creates an ethers.Wallet using ethers.Wallet.fromMnemonic with optional path and locale wordlist, connects to the provider if available, and returns the wallet's address, mnemonic, private key, and public key.export const fromMnemonicHandler = async (input: any): Promise<ToolResultSchema> => { try { if (!input.mnemonic) { return createErrorResponse("Mnemonic is required"); } const options: any = { path: input.path, wordlist: (input.locale && ethers.wordlists[input.locale]) || ethers.wordlists.en }; const provider = getProvider(); const wallet = ethers.Wallet.fromMnemonic(input.mnemonic, options.path, options.wordlist); if (provider) wallet.connect(provider); return createSuccessResponse( `Wallet created from mnemonic successfully: Address: ${wallet.address} Mnemonic: ${input.mnemonic} Private Key: ${wallet.privateKey} Public Key: ${wallet.publicKey} `); } catch (error) { return createErrorResponse(`Failed to create wallet from mnemonic: ${(error as Error).message}`); } };
- src/tools.ts:88-100 (schema)JSON Schema definition for the input of the 'wallet_from_mnemonic' tool, specifying mnemonic as required, and optional path and locale.{ name: "wallet_from_mnemonic", description: "Create a wallet from a mnemonic phrase", inputSchema: { type: "object", properties: { mnemonic: { type: "string", description: "The mnemonic phrase" }, path: { type: "string", description: "Optional HD path" }, locale: { type: "string", description: "Optional locale for the wordlist" } }, required: ["mnemonic"] } },
- src/tools.ts:556-608 (registration)Registration of the tool handler in the handlers dictionary, mapping "wallet_from_mnemonic" to fromMnemonicHandler.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 };
- src/handlers/wallet.types.ts:11-16 (schema)TypeScript type definition for the input parameters of fromMnemonicHandler.export type fromMnemonicHandlerInput = { mnemonic: string; provider?: string; path?: string; locale?: string; };