Tools · finance

Token report (price + safety)

Token report — price + liquidity + full safety verdict for any ERC-20 in ONE call (DexScreener + GoPlus). One payment instead of chaining token_price + token_safety. Pay-per-call via x402. An empty body is answered for USDC on Base (the x402 settlement asset); send {"token":"0x…"} for any other token.

$0.0045 per call, paid in USDC on Base or Solana with x402 — no account, no API key. POST https://fiatdock.com/v1/chain/token-report (or GET with the same fields as query parameters) · MCP tool token_report. An answer the tool cannot produce is refused with 4xx/5xx and is not charged.

Inputs

FieldTypeDescriptionExample
tokenstringERC-20 contract address (0x + 40 hex). Omit the whole body to get USDC on Base."0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
chainstringbase (default) | ethereum | polygon | arbitrum | optimism | bsc | avalanche"base"

Example

Request body

{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}

Answer (the published example)

{"network":"base","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","name":"USD Coin","symbol":"USDC","verdict":"safe","price":{"priceUsd":1.0001,"priceChange":{"m5":0,"h1":0,"h6":0,"h24":0.01},"liquidityUsd":5000000,"volume24hUsd":1234567,"marketCapUsd":null,"fdvUsd":null,"topPair":{"dex":"uniswap","pairAddress":"0xpair","quote":"WETH","url":"https://dexscreener.com/base/0xpair"}},"safety":{"verdict":"safe","verdictReason":"No critical risks detected by the on-chain security scan.","isHoneypot":false,"buyTaxPct":0,"sellTaxPct":0,"isOpenSource":true,"isProxy":false,"isMintable":false,"holderCount":12688934,"topHolderPct":12.4,"lpLockedPct":null,"listedOnCex":true,"risks":[]},"source":"DexScreener (most-liquid pair) + GoPlus Security on-chain scan","asOf":"2026-07-30T00:00:00.000Z","note":"One-call token report — not financial advice."}

Call it

curl

# 1) ask: an unpaid call answers 402 with the exact price (free)
curl -i -X POST https://fiatdock.com/v1/chain/token-report -H 'content-type: application/json' -d '{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}'
# 2) pay: any x402 client signs that 402 and resends — see Node or Python below

Node

// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const pay = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:*", client: new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY)) }],
});
const r = await pay("https://fiatdock.com/v1/chain/token-report", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}),
});
console.log(r.status, await r.json());

Python

# pip install "x402[httpx,evm]"
import asyncio, json, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import register_exact_evm_client

async def main():
    client = register_exact_evm_client(x402Client(), Account.from_key(os.environ["AGENT_PRIVATE_KEY"]))
    async with x402HttpxClient(client) as http:
        r = await http.post("https://fiatdock.com/v1/chain/token-report", json=json.loads("{\"token\":\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\"chain\":\"base\"}"))
        print(r.status_code, r.json())

asyncio.run(main())

MCP (Claude, Cursor, any MCP client)

{"mcpServers":{"fiatdock":{"command":"npx","args":["-y","fiatdock-mcp"],"env":{"AGENT_PRIVATE_KEY":"0x<your agent wallet key>"}}}}
// then call the tool "token_report" — the package pays each call from that wallet

The wallet needs USDC on Base. Prefer no install? The remote server https://fiatdock.com/mcp answers the 402 as tool output for an agent that signs its own payments.

Related tools

Machine-readable: OpenAPI · tools.json · llms.txt · /.well-known/x402