{"name":"ProofMate","service":"ProofMate ASP — Token Due Diligence Agent","tagline":"Checks public token data and flags what looks off. Not trading advice.","type":"A2MCP","notA2A":true,"categories":["Finance Copilot","Software Utility"],"disclaimer":"I read public chain and market data. This isn’t financial advice or an audit, and I won’t call a token safe or a scam. Dig deeper yourself before you act.","baseUrl":"https://www.proofmate.bond","delivery":{"mode":"synchronous_http","protocol":"x402","summary":"A2MCP over HTTPS — not A2A. Unpaid skill calls return HTTP 402; after payment settles, the skill result (trust memo JSON) is returned in the same settled HTTP 200 response body. No A2A push, no async deliverable list, no pending decisions."},"payment":{"enabled":true,"protocol":"x402","price":"$0.01","feeUsdt":"0.01","network":"eip155:196","payTo":"0xb412bab2b1af232a2045cde1df085a92531ba332","unpaidStatus":402,"delivery":"synchronous_http","note":"Unpaid skill calls return HTTP 402 with a PAYMENT-REQUIRED challenge (accepts[]). After payment settles, the same HTTP request is replayed and the skill result (e.g. trust memo) is returned synchronously in the 200 response body. Not A2A — there is no async push or deliverable channel. A valid PROOFMATE_API_KEY bypasses payment for owner/MCP tooling."},"auth":{"required":false,"apiKeyBypass":true,"whenEnabled":"Unpaid skill calls return HTTP 402 (x402). Settled replay returns the skill JSON in the response body. Optional PROOFMATE_API_KEY bypasses payment for owner/MCP tooling.","headers":["x-api-key","Authorization: Bearer <PROOFMATE_API_KEY>"],"publicDiscovery":["/api/agent","/api/skill"]},"chains":[{"id":"eth","label":"Ethereum","explorer":"Etherscan"},{"id":"base","label":"Base","explorer":"BaseScan"},{"id":"arbitrum","label":"Arbitrum","explorer":"Arbiscan"},{"id":"optimism","label":"Optimism","explorer":"Optimistic Etherscan"},{"id":"polygon","label":"Polygon","explorer":"PolygonScan"},{"id":"bsc","label":"BNB Chain","explorer":"BscScan"},{"id":"avalanche","label":"Avalanche","explorer":"SnowTrace"},{"id":"robinhood","label":"Robinhood","explorer":"Blockscout"},{"id":"blast","label":"Blast","explorer":"Blastscan"},{"id":"linea","label":"Linea","explorer":"Lineascan"},{"id":"scroll","label":"Scroll","explorer":"Scrollscan"},{"id":"berachain","label":"Berachain","explorer":"Berascan"},{"id":"abstract","label":"Abstract","explorer":"Abscan"},{"id":"worldchain","label":"World Chain","explorer":"Worldscan"},{"id":"soneium","label":"Soneium","explorer":"Soneium Explorer"},{"id":"sol","label":"Solana","explorer":"Solscan"}],"skills":[{"id":"search_token","description":"Search tokens by ticker or name across supported chains. Returns ranked candidates.","method":"GET","path":"/api/search","auth":true,"payment":true,"price":"$0.01","query":{"q":"PEPE | CASHCAT | …","chain":"optional — eth | bsc | sol | robinhood | all | …"}},{"id":"resolve_ticker","description":"Resolve a ticker to one best address+chain (canonical majors or top search hit). Returns a ready analyze URL.","method":"GET","path":"/api/resolve","auth":true,"payment":true,"price":"$0.01","query":{"q":"ETH | SOL | BNB | PEPE | …","chain":"optional chain filter"}},{"id":"analyze_token","description":"Fetch public on-chain and market data and return a scored trust memo with red flags in the HTTP response body.","method":"GET","path":"/api/analyze","auth":true,"payment":true,"price":"$0.01","query":{"tokenAddress":"0x… or Solana mint","chain":"optional — omit to auto-detect"},"alternate":{"method":"POST","path":"/api/analyze","body":{"tokenAddress":"0x…","chain":"optional"}}},{"id":"token_follow_up","description":"Answer a follow-up using the evidence and memo from a prior analyze call. Common questions use deterministic rules; open-ended ones use grounded Groq when configured. Server re-scores evidence; fabricated memos are rejected.","method":"POST","path":"/api/follow-up","auth":true,"payment":true,"price":"$0.01","body":{"question":"string","evidence":"TokenEvidence from analyze (unchanged)","memo":"TrustMemo from analyze (unchanged)"}}],"workflow":["resolve_ticker or search_token","analyze_token","token_follow_up"],"mcp":{"transport":"stdio","entry":"mcp/server.ts","run":"PROOFMATE_BASE_URL=<origin> PROOFMATE_API_KEY=<key> npm run mcp","tools":["search_token","resolve_ticker","analyze_token","token_follow_up"],"docs":"/docs/mcp.md"},"docs":{"skill":"/api/skill","skillFile":"SKILL.md","api":"/docs/api.md","mcp":"/docs/mcp.md","agent":"/api/agent"}}