provider_get_code
Retrieve the smart contract code stored at a specific Ethereum or EVM-compatible blockchain address. Specify the address and optional block tag for accurate code retrieval.
Instructions
Get the code at an address
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The address to get code from | |
| blockTag | No | Optional block tag (latest, pending, etc.) |
Implementation Reference
- src/handlers/wallet.ts:557-574 (handler)The main handler function for 'provider_get_code' that retrieves the contract bytecode at the specified address using the configured provider.export const getCodeHandler = async (input: any): Promise<ToolResultSchema> => { try { if (!input.address) { return createErrorResponse("Address is required"); } const provider = getProvider(); const code = await provider.getCode(input.address, input.blockTag); return createSuccessResponse( `Code retrieved successfully Address: ${input.address} Code: ${code} `); } catch (error) { return createErrorResponse(`Failed to get code: ${(error as Error).message}`); } };
- src/tools.ts:425-436 (schema)The input schema definition for the 'provider_get_code' tool, specifying required 'address' and optional 'blockTag'.{ name: "provider_get_code", description: "Get the code at an address", inputSchema: { type: "object", properties: { address: { type: "string", description: "The address to get code from" }, blockTag: { type: "string", description: "Optional block tag (latest, pending, etc.)" } }, required: ["address"] } },
- src/tools.ts:556-608 (registration)Registration of the 'provider_get_code' handler function in the central handlers dictionary.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/tools.ts:425-436 (registration)Registration of the 'provider_get_code' tool name and schema in the tools array.{ name: "provider_get_code", description: "Get the code at an address", inputSchema: { type: "object", properties: { address: { type: "string", description: "The address to get code from" }, blockTag: { type: "string", description: "Optional block tag (latest, pending, etc.)" } }, required: ["address"] } },