logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

EVM-Interface Toolkit logo

NaniDAO

GNU Affero General Public License v3.0

Quick Info

GitHub GitHub Stars 39
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

blockchainsblockchainnanidaoevm blockchainsservices nanidaonanidao agentek

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.

  • 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:

  1. resolveENS
  2. lookupENS
  3. getAllowance
  4. getBalanceOf
  5. getTotalSupply
  6. getDecimals
  7. getName
  8. getSymbol
  9. getTokenMetadata
  10. intentApprove
  11. getAcrossFeeQuote
  12. intentDepositAcross
  13. intentTransfer
  14. intentTransferFrom
  15. getLatestTokens
  16. getBalance
  17. getCode
  18. getTransactionCount
  19. getBlock
  20. getBlockNumber
  21. getGasPrice
  22. estimateGas
  23. getFeeHistory
  24. getTransaction
  25. getTransactionReceipt
  26. getUniV3Pool
  27. getUserPositions
  28. getPoolFeeData
  29. getPositionDetails
  30. intentMintPosition
  31. intentIncreaseLiquidity
  32. intentDecreaseLiquidity
  33. intentCollectFees
  34. intentTransferPosition
  35. depositWETH
  36. withdrawWETH
  37. getNaniProposals
  38. intentStakeNani
  39. intentUnstakeNani
  40. intentProposeNani
  41. intentVoteNaniProposal
  42. getNativeCoinHolders
  43. getAddressInfo
  44. getAddressCounters
  45. getAddressTransactions
  46. getAddressTokenTransfers
  47. getAddressInternalTransactions
  48. getAddressLogs
  49. getAddressBlocksValidated
  50. getAddressTokenBalances
  51. getAddressTokens
  52. getAddressCoinBalanceHistory
  53. getAddressCoinBalanceHistoryByDay
  54. getAddressWithdrawals
  55. getAddressNFTs
  56. getAddressNFTCollections
  57. getBlockInfo
  58. getBlockTransactions
  59. getBlockWithdrawals
  60. getStats
  61. getTransactionsChart
  62. getTransactionInfo
  63. getTransactionTokenTransfers
  64. getTransactionInternalTransactions
  65. getTransactionLogs
  66. getTransactionRawTrace
  67. getTransactionStateChanges
  68. getTransactionSummary
  69. getSmartContracts
  70. getSmartContract
  71. getTokenInfo
  72. getTokenHolders
  73. getTokenTransfers
  74. getBlockscoutSearch
  75. getAaveUserData
  76. getAaveReserveData
  77. intentAaveDeposit
  78. intentAaveWithdraw
  79. intentAaveBorrow
  80. intentAaveRepay
  81. checkMaliciousAddress
  82. checkMaliciousWebsite
  83. scrapeWebContent
  84. getFearAndGreedIndex
  85. getSlowStatus
  86. predictTransferId
  87. canUnlockSlow
  88. getCanReverseSlowTransfer
  89. getSlowGuardianInfo
  90. getSlowTransferApprovalRequired
  91. intentDepositToSlow
  92. intentSetSlowGuardian
  93. intentWithdrawFromSlow
  94. intentApproveSlowTransfer
  95. intentUnlockSlow
  96. intentReverseSlowTransfer
  97. getNFTMetadata
  98. getCryptoPrice
  99. estimateGasCost
  100. getTokenChart
  101. getYieldTool
  102. compareYieldTool
  103. getYieldHistoryTool
  104. compareYieldHistoryTool
  105. think
  106. askPerplexitySearch
  107. intent0xSwap
  108. tallyProposals
  109. tallyChains
  110. tallyUserDaos
  111. intentGovernorVote
  112. intentGovernorVoteWithReason
  113. getLatestCoindeskNewsTool
  114. 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.

See Also

`