Verify balances, trace transactions, detect drainers, audit portfolios, and follow smart money — in one API call. Built for AI agents that live on-chain.
No account required to start. Free tier available.
Your agent doesn't have time to parse raw Solana RPC. Let us do it.
One API call returns balance, token holdings, and DeFi positions. No parsing RPC responses.
Before your agent interacts with a wallet, check if it's a known drainer or malicious contract.
Follow what elite traders are doing. Get historical positions and current holdings of top traders.
Full token flow tracing. Know exactly where funds came from and where they went.
Find all token approvals a wallet has granted. Revoke risky ones in one call.
Check if a token is a honeypot, has high taxes, or has a malicious owner before your agent buys.
Wallet Doctor speaks MCP — the standard protocol for AI agent tool discovery. Add one line to your agent config and it instantly has 13 blockchain forensics tools.
Edit ~/.claude/mcp_servers.json:
// ~/.claude/mcp_servers.json
{{
"mcpServers": {{
"wallet-doctor": {{
"command": "python",
"args": [
"C:/path/to/wallet-doctor-mcp/mcp_server.py"
]
}}
}}
}}
Add to MCP server settings:
// .cursor/mcp.json (or windsurf config)
{{
"mcpServers": {{
"wallet-doctor": {{
"command": "python",
"args": [
"C:/path/to/wallet-doctor-mcp/mcp_server.py"
]
}}
}}
}}
Find Wallet Doctor on Smithery and connect in one click:
# Smithery.ai — search "wallet-doctor" # or visit the marketplace
Or embed directly in your agent:
from wallet_doctor_mcp import mcp_server # mcp_server implements stdio JSON-RPC # Spawn as subprocess and communicate via JSON
Base URL: https://defi-webhook.m-zikriz.workers.dev/api
/balance
$0.001
Balance + token holdings + DeFi positions
Returns SOL balance, all SPL tokens with values, and DeFi positions across Jupiter, Raydium, Orca.
/token_safety
$0.005
Honeypot check, tax analysis, owner audit
Pass a token mint address. Returns honeypot score, buy/sell tax, mint authority status, and rugged token flag.
/txtrace
$0.005
Full token flow reconstruction
Reconstructs the full token path of a transaction. Input a tx signature, get every hop — source, intermediate wallets, destination.
/drain_forensics
$0.025
Drainer wallet forensics + recovery path
Forensic analysis of a drained wallet. Identifies drainer contract, traces where funds went, and suggests recovery path.
/approvals
$0.005
All token approvals from a wallet
Lists every SPL token approval (delegate + amount) ever granted from a wallet, including revoked ones.
/smart_money
$0.010
Historical + current positions of top traders
Get historical entry/exit data and current holdings for the top 50 smart money wallets. Essential for agent trading strategies.
/portfolio_audit
$0.025
Full wallet risk assessment
Complete portfolio analysis: asset allocation, risk scores, exposure breakdown, DeFi positions, and security recommendations.
Copy-paste into AutoGen, CrewAI, LangChain, or any Python agent.
import requests
API_KEY = "YOUR_KEY"
BASE = "https://defi-webhook.m-zikriz.workers.dev/api"
def get_wallet_summary(wallet: str) -> dict:
"""Used by AI agent to assess a wallet before interaction."""
r = requests.get(f"{BASE}/balance", params={
"wallet": wallet,
"api_key": API_KEY
})
data = r.json()
return {
"sol": data["sol"],
"num_tokens": len(data["tokens"]),
"defi_positions": data.get("defi_positions", [])
}
# AI agent usage:
wallet_info = get_wallet_summary("8Jj...") # before trading
from crewai.tools import BaseTool
import requests
class WalletDoctorTool(BaseTool):
name = "Wallet Doctor"
description = "Check Solana wallet balance, safety, and history"
def _run(self, wallet: str, check: str = "balance"):
# check: balance | token_safety | drain_forensics
r = requests.get(
"https://defi-webhook.m-zikriz.workers.dev/api/" + check,
params={"wallet": wallet, "api_key": "YOUR_KEY"}
)
return r.json()
# Add to your CrewAI agent:
# agent = Agent(tools=[WalletDoctorTool()], ...)
from langchain.tools import Tool
import requests
def solana_wallet_check(wallet: str, service: str) -> str:
"""AI agent calls this before any on-chain action."""
r = requests.get(
f"https://defi-webhook.m-zikriz.workers.dev/api/{service}",
params={"wallet": wallet, "api_key": "YOUR_KEY"}
)
return str(r.json())
wallet_tools = [
Tool(name="wallet_balance", func=lambda w: solana_wallet_check(w, "balance"), description="Get SOL + token balance"),
Tool(name="token_safety", func=lambda t: solana_wallet_check(t, "token_safety"), description="Check if token is safe"),
Tool(name="drain_check", func=lambda w: solana_wallet_check(w, "drain_forensics"), description="Check if wallet is malicious"),
]
import autogen
from typing import Literal
def check_wallet(wallet: str, check: Literal["balance","approvals","drain_forensics"]) -> dict:
r = requests.get(
"https://defi-webhook.m-zikriz.workers.dev/api/" + check,
params={"wallet": wallet, "api_key": "YOUR_KEY"}
)
return r.json()
config_list = autogen.config_list_from_models(model_list=[...])
agent = autogen.AssistantAgent(
name="Solana_Agent",
system_message="""You are a Solana trading agent.
Before any trade, call check_wallet to verify wallet safety.
Before buying a token, call check_wallet(..., 'token_safety') first.""",
llm_config={"config_list": config_list}
)
Perfect for agents. Low volume? It's nearly free. Scaling to millions of calls? We have plans.