EVM-Interface Toolkit
This utility set streamlines interactions with Ethereum Virtual Machine (EVM) blockchains via a type-safe framework for performing operational tasks across various compatible networks. It unifies capabilities for executing direct on-chain functions alongside accessing necessary off-chain data services. This approach mirrors aspects of cloud computing, where scalable, elastic pools of resources are provisioned on demand for self-service use by developers.
Author

NaniDAO
Quick Info
Actions
Tags
Introduction
This extensible TypeScript library simplifies complex operational choreography across EVM-compatible decentralized ledgers. It offers a single, strongly typed interface for performing both direct ledger transactions and retrieving supporting external data. The design enables programmatic execution of nearly any required blockchain action over diverse EVM environments, aligning with modern paradigms of scalable, on-demand resource access often seen in cloud services.
Related Topics
- EVM (Ethereum Virtual Machine)
- Type Safety in Development
- Decentralized Ledger Technology (DLT)
- On-Demand Resource Provisioning
- Blockchain Interoperability
Requirements
Execution necessitates a runtime environment supporting Node.js version 18.0.0 or newer. Package management can utilize npm, yarn, or pnpm.
Installation
To import the complete set of utilities, use the following command:
npm install @agentek/tools
For the specific module integrating artificial intelligence services:
npm install @agentek/ai-sdk
Usage
Using the full toolkit
Initializing the primary client involves specifying account details, the target chains, transport mechanisms, and loading the available tools. This setup provides the foundation for automation.
import { createAgentekClient, allTools } from '@agentek/tools';
import { http } from 'viem';
import { mainnet } from 'viem/chains';
const client = createAgentekClient({
accountOrAddress: '0x...',
chains: [mainnet],
transports: [http()],
tools: allTools({})
});
// Execute a specific utility function
const result = await client.execute('getERC20BalanceTool', {
address: '0x...',
tokenAddress: '0x...'
});
Using with AI SDK
Integration with the AI SDK package allows large language models to utilize these blockchain utilities. First, instantiate the client as shown previously.
import { createAgentekClient, allTools } from '@agentek/tools';
import { AgentekToolkit } from '@agentek/ai-sdk';
import { http } from 'viem';
import { mainnet } from 'viem/chains';
const toolkit = new AgentekToolkit({
accountOrAddress: '0x...',
chains: [mainnet],
transports: [http()],
tools: allTools({})
});
// Retrieve the formatted utility set suitable for the Vercel AI SDK environment
const aiTools = toolkit.getTools();
Using the MCP Server
The Model Context Protocol (MCP) server component facilitates exposing these Agentek utilities to external language models via the defined Model Context Protocol specification. Refer to the dedicated documentation located at MCP Server README for configuration details.
Tools (114 total)
Available Tools
This library aggregates one hundred fourteen distinct functions for managing EVM interactions and data retrieval. A selection of these capabilities includes:
- resolveENS
- lookupENS
- getAllowance
- getBalanceOf
- getTotalSupply
- getDecimals
- getName
- getSymbol
- getTokenMetadata
- intentApprove
- getAcrossFeeQuote
- intentDepositAcross
- intentTransfer
- intentTransferFrom
- getLatestTokens
- getBalance
- getCode
- getTransactionCount
- getBlock
- getBlockNumber
- getGasPrice
- estimateGas
- getFeeHistory
- getTransaction
- getTransactionReceipt
- getUniV3Pool
- getUserPositions
- getPoolFeeData
- getPositionDetails
- intentMintPosition
- intentIncreaseLiquidity
- intentDecreaseLiquidity
- intentCollectFees
- intentTransferPosition
- depositWETH
- withdrawWETH
- getNaniProposals
- intentStakeNani
- intentUnstakeNani
- intentProposeNani
- intentVoteNaniProposal
- getNativeCoinHolders
- getAddressInfo
- getAddressCounters
- getAddressTransactions
- getAddressTokenTransfers
- getAddressInternalTransactions
- getAddressLogs
- getAddressBlocksValidated
- getAddressTokenBalances
- getAddressTokens
- getAddressCoinBalanceHistory
- getAddressCoinBalanceHistoryByDay
- getAddressWithdrawals
- getAddressNFTs
- getAddressNFTCollections
- getBlockInfo
- getBlockTransactions
- getBlockWithdrawals
- getStats
- getTransactionsChart
- getTransactionInfo
- getTransactionTokenTransfers
- getTransactionInternalTransactions
- getTransactionLogs
- getTransactionRawTrace
- getTransactionStateChanges
- getTransactionSummary
- getSmartContracts
- getSmartContract
- getTokenInfo
- getTokenHolders
- getTokenTransfers
- getBlockscoutSearch
- getAaveUserData
- getAaveReserveData
- intentAaveDeposit
- intentAaveWithdraw
- intentAaveBorrow
- intentAaveRepay
- checkMaliciousAddress
- checkMaliciousWebsite
- scrapeWebContent
- getFearAndGreedIndex
- getSlowStatus
- predictTransferId
- canUnlockSlow
- getCanReverseSlowTransfer
- getSlowGuardianInfo
- getSlowTransferApprovalRequired
- intentDepositToSlow
- intentSetSlowGuardian
- intentWithdrawFromSlow
- intentApproveSlowTransfer
- intentUnlockSlow
- intentReverseSlowTransfer
- getNFTMetadata
- getCryptoPrice
- estimateGasCost
- getTokenChart
- getYieldTool
- compareYieldTool
- getYieldHistoryTool
- compareYieldHistoryTool
- think
- askPerplexitySearch
- intent0xSwap
- tallyProposals
- tallyChains
- tallyUserDaos
- intentGovernorVote
- intentGovernorVoteWithReason
- getLatestCoindeskNewsTool
- getMarketEvents
Extra Details
This framework aggregates many specialized functions related to decentralized finance (DeFi) primitives, such as Uniswap V3 pool interaction (e.g., intentMintPosition) and lending protocols like Aave (intentAaveDeposit). Furthermore, it incorporates external data verification utilities (checkMaliciousAddress) and oracle-like data feeds (getFearAndGreedIndex). The structure is designed to provide developers with immediate, verifiable access to a broad ecosystem of blockchain data and transactional capabilities, reducing boilerplate code required for complex tasks.
Conclusion
This unified TypeScript toolkit abstracts intricate, multi-step interactions across diverse EVM environments into manageable, type-safe calls. By consolidating on-chain execution tools with necessary off-chain data sourcing, it functions as a robust middleware layer. This abstraction allows developers to concentrate on business logic rather than low-level network plumbing, benefiting from standardized, scalable access reminiscent of provisioning resources from a managed cloud infrastructure pool.
