Manage ERC20 Token Approvals Across EVM Networks
MCP server that fetches ERC-20 token approvals and revokes allowances across 50+ EVM chains, showing USD value at risk and transaction status.
Why it matters
Secure your digital assets by managing ERC20 token approvals across over 50 EVM-compatible networks. This asset allows you to view all token approvals for a wallet, revoke unnecessary permissions, and monitor transaction statuses.
Outcomes
What it gets done
View all ERC20 token approvals for a given wallet, including token details, balances, and potential USD value at risk.
Revoke specific ERC20 token approvals by submitting transactions to the blockchain.
Check the status of submitted token revocation transactions.
Supports over 50 EVM-compatible networks, including mainnets and testnets.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-token-revoke-mcp | bash Capabilities
Tools your agent gets
Extract all ERC20 token approvals for a wallet on a specified network with token details and USD value at risk.
Send a transaction to revoke ERC20 token approval for a specific spender on a given network.
Verify the success or failure status of a submitted token revocation transaction using its hash.
Overview
token-revoke-mcp MCP Server
An MCP server for managing ERC-20 token allowances When you need to audit which contracts can spend your tokens and revoke risky approvals
What it does
Big job: Secure your crypto wallet by auditing and controlling which smart contracts can spend your tokens.
Small job: Query all ERC-20 token approvals for a wallet address, revoke specific allowances by submitting on-chain transactions, and verify transaction success-all through natural language prompts to your AI assistant.
Install and configure:
git clone https://github.com/kukapay/token-revoke-mcp.git
cd token-revoke-mcp
npm install
Then add to your MCP client config:
{
"mcpServers": {
"token-revoke-mcp": {
"command": "node",
"args": ["path/to/token-revoke-mcp/index.js"],
"env": {
"MORALIS_API_KEY": "your moralis api key",
"PRIVATE_KEY": "your wallet private key"
}
}
}
}
Requires Node.js 18+, a Moralis API key, and an Ethereum-compatible private key. Supports over 50 EVM-compatible chains including Ethereum, Polygon, BSC, and their testnets such as Goerli and Mumbai.
Source README
Token Revoke MCP
An MCP server for checking and revoking ERC-20 token allowances, enhancing security and control.
Features
- Fetch Token Approvals: Retrieve all ERC20 token approvals for a wallet on a specified chain, including token details, balances, and USD values at risk.
- Revoke Allowances: Submit transactions to revoke ERC20 token allowances for specific spenders.
- Check Transaction Status: Verify the success or failure of submitted transactions using transaction hashes.
- Multi-Chain Support: Supports over 50 EVM-compatible chains, including mainnets (e.g., Ethereum, Polygon, BSC) and testnets (e.g., Goerli, Mumbai).
Prerequisites
- Node.js: Version 18 or higher (for native
fetchsupport). - Moralis API Key: Required for fetching token approval data.
- Private Key: An Ethereum-compatible private key for signing revocation transactions.
Installation
Clone the Repository:
git clone https://github.com/kukapay/token-revoke-mcp.git cd token-revoke-mcpInstall Dependencies:
npm installClient Configuration:
{ "mcpServers": { "token-revoke-mcp": { "command": "node", "args": ["path/to/token-revoke-mcp/index.js"], "env": { "MORALIS_API_KEY": "your moralis api key", "PRIVATE_KEY": "your wallet private key" } } } }
Usage
Below are examples of how you might interact with the server using natural language prompts as input. The outputs are the raw text values from the content array returned by the server, assuming a client translates the prompts into tool calls.
Example 1: Fetch Token Approvals
Input Prompt:
"Show me all the token approvals for my wallet on Polygon."
Output Response:
[
{
"tokenAddress": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
"tokenSymbol": "USDC",
"balance": "100.5",
"usdPrice": "1.00",
"usdValueAtRisk": "50.25",
"spenderAddress": "0x1111111254eeb25477b68fb85ed929f73a960582",
"approvedAmount": "1000.0",
"transactionHash": "0xabc...",
"timestamp": "2023-10-01T12:00:00Z"
}
]
Example 2: Revoke an Allowance
Input Prompt:
"Revoke the allowance for token 0x2791bca1f2de4661ed88a30c99a7a9449aa84174 to spender 0x1111111254eeb25477b68fb85ed929f73a960582 on BSC."
Output Response:
Allowance revocation submitted on bsc. Transaction hash: 0x123.... Note: Transaction is not yet confirmed.
Example 3: Check Transaction Status
Input Prompt:
"Did my transaction 0x123... on BSC go through?"
Output Response (possible outputs):
- Pending:
Transaction 0x123... on bsc is still pending or not found. - Success:
Transaction 0x123... on bsc has completed with status: successful. Block number: 12345. - Failure:
Transaction 0x123... on bsc has completed with status: failed. Block number: 12345.
Supported Chains
The server supports a wide range of EVM-compatible chains based on the Moralis JS SDK’s chaindata.ts. Examples include:
- Mainnets:
ethereum,polygon,bsc,avalanche,fantom,arbitrum,optimism, etc. - Testnets:
goerli,mumbai,bsc testnet,arbitrum goerli,optimism sepolia, etc. - Full list: See
SUPPORTED_CHAINSinserver.js.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.