An extensible TypeScript toolkit that simplifies complex EVM blockchain interactions into composable, intent-based tools. Provides a unified, type-safe interface for both on-chain actions and off-chain data services, enabling developers to programmatically execute any blockchain operation across multiple EVM networks.
Interested in contributing? Check out our CONTRIBUTING.md guide!
The Agentek toolkit is structured as a monorepo with multiple publishable packages:
@agentek/tools
- The main package containing all tools@agentek/ai-sdk
- AI SDK integration for Vercel AI SDK@agentek/mcp-server
- Model Context Protocol server
- Node.js >= 18.0.0
- npm, yarn, or pnpm
You can install the entire toolkit:
npm install @agentek/tools
AI SDK:
npm install @agentek/ai-sdk
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 tool
const result = await client.execute('getERC20BalanceTool', {
address: '0x...',
tokenAddress: '0x...'
});
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({})
});
// Get tools for Vercel AI SDK
const aiTools = toolkit.getTools();
The MCP (Model Context Protocol) server allows you to expose Agentek tools to LLMs via the Model Context Protocol. For more information, see the MCP Server README
- resolveENS
- lookupENS
- getAllowance
- getBalanceOf
- getTotalSupply
- getDecimals
- getName
- getSymbol
- getTokenMetadata
- intentApprove
- 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
- getMarketChart
- 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
- getYieldTool
- compareYieldTool
- getYieldHistoryTool
- compareYieldHistoryTool
- askPerplexitySearch
- intent0xSwap
- tallyProposals
- tallyChains
- tallyUserDaos
- intentGovernorVote
- intentGovernorVoteWithReason
- getLatestCoindeskNewsTool
- getMarketEvents