DeepCounterfeit for AI agents
Give your agent a brand-impersonation check. Before it helps a user buy, list, promote or launch a token, it can ask DeepCounterfeit whether the coin is posing as a real company, its “official” token or its tokenized stock.
MCP endpoint
https://deepcounterfeit.com/mcp
Remote MCP server over Streamable HTTP (JSON responses, stateless). Protocol versions 2024-11-05 through 2025-11-25. Read-only tools. Without a key you're on the Free tier. Add Authorization: Bearer <API key> for your plan's real-time access. Get a key (14-day real-time trial).
Connect your agent
One command (drop the header for the Free tier):
claude mcp add --transport http deepcounterfeit https://deepcounterfeit.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"Without a key: Settings → Connectors → Add custom connector, paste https://deepcounterfeit.com/mcp.
With a key: add this to claude_desktop_config.json (uses the mcp-remote bridge, needs Node.js), then restart Claude:
{
"mcpServers": {
"deepcounterfeit": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://deepcounterfeit.com/mcp",
"--header", "Authorization: Bearer ${DC_API_KEY}"],
"env": { "DC_API_KEY": "YOUR_API_KEY" }
}
}
}Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"deepcounterfeit": {
"url": "https://deepcounterfeit.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}ChatGPT (plans with developer mode): Settings → Apps & Connectors → Advanced settings → enable Developer mode → Create. Enter https://deepcounterfeit.com/mcp as the MCP server URL and choose No authentication.
ChatGPT connectors don't send custom API-key headers, so this runs on the Free tier for now. We also expose search and fetch tools for ChatGPT's connector and deep-research conventions.
Responses API, hosted MCP tool:
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="YOUR_MODEL",
tools=[{
"type": "mcp",
"server_label": "deepcounterfeit",
"server_url": "https://deepcounterfeit.com/mcp",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"require_approval": "never",
}],
input="Is the token 21gwoStzKtpHaDVPF2wV5TCUm4tVw82hzCT8w3Lnpump a real Anthropic coin?",
)
print(resp.output_text)
OpenAI Agents SDK (Python):
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async with MCPServerStreamableHttp(
name="deepcounterfeit",
params={"url": "https://deepcounterfeit.com/mcp",
"headers": {"Authorization": "Bearer YOUR_API_KEY"}},
) as dc:
agent = Agent(name="Token safety", mcp_servers=[dc],
instructions="Before recommending any token, call check_token or check_name.")
result = await Runner.run(agent, "Any high-risk fake Coinbase coins this week?")
print(result.final_output)Plain JSON-RPC over HTTP POST:
curl -s https://deepcounterfeit.com/mcp \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"check_name","arguments":{"name":"SpaceX Official","symbol":"SPACEX"}}}' Tools
All tools are read-only. Responses are JSON (MCP structuredContent plus a text copy). Times are UTC (ISO 8601). * = required.
check_token · Check a token for brand impersonation
Look up a deployed token by contract/mint address and report whether it impersonates a real company, its "official" token or its tokenized stock (e.g. a fake SpaceX, Coinbase or NVDAx coin). Returns verdict (likely_impersonation | brand_mention_watch | not_in_index), matched brands, risk score 0-100 with reasons (creator bought supply at launch, same-block bundles, creator cash-out, serial launcher), creator wallet and explorer links. Use before buying, listing or promoting a token. "not_in_index" only means no brand match was recorded, not that the token is safe. Without an API key: brand match and coin only (flagged as likely impersonation), no risk score, creator wallet or forensics.
| Parameter | Type | Description |
|---|---|---|
address * | string | Token mint (Solana) or contract address (0x... on BNB Chain, Base, Robinhood Chain). |
chain | string · solana | bsc | base | robinhood | Optional chain filter. |
check_name · Check a token name/ticker before launch or purchase
Run the impersonation detector on a token name and/or ticker symbol without needing an address. Tells you whether a coin called e.g. "SpaceX Official" ($SPACEX) or "TSLAx" would be flagged as impersonating a brand, which brand, and why. Use for pre-launch name checks, or when a user mentions a coin by name and you have no address. Does not assess creator behaviour.
| Parameter | Type | Description |
|---|---|---|
name | string | Token name, e.g. "Coinbase Official Token". |
symbol | string | Ticker symbol without $, e.g. "COIN". |
description | string | Optional token description text. |
search_alerts · Search impersonation alerts
List recent impersonation coins, newest first, filtered by brand, chain, time and severity. Use to answer "are there fake <brand> tokens?", to monitor a brand, or to collect cases for a takedown. Free tier returns alerts older than 24 h only (max 20).
| Parameter | Type | Description |
|---|---|---|
brand | string | Brand id, name, or ticker, e.g. "spacex", "SpaceX", "TSLA". See list_brands. |
chain | string · solana | bsc | base | robinhood | |
since | string | Start time: relative ("24h", "7d", "30m"), ISO 8601 ("2026-10-01") or unix seconds. |
severity | string · high | medium | low | high = risk 70+, medium = 50-69. |
min_risk | integer | |
include_watch | boolean | Also include watch-tier brand mentions (memes), not just impersonation alerts. |
limit | integer |
get_brand_report · Brand impersonation report
Summarise impersonation activity against one brand over a window: number of fake coins, traded volume, breakdown by chain/match type/severity, repeat creator wallets, how many creators bought 50%+ of supply, and the top cases with evidence. Pro/Wholesale keys also get the takedown-ready PDF link.
| Parameter | Type | Description |
|---|---|---|
brand * | string | Brand id, name or ticker, e.g. "anthropic", "Coinbase", "NVDA". |
days | number | Look-back window in days. |
list_brands · List watched brands
List the brands on the watchlist (companies, tokenized stocks, crypto projects, private companies) with ids, tickers and all-time alert counts, most-targeted first. Use to find a brand id or check whether a brand is covered.
| Parameter | Type | Description |
|---|---|---|
query | string | Optional substring of name, id, alias or ticker. |
category | string | Optional: sp500, xstock, crypto, private, foreign, consumer, media, finance, sports, stock. |
limit | integer |
get_stats · Impersonation statistics
Aggregate numbers for a window: alerts, high-severity count, brands hit, by chain, by match type, top brands, data-source health and coverage. Use for overviews, trend questions and to check data freshness.
| Parameter | Type | Description |
|---|---|---|
days | number | Window in days (1 = last 24 h). |
Example arguments
check_token {"address": "21gwoStzKtpHaDVPF2wV5TCUm4tVw82hzCT8w3Lnpump"}
check_name {"name": "SpaceX Official", "symbol": "SPACEX"}
search_alerts {"brand": "coinbase", "since": "7d", "severity": "high"}
get_brand_report {"brand": "anthropic", "days": 30}
list_brands {"query": "tesla"}
get_stats {"days": 1}
Auth & rate limits
Send your key as Authorization: Bearer <key> (or X-API-Key). No key means the Free tier, limited per IP. An invalid key returns HTTP 401. Going over the limit returns a tool error (MCP) or HTTP 429 (REST).
| Plan | Calls | Data |
|---|---|---|
| Free $0 | 5 / min | 24 h delayed. Without a key: brand match + coin only (no risk score, creator wallet or forensics) |
| Starter $29/mo | 60 / min | Real-time |
| Pro / API $149/mo | 300 / min | Real-time |
| Wholesale data license $1,500/mo | 1200 / min | Real-time |
Evidence PDFs (get_brand_report → evidence_pdf) are included on Pro and Wholesale. See pricing.
REST, OpenAPI & discovery
- /openapi.json: OpenAPI 3.1 spec. The agent endpoints under
/v1/agent/*mirror the MCP tools, e.g.GET /v1/agent/check-token/{address},GET /v1/agent/check-name?name=…&symbol=… - /docs: interactive API reference
- /llms.txt: a summary of the service written for language models
- /.well-known/mcp.json (MCP server card) and /.well-known/ai-plugin.json
curl "https://deepcounterfeit.com/v1/agent/check-name?name=Coinbase%20Official&symbol=COIN"
Pay per call (x402)
Live Agents without a key can pay $0.01 USDC per call for real-time results. Payments settle through the public PayAI x402 facilitator.
| Network | Asset | Status |
|---|---|---|
| Base eip155:8453 | USDC 0x8335…2913 | Live |
| Polygon eip155:137 | USDC 0x3c49…3359 | Live |
| Arbitrum eip155:42161 | USDC 0xaf88…5831 | Live |
| Avalanche eip155:43114 | USDC 0xB97E…8a6E | Live |
| Solana solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp | USDC EPjFWd…Dt1v | Live |
| Ethereum · BNB Chain · Robinhood Chain | USDC | Coming soon |
With x402, an agent with no account or key gets a real-time answer for a small USDC payment. The server replies 402 Payment Required with a PAYMENT-REQUIRED header, the agent's wallet signs the payment, and the request is retried with a PAYMENT-SIGNATURE header. Endpoints: GET /v1/x402/token/{address} (real-time check_token) and GET /v1/x402/alerts (real-time alerts, up to 50). Live status: /v1/x402/status. Any x402 v2 client works, e.g. @x402/fetch or the x402 Python SDK.
# 1) Ask: returns 402 + a PAYMENT-REQUIRED header listing the accepted networks
curl -i https://deepcounterfeit.com/v1/x402/token/21gwoStzKtpHaDVPF2wV5TCUm4tVw82hzCT8w3Lnpump
# 2) Your x402 client signs a USDC payment for one option and retries with a PAYMENT-SIGNATURE header
Good to know
- Live with on-chain creator forensics: pump.fun (Solana); Meteora DBC (bags.fm, Believe and others) (Solana); Raydium LaunchLab · letsbonk · StonkFun (Solana); four.meme (BNB Chain); Flap.sh (BNB Chain); Clanker (incl. Bankr) (Base); Zora coins (Base); Pons V2 (Robinhood Chain). Live status: /status.
not_in_indexmeans no brand match was recorded. It is not a safety rating.- Results are automated evidence for human review, not legal findings or investment advice. Agents should say so when relaying them.