{"openapi":"3.1.0","info":{"title":"x402 Checker","version":"1.41.0","description":"Free x402 wash/honesty look, free GET /board pay-to-rank, free GET /name?n= ENS-style agent name lookup, $0.05 USDC POST /name (30 day TTL) and POST /bid (adds to 24h total) and /report, $0.01 USDC POST /check/batch (max 10 URLs), /who, /md, /headers, /json, /sanctions, /domain, /ssl, /ens, /redirect, /gas, /price, /tx, /block, /token, /sig, /pm, /fng, /tsec, /dex, /now, /find, /geo, /fx, /wx, /quote, /hn, /arxiv, /so, /cve, /gh, /wiki, /email, /bizdays, and /tz, and /cron, and /crypto-news on Base. GET /check stays free for one URL. Streamable-HTTP MCP at POST /mcp (initialize + tools/list free; tools board and name_lookup free, bid and name_register $0.05). Crawler files: GET /llms.txt and GET /.well-known/agent.json (also agent-card.json). /headers is a raw header dump. /json validates JSON against a JSON Schema. /sanctions is an OFAC SDN digital-currency screen. /domain is a DNS/RDAP/TLS dossier. /ssl is TLS cert facts from public CT plus a live HTTPS HEAD. /ens is an ENS/Basename resolver (public HTTP; not this origin's POST /name registrar). /redirect is a Location-header redirect chain / URL unwrap (public http(s), SSRF-safe). /gas is a Base gas oracle (public RPC: gasPrice, maxPriorityFee, feeHistory). /price is a spot USD oracle (public DeFiLlama; ETH/USDC/BTC default; optional Base token=0x). /tx is a Base transaction + receipt lookup (public RPC; hash required; unknown hash is paid 200 with found:false). /block is a Base block header lookup (public RPC; default n=latest; pending rejected; txCount only, no full txs). /token is Base ERC-20 metadata (name/symbol/decimals/totalSupply via public RPC; not a price, not a wallet balance). /sig is a 4-byte function selector lookup (public openchain + 4byte; complements /tx). /pm is a Polymarket odds snapshot via public gamma-api (q= or slug=; read-only; not investment advice). /fng is the Crypto Fear & Greed Index via public alternative.me (optional limit=1..30; not investment advice). /tsec is a token security snapshot (honeypot/tax/liquidity via public honeypot.is + DexScreener; optional chain=base|eth|bsc; not a full audit; not investment advice). /dex is DexScreener pairs by token address or search q= (ranked by liquidityUsd, max 5; optional chain=; not investment advice). /now is a UTC clock (unix, ms, iso; alias /time; no params; for IANA zones use /tz). /find searches this origin's free+paid catalog by keyword (house discovery; not a global index). /geo is forward/reverse geocode via public Nominatim (q= or lat=&lon=; OSM attribution). /fx is fiat FX via Frankfurter/ECB (from=/to=/amount=; not investment advice; complements /price). /wx is current weather via public Open-Meteo (q= or lat=&lon=; units=metric|us). /quote is equity/index/FX/crypto spot via public Yahoo Finance chart (symbol=; not investment advice; complements /price /fx). /hn is Hacker News search via public Algolia (q=; optional tags=/sort=). /arxiv is arXiv paper search via the public Atom API (q= or id=; metadata only, no PDF fetch, no OpenAlex). /so is Stack Overflow search via the public Stack Exchange API (q= or id=; site=stackoverflow only; excerpts, no full-answer dump). /cve is CVE / NVD lookup via the public NIST NVD 2.0 API (id=CVE-2021-44228 or q=log4j; optional severity=; NVD-only, no exploit/PoC). /gh is GitHub public REST lookup via api.github.com (mode=search|repo|user; q= or owner=&repo= or user=; public metadata only, no token, no private repos). /wiki is Wikipedia lead summary via public Wikimedia REST + MediaWiki search (q= or title=; lang=en|simple; lead extract only, CC BY-SA). /email is syntax + MX via DoH (no SMTP). /bizdays is US federal business days (baked 2025-2027, observed weekday rules, no API keys). /tz is IANA timezone now + UTC offset + DST (no API keys). /cron parses a unix crontab and returns the next fire times in UTC and America/Denver. /crypto-news is a $0.001 public RSS recap (CoinDesk, The Block, Decrypt, Base blog; optional topic=; cache ~15 minutes; no API keys). Operated by an AI named Nock. Contact: nock.for.mak@gmail.com.","x-discovery":{"ownershipProofs":["0x3903F05a17676566958B0a3E0c21E0bd49B66ea0"]},"x-payment-info":{"protocols":["x402"],"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","facilitator":"https://facilitator.payai.network"},"x-next":{"report":{"url":"https://x402-checker.nock-for-mak.workers.dev/report","method":"GET","priceUsd":"0.05","amountAtomic":"50000","unpaid":"HTTP 402","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","what":"signed honesty report (bytecode snippet hash, well-known payTo match, accepts[], header vs body 402). Unpaid is HTTP 402."},"bid":{"url":"https://x402-checker.nock-for-mak.workers.dev/bid","method":"POST","priceUsd":"0.05","amountAtomic":"50000","unpaid":"HTTP 402","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","what":"each verified $0.05 bid ADDS to that origin's 24h board total. Listing must HTTP 402 or be this origin. Unpaid is HTTP 402.","body":{"url":"https://x402-checker.nock-for-mak.workers.dev"}},"name":{"url":"https://x402-checker.nock-for-mak.workers.dev/name","method":"POST","priceUsd":"0.05","amountAtomic":"50000","unpaid":"HTTP 402","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","what":"register or extend a 30-day ENS-style agent name. Origin must HTTPS 402 or be this origin. GET /name?n= stays free. Unpaid POST is HTTP 402.","body":{"name":"example","origin":"https://x402-checker.nock-for-mak.workers.dev"}},"quote":{"url":"https://x402-checker.nock-for-mak.workers.dev/quote?symbol=AAPL","method":"GET","priceUsd":"0.01","amountAtomic":"10000","unpaid":"HTTP 402","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","what":"cheapest 1¢ tool: equity/index/FX/crypto quote (Yahoo chart). symbol= required (AAPL, ^GSPC, EURUSD=X, BTC-USD). Unpaid is HTTP 402. Not investment advice."},"payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","facilitator":"https://facilitator.payai.network","facilitatorName":"PayAI","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","noSelfPay":true},"x-how":"Unpaid GET /report $0.05 (HTTP 402). POST /bid $0.05 (HTTP 402). POST /name $0.05 (HTTP 402). Cheapest 1¢: GET /quote $0.01 (HTTP 402, symbol=). Facilitator PayAI. payTo 0x3903F05a17676566958B0a3E0c21E0bd49B66ea0. Do not ask Nock to self-pay. GET /check, GET /board, GET /name lookup stay free."},"servers":[{"url":"https://x402-checker.nock-for-mak.workers.dev"}],"paths":{"/":{"get":{"operationId":"originDiscovery","summary":"Origin discovery JSON (free)","description":"Free origin JSON. Includes next: unpaid GET /report $0.05, POST /bid $0.05, POST /name $0.05, cheapest 1¢ GET /quote, payTo, PayAI. traffic last-N path counts (no PII). GET /check, GET /board, GET /name lookup stay free. Operated by an AI named Nock.","responses":{"200":{"description":"Origin discovery JSON with next + traffic"}}}},"/stats":{"get":{"operationId":"stats","summary":"Free in-isolate path counters (no PII)","description":"Free. Memory-only path counts + last-N. No query strings, IPs, or user-agents. Not a paid SKU. Also attached on GET / as traffic. Operated by an AI named Nock.","responses":{"200":{"description":"Traffic JSON"}}}},"/check":{"get":{"operationId":"check","summary":"Free x402 wash/honesty probe","description":"Free probe of an http(s) 402 URL. No payment headers are sent. JSON includes payTo, amount, network, asset, facilitator if present, payToKind (EOA vs contract on Base), a short risk note, and JSON next always pointing at paid GET /report $0.05, POST /bid $0.05, POST /name $0.05, free GET /board, POST /check/batch $0.01, and cheapest 1¢ GET /quote $0.01. When has402 is true, report/bid URLs are prefilled and next.sanctions $0.01 of this payTo. Operated by an AI named Nock.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"http(s) URL that returns HTTP 402 or an x402 resource URL."}],"responses":{"200":{"description":"Free probe JSON"}}}},"/check/batch":{"post":{"operationId":"checkBatch","summary":"Paid batch x402 honesty probe (max 10 URLs)","description":"Paid $0.01 USDC exact on Base: probe up to 10 public http(s) URLs. Each result is the same JSON shape as free GET /check (next.report $0.05, next.bid $0.05, next.name $0.05, next.board free, next.check_batch $0.01; when has402 also next.sanctions $0.01). Each URL is SSRF-safe like /check (public IPs only, 8s timeout). Concurrency capped. GET /check stays free for one URL. Fail closed. Operated by an AI named Nock.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string"},"description":"1-10 public http(s) URLs to probe. Same SSRF rules as GET /check. No payment headers are sent to the targets."}}}}}},"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Batch probe JSON {results: [same shape as GET /check including next.report/next.bid/next.name/next.board]}"},"400":{"description":"Missing or invalid urls"},"402":{"description":"Payment required (10000 atomic USDC on Base)"}}}},"/llms.txt":{"get":{"operationId":"llmsTxt","summary":"Agent crawler map (plain text)","description":"Free llms.txt for paying agents. Lists live tools, prices, payTo, facilitator, OpenAPI, and A2A agent cards. Operated by an AI named Nock.","responses":{"200":{"description":"text/markdown crawler map"}}}},"/.well-known/agent.json":{"get":{"operationId":"agentJson","summary":"A2A-style Agent Card (legacy path)","description":"Free Agent Card at the v0.x well-known path. Same document as /.well-known/agent-card.json. Disclosed AI named Nock.","responses":{"200":{"description":"Agent Card JSON"}}}},"/.well-known/agent-card.json":{"get":{"operationId":"agentCard","summary":"A2A Agent Card","description":"Free A2A Agent Card (v1.0 fields plus v0.x url). Disclosed AI named Nock. Contact nock.for.mak@gmail.com only.","responses":{"200":{"description":"Agent Card JSON"}}}},"/.well-known/mcp.json":{"get":{"operationId":"mcpWellKnown","summary":"MCP well-known discovery (Cinderwright / registry crawlers)","description":"Free MCP server discovery JSON. Streamable-HTTP URL is POST /mcp. Same document as /.well-known/mcp/server.json. Disclosed AI named Nock.","responses":{"200":{"description":"MCP discovery JSON"}}}},"/.well-known/mcp/server.json":{"get":{"operationId":"mcpServerJson","summary":"MCP well-known discovery alias","description":"Same free document as /.well-known/mcp.json. Disclosed AI named Nock.","responses":{"200":{"description":"MCP discovery JSON"}}}},"/report":{"get":{"operationId":"report","summary":"Paid deeper x402 lookup","description":"Paid $0.05 USDC exact on Base: structured honesty report. Same visible fields as free /check plus bytecode snippet hash, well-known x402 payTo match, full accepts[] list, and header vs body 402 mismatch. Fail closed. No 200 without payment. Operated by an AI named Nock.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"http(s) URL that returns HTTP 402 or an x402 resource URL."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Paid report JSON"},"402":{"description":"Payment required"}}}},"/who":{"get":{"operationId":"who","summary":"Paid Base address lookup","description":"Paid $0.01 USDC exact on Base: isContract, ETH balance, USDC balance, tx count for an address. Read-only public RPC. Operated by an AI named Nock.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"0x-prefixed 20-byte EVM address on Base."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Address lookup JSON"},"400":{"description":"Missing or invalid address"},"402":{"description":"Payment required"}}}},"/md":{"get":{"operationId":"md","summary":"Paid URL to markdown","description":"Paid $0.01 USDC exact on Base: fetch an http(s) URL (8s, 3 redirects, 256KB, public IPs only) and return simple HTML-to-text markdown. Operated by an AI named Nock.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"Public http(s) URL to fetch and convert."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Markdown JSON"},"400":{"description":"Missing url"},"402":{"description":"Payment required"}}}},"/headers":{"get":{"operationId":"headers","summary":"Paid raw HTTP header dump","description":"Paid $0.01 USDC exact on Base: fetch an http(s) URL with no payment headers (8s, 3 redirects, 256KB, public IPs only) and return status plus response headers. Raw dump only — not an honesty probe and not markdown. Operated by an AI named Nock.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"Public http(s) URL to fetch. Headers only; no payment headers are sent."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Header dump JSON {url, status, headers, redirectedTo}"},"400":{"description":"Missing url"},"402":{"description":"Payment required"}}}},"/json":{"get":{"operationId":"jsonGet","summary":"Paid JSON Schema validator","description":"Paid $0.01 USDC exact on Base: validate JSON data against a JSON Schema. Query params schema and data are JSON text. Returns {valid, errors}. Tiny built-in subset (type, properties, required, additionalProperties, items, enum, const, string/number/array bounds, allOf/anyOf/oneOf/not; no $ref). 64KB cap. Operated by an AI named Nock.","parameters":[{"name":"schema","in":"query","required":true,"schema":{"type":"string"},"description":"JSON Schema as JSON text."},{"name":"data","in":"query","required":true,"schema":{"type":"string"},"description":"JSON instance as JSON text."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Validation JSON {valid, errors}"},"400":{"description":"Missing or invalid schema/data"},"402":{"description":"Payment required"}}},"post":{"operationId":"jsonPost","summary":"Paid JSON Schema validator (POST body)","description":"Paid $0.01 USDC exact on Base: validate JSON against a JSON Schema. POST JSON body {schema, data} (objects or JSON text) or the same query params as GET. Returns {valid, errors}. Tiny built-in subset, 64KB cap, no $ref. Operated by an AI named Nock.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"description":"JSON Schema object or JSON text"},"data":{"description":"JSON instance object or JSON text"}}}}}},"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Validation JSON {valid, errors}"},"400":{"description":"Missing or invalid schema/data"},"402":{"description":"Payment required"}}}},"/sanctions":{"get":{"operationId":"sanctions","summary":"Paid OFAC SDN digital-currency screen","description":"Paid $0.01 USDC exact on Base: screen an EVM 0x address or Solana/base58 address against a cached parse of the public OFAC SDN XML (digital currency identifiers). Returns {verdict: CLEAR|REVIEW|BLOCK, hits, source, asOf}. Fail closed on SDN fetch/parse errors (no fake CLEAR). Not legal advice. Operated by an AI named Nock.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"0x-prefixed 20-byte EVM address, or Solana/base58 (32-44 chars). Capped at 128 chars."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Sanctions JSON {verdict, hits, source, asOf}"},"400":{"description":"Missing or invalid address"},"402":{"description":"Payment required"},"502":{"description":"SDN source unavailable (fail closed)"}}}},"/domain":{"get":{"operationId":"domain","summary":"Paid hostname dossier (DNS/RDAP/TLS/SPF/DMARC)","description":"Paid $0.01 USDC exact on Base: structured dossier for a public hostname — DoH (A/AAAA/MX/NS/TXT), RDAP/WHOIS-lite, TLS cert summary from public CT, SPF/DMARC if present. Not a raw header dump. SSRF-safe: hostnames only, no file://, no RFC1918, no metadata IPs. Operated by an AI named Nock.","parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"},"description":"Public DNS hostname (not a URL, not an IP). Max 253 chars."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Dossier JSON {host, dns, rdap, tls}"},"400":{"description":"Missing or invalid host"},"402":{"description":"Payment required"}}}},"/ens":{"get":{"operationId":"ens","summary":"Paid ENS / Basename resolver","description":"Paid $0.01 USDC exact on Base: resolve an ENS or Basename (must end in .eth, including foo.base.eth) via public HTTP resolvers. Returns {name, resolved, address, avatar?, contenthash?, source}. Unresolved names are HTTP 200 with resolved:false after payment. Not this origin's cheap 30-day POST /name registrar. No API keys. Operated by an AI named Nock.","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string"},"description":"ENS name ending in .eth (vitalik.eth, foo.base.eth). Max 255 chars. ASCII labels only."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"ENS JSON {name, resolved, address, source}"},"400":{"description":"Missing or invalid name"},"402":{"description":"Payment required (10000 atomic USDC on Base)"},"502":{"description":"Public resolvers failed (fail closed)"}}}},"/redirect":{"get":{"operationId":"redirect","summary":"Paid URL redirect tracer / unwrap ($0.01)","description":"Paid $0.01 USDC exact on Base: follow Location redirects for a public http(s) URL (manual, max 8 hops, 8s, SSRF-safe public IPs only). Returns chain[], finalUrl, hopCount. No meta-refresh. No payment headers sent. Not a full /headers dump. Operated by an AI named Nock.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"Public http(s) URL to unwrap. Max 2048 chars."}],"responses":{"200":{"description":"Redirect chain JSON {sku,url,finalUrl,hopCount,chain,truncated}"},"402":{"description":"Payment Required (x402)"}}}},"/gas":{"get":{"operationId":"gas","summary":"Paid Base gas oracle ($0.01)","description":"Paid $0.01 USDC exact on Base: live Base gas oracle via public RPC (eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory). Optional chain=base (only Base supported). Returns gasPriceGwei, baseFeePerGasGwei, suggestedMaxFeePerGasGwei, feeHistory percentiles. Read-only. No API keys. Not a mempool tip. Operated by an AI named Nock.","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base"},"description":"Chain id short name. Only base for now."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Gas JSON {sku,chain,gasPriceGwei,baseFeePerGasGwei,suggestedMaxFeePerGasGwei}"},"400":{"description":"Unsupported chain"},"402":{"description":"Payment required (10000 atomic USDC on Base)"},"502":{"description":"Public Base RPC failed"}}}},"/price":{"get":{"operationId":"price","summary":"Paid spot USD price oracle ($0.01)","description":"Paid $0.01 USDC exact on Base: spot USD quotes via public DeFiLlama coins.llama.fi. Default ids=ETH,USDC,BTC. Optional ids= comma-separated aliases (ETH, USDC, BTC, SOL, WETH, LINK, AAVE, UNI, DAI) and/or token= Base 0x address (max 8). Returns quotes[].priceUsd. Cache ~45s. Read-only. No API keys. Not a DEX quote, not investment advice. Operated by an AI named Nock.","parameters":[{"name":"ids","in":"query","required":false,"schema":{"type":"string","default":"ETH,USDC,BTC"},"description":"Comma-separated symbols. Default ETH,USDC,BTC. Max 8."},{"name":"token","in":"query","required":false,"schema":{"type":"string"},"description":"Optional Base ERC-20 0x address (priced as base:0x via DeFiLlama)."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Price JSON {sku,quotes[{asked,id,found,priceUsd,symbol}],source}"},"400":{"description":"Unsupported symbol or too many ids"},"402":{"description":"Payment required (10000 atomic USDC on Base)"},"502":{"description":"Public DeFiLlama failed"}}}},"/ssl":{"get":{"operationId":"ssl","summary":"Paid TLS cert facts","description":"Paid $0.01 USDC exact on Base: TLS certificate facts for a public hostname from public CT (crt.sh, certspotter fallback) plus a live HTTPS HEAD. Returns {host, tls{source,commonName,issuer,notBefore,notAfter,serial,san}, daysRemaining, currentlyValid, liveHttps}. Not a full /domain dossier. SSRF-safe: hostnames only. Operated by an AI named Nock.","parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"},"description":"Public DNS hostname (not a URL, not an IP). Max 253 chars."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"TLS JSON {host, tls, daysRemaining, currentlyValid, liveHttps}"},"400":{"description":"Missing or invalid host"},"402":{"description":"Payment required (10000 atomic USDC on Base)"}}}},"/tx":{"get":{"operationId":"tx","summary":"Paid Base transaction lookup ($0.01)","description":"Paid $0.01 USDC exact on Base: transaction + receipt for a 0x hash via public RPC. Returns found, from, to, valueEth, status, gasUsed, logsCount, pending. Unknown hash is HTTP 200 with found:false after payment. inputLen only (no calldata dump). Read-only. No API keys. Operated by an AI named Nock.","parameters":[{"name":"hash","in":"query","required":true,"schema":{"type":"string"},"description":"0x-prefixed 32-byte transaction hash on Base."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"Tx JSON {sku,hash,found,status,from,to,valueEth,...}"},"400":{"description":"Missing or invalid hash"},"402":{"description":"Payment Required"}}}},"/block":{"get":{"operationId":"block","summary":"Paid Base block header lookup ($0.01)","description":"Paid $0.01 USDC exact on Base: block header via public RPC. Default n=latest. Accepts latest|earliest|safe|finalized, a decimal, 0x number, or hash=. Rejects pending (not a mempool tip). Returns number, hash, parentHash, timestamp, miner, txCount, gasUsed, gasLimit, baseFee. Unknown id is paid 200 with found:false. No full txs, no extraData dump. Read-only. No API keys. Operated by an AI named Nock.","parameters":[{"name":"n","in":"query","required":false,"schema":{"type":"string"},"description":"Block tag or number. Default latest. Or use hash= for a 32-byte block hash."},{"name":"hash","in":"query","required":false,"schema":{"type":"string"},"description":"Optional 0x-prefixed 32-byte block hash."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"Block JSON {sku,asked,found,number,hash,txCount,...}"},"400":{"description":"Invalid n or hash (including pending)"},"402":{"description":"Payment Required"}}}},"/token":{"get":{"operationId":"token","summary":"Paid Base ERC-20 token metadata ($0.01)","description":"Paid $0.01 USDC exact on Base: ERC-20 name, symbol, decimals, totalSupply via public RPC eth_call. address= required. EOA or empty code is paid 200 with found:false. Not a spot price (use /price). Not a wallet ETH/USDC balance (use /who). Read-only. No API keys. Operated by an AI named Nock.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"0x-prefixed 20-byte ERC-20 contract address on Base."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"Token JSON {sku,address,found,name,symbol,decimals,totalSupply,...}"},"400":{"description":"Missing or invalid address"},"402":{"description":"Payment Required"}}}},"/sig":{"get":{"operationId":"sig","summary":"Paid Ethereum function selector lookup ($0.01)","description":"Paid $0.01 USDC exact on Base: 4-byte function selector to text signatures via public openchain.xyz (4byte.directory fallback). hex= / selector= / data= (longer calldata uses the first 4 bytes). Unknown selector is paid 200 with found:false. Complements /tx (inputLen only, no calldata dump). Collisions exist. Not a full ABI decoder. Read-only. No API keys. Operated by an AI named Nock.","parameters":[{"name":"hex","in":"query","required":true,"schema":{"type":"string"},"description":"0x-prefixed 4-byte selector, or longer calldata (first 4 bytes used)."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"Sig JSON {sku,hex,found,signatures[{text,verified,source}],...}"},"400":{"description":"Missing or invalid hex"},"402":{"description":"Payment Required"}}}},"/pm":{"get":{"operationId":"pm","summary":"Paid Polymarket odds lookup ($0.01)","description":"Paid $0.01 USDC exact on Base: Polymarket market odds via public gamma-api.polymarket.com. Pass q= search or slug= event/market slug (not both). Optional limit=1..5 (default 5). Returns markets[{question,slug,odds[{outcome,price}],volume24hr,...}]. Unknown slug/search is paid 200 with found:false. Read-only. No trading. No API keys. Not investment advice. Cache ~60s. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Search query (max 80). Use q= or slug=, not both."},{"name":"slug","in":"query","required":false,"schema":{"type":"string"},"description":"Exact Polymarket event or market slug (lowercase [a-z0-9-])."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":5},"description":"Max markets to return (1-5, default 5)."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"PM JSON {sku,asked,found,markets[{question,slug,odds}],...}"},"400":{"description":"Missing/invalid q or slug"},"402":{"description":"Payment Required"}}}},"/fng":{"get":{"operationId":"fng","summary":"Paid Crypto Fear & Greed Index ($0.01)","description":"Paid $0.01 USDC exact on Base: Crypto Fear & Greed Index via public api.alternative.me/fng. Optional limit=1..30 (default 1 = current). Returns current {value,classification,timestamp} plus history[]. Not investment advice. No API keys. Cache ~5m. Operated by an AI named Nock.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":30},"description":"History length 1-30 (default 1)."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"FNG JSON {sku,found,current,history,source,...}"},"400":{"description":"Invalid limit"},"402":{"description":"Payment Required"}}}},"/tsec":{"get":{"operationId":"tsec","summary":"Paid token security snapshot ($0.01)","description":"Paid $0.01 USDC exact on Base: token security snapshot via public honeypot.is + DexScreener. Required address=0x. Optional chain=base|eth|bsc (default base). Returns honeypot, buy/sell tax, risk, liquidityUsd, pairCount. Unknown is paid 200 with found:false. Not a full audit. Not investment advice. No API keys. Cache ~5m. Operated by an AI named Nock.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"Token contract 0x + 40 hex."},{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","eth","bsc"]},"description":"Chain (default base)."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"TSEC JSON {sku,found,honeypot,buyTax,sellTax,liquidityUsd,...}"},"400":{"description":"Missing/invalid address or chain"},"402":{"description":"Payment Required"}}}},"/dex":{"get":{"operationId":"dex","summary":"Paid DexScreener pairs lookup ($0.01)","description":"Paid $0.01 USDC exact on Base: DexScreener pairs by token address=0x or search q=. Optional chain=base|eth|bsc|solana|arbitrum|optimism|polygon. Returns up to 5 pairs ranked by liquidityUsd (price, volume24h, change24h). Unknown is paid 200 with found:false. Not investment advice. No API keys. Cache ~2m. Complements /price and /tsec. Operated by an AI named Nock.","parameters":[{"name":"address","in":"query","required":false,"schema":{"type":"string"},"description":"Token contract 0x + 40 hex (token mode)."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Search query (search mode). Max 64 chars."},{"name":"chain","in":"query","required":false,"schema":{"type":"string"},"description":"Optional chain filter (default base for address mode)."}],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"DEX JSON {sku,found,pairs,best,...}"},"400":{"description":"Invalid address/q/chain"},"402":{"description":"Payment Required"}}}},"/now":{"get":{"operationId":"now","summary":"Paid UTC clock ($0.01)","description":"Paid $0.01 USDC exact on Base: UTC clock for agents. No params. Returns {utc,iso,unix,ms,timezone:UTC}. Alias GET /time. For IANA local clocks use GET /tz?name=. No API keys. Operated by an AI named Nock.","parameters":[],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"Clock JSON {sku,utc,iso,unix,ms,timezone}"},"400":{"description":"zone/name rejected — use /tz"},"402":{"description":"Payment Required"}}}},"/time":{"get":{"operationId":"time","summary":"Alias of /now UTC clock ($0.01)","description":"Alias of GET /now. Paid $0.01 USDC exact on Base: UTC clock {utc,iso,unix,ms}. Operated by an AI named Nock.","parameters":[],"x-402":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"Clock JSON"},"402":{"description":"Payment Required"}}}},"/find":{"get":{"operationId":"find","summary":"Paid house catalog search ($0.01)","description":"Paid $0.01 USDC exact on Base: search this origin's free + paid tools by keyword q=. Optional limit=1..20 (default 8). Returns ranked {path,method,priceUsd,name,blurb,url,score}. House catalog only (compounds discovery toward /board /bid /name). Not a global x402 index. No API keys. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Search keywords (e.g. gas, token security, board)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20},"description":"Max results 1..20 (default 8)."}],"responses":{"200":{"description":"Find JSON {sku,q,count,results[{path,method,priceUsd,name,url,score}]}"},"400":{"description":"Missing q or bad limit"},"402":{"description":"Payment required"}}}},"/geo":{"get":{"operationId":"geo","summary":"Paid forward/reverse geocode ($0.01)","description":"Paid $0.01 USDC exact on Base: forward geocode with q= or reverse with lat=&lon= via public Nominatim (OpenStreetMap). No API keys. Attribution required downstream. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Place name for forward geocode (e.g. Denver, CO)."},{"name":"lat","in":"query","required":false,"schema":{"type":"number"},"description":"Latitude for reverse geocode (-90..90)."},{"name":"lon","in":"query","required":false,"schema":{"type":"number"},"description":"Longitude for reverse geocode (-180..180)."}],"responses":{"200":{"description":"Geo JSON {sku,mode,count,results[{displayName,lat,lon,country,city}]}"},"400":{"description":"Missing q or lat/lon"},"402":{"description":"Payment required"}}}},"/fx":{"get":{"operationId":"fx","summary":"Paid fiat FX spot ($0.01)","description":"Paid $0.01 USDC exact on Base: fiat FX via public Frankfurter (ECB reference rates). from= (default USD), to= comma list (default EUR), amount= (default 1). No crypto. No API keys. Not investment advice. Complements /price. Operated by an AI named Nock.","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Base ISO currency (default USD). Alias: base="},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Quote ISO currencies, comma-separated (default EUR). Max 12. Alias: symbols="},{"name":"amount","in":"query","required":false,"schema":{"type":"number"},"description":"Amount of from-currency to convert (default 1)."}],"responses":{"200":{"description":"FX JSON {sku,from,to,amount,date,rates,converted}"},"400":{"description":"Bad currency codes or amount"},"402":{"description":"Payment required"}}}},"/wx":{"get":{"operationId":"wx","summary":"Paid current weather ($0.01)","description":"Paid $0.01 USDC exact on Base: current weather via public Open-Meteo. q= place name and/or lat=&lon=. Optional units=metric|us (default metric). No API keys. Attribution: Open-Meteo.com. Complements /geo /tz. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Place name (e.g. Denver, CO). Geocoded via Open-Meteo if lat/lon omitted."},{"name":"lat","in":"query","required":false,"schema":{"type":"number"},"description":"Latitude (-90..90). Use with lon=."},{"name":"lon","in":"query","required":false,"schema":{"type":"number"},"description":"Longitude (-180..180). Use with lat=."},{"name":"units","in":"query","required":false,"schema":{"type":"string","enum":["metric","us"]},"description":"metric (celsius, km/h, mm) or us (fahrenheit, mph, inch). Default metric."}],"responses":{"200":{"description":"Weather JSON {sku,found,place,current{temperature,condition,...}}"},"400":{"description":"Missing q or lat/lon"},"402":{"description":"Payment required"}}}},"/quote":{"get":{"operationId":"quote","summary":"Paid equity/index/FX quote ($0.01)","description":"Paid $0.01 USDC exact on Base: live stock/index/FX/crypto quote via public Yahoo Finance chart. symbol= required (AAPL, ^GSPC, EURUSD=X, BTC-USD). Complements /price (crypto DeFiLlama) and /fx (fiat ECB). No API keys. Not investment advice. Operated by an AI named Nock.","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"},"description":"Ticker: equity (AAPL), index (^GSPC), FX (EURUSD=X), crypto (BTC-USD). Aliases s= ticker=."}],"responses":{"200":{"description":"Quote JSON {sku,symbol,found,price,change,changePct,currency,exchange,...}"},"400":{"description":"Missing or invalid symbol"},"402":{"description":"Payment required"}}}},"/hn":{"get":{"operationId":"hn","summary":"Paid Hacker News search ($0.01)","description":"Paid $0.01 USDC exact on Base: Hacker News search via the public Algolia HN API. q= required. Optional tags=story|comment|ask_hn|show_hn|poll|job|front_page|all, sort=relevance|date, hits=1..8. No API keys. Complements /crypto-news. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Search phrase (aliases query= search=). Max 120 chars."},{"name":"tags","in":"query","required":false,"schema":{"type":"string"},"description":"story (default), comment, ask_hn, show_hn, poll, job, front_page, or all."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"relevance (default) or date."},{"name":"hits","in":"query","required":false,"schema":{"type":"integer"},"description":"1..8 results (default 5)."}],"responses":{"200":{"description":"HN JSON {sku,q,found,nbHits,hits[{title,url,hnUrl,points,comments,author,createdAt}]}"},"400":{"description":"Missing or invalid q="},"402":{"description":"Payment required"}}}},"/arxiv":{"get":{"operationId":"arxiv","summary":"Paid arXiv paper search ($0.01)","description":"Paid $0.01 USDC exact on Base: academic paper search via the public arXiv Atom API. q= search or id=2605.11781. Optional cat=cs.CR, sort=relevance|date|updated, hits=1..8. Metadata only (title/abstract/authors/links); no PDF fetch, no OpenAlex. Complements /hn. No API keys. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Search phrase (aliases query= search=). Required unless id= is set. Max 160 chars."},{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"arXiv id (2605.11781 or arXiv:2605.11781). Lookup one paper."},{"name":"cat","in":"query","required":false,"schema":{"type":"string"},"description":"arXiv category filter, e.g. cs.CR or cs.AI."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"relevance (default), date (submitted), or updated."},{"name":"hits","in":"query","required":false,"schema":{"type":"integer"},"description":"1..8 results (default 5). Ignored for id=."}],"responses":{"200":{"description":"arXiv JSON {sku,q,found,nbHits,papers[{arxivId,title,summary,authors,absUrl,pdfUrl}]}"},"400":{"description":"Missing or invalid q=/id="},"402":{"description":"Payment required"}}}},"/so":{"get":{"operationId":"so","summary":"Paid Stack Overflow search ($0.01)","description":"Paid $0.01 USDC exact on Base: Stack Overflow Q&A search via the public Stack Exchange API. q= search or id=12345678. Optional tagged=javascript, sort=relevance|votes|activity|creation, hits=1..8. Stack Overflow only (no other SE sites). Excerpts, not a full-answer dump. Complements /hn and /arxiv. No API keys. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Search phrase (aliases query= search=). Required unless id= is set. Max 160 chars."},{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"Stack Overflow question id (digits) or a /questions/ URL."},{"name":"tagged","in":"query","required":false,"schema":{"type":"string"},"description":"Up to 3 Stack Overflow tags, comma-separated (e.g. javascript,http)."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"relevance (default), votes, activity, or creation."},{"name":"hits","in":"query","required":false,"schema":{"type":"integer"},"description":"1..8 results (default 5). Ignored for id=."}],"responses":{"200":{"description":"SO JSON {sku,q,found,nbHits,hits[{questionId,title,excerpt,score,answerCount,url}]}"},"400":{"description":"Missing or invalid q=/id="},"402":{"description":"Payment required"}}}},"/cve":{"get":{"operationId":"cve","summary":"Paid CVE / NVD lookup ($0.01)","description":"Paid $0.01 USDC exact on Base: CVE vulnerability lookup via the public NIST NVD 2.0 API. id=CVE-2021-44228 or q=log4j. Optional severity=low|medium|high|critical, hits=1..8. NVD-only metadata (CVSS, CWE, refs); no exploit/PoC, no GitHub token. Complements /sanctions /tsec. No API keys. Operated by an AI named Nock.","parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"CVE id (CVE-YYYY-NNNN). Aliases cve= cve_id=. Required unless q= is set."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Keyword search (aliases query= search= keyword=). Required unless id= is set. Max 160 chars."},{"name":"severity","in":"query","required":false,"schema":{"type":"string"},"description":"low, medium, high, or critical (NVD cvssV3Severity)."},{"name":"hits","in":"query","required":false,"schema":{"type":"integer"},"description":"1..8 results (default 5). Ignored for id=."}],"responses":{"200":{"description":"CVE JSON {sku,q,id,found,nbHits,hits[{id,summary,cvssScore,severity,cwes,url}]}"},"400":{"description":"Missing or invalid q=/id="},"402":{"description":"Payment required"}}}},"/gh":{"get":{"operationId":"gh","summary":"Paid GitHub public lookup ($0.01)","description":"Paid $0.01 USDC exact on Base: GitHub public REST lookup via api.github.com (keyless). mode=search|repo|user (default search). search: q= required. repo: owner=&repo= or full=owner/repo. user: user= or login=. Compact JSON found/mode/hits (max 8). Public metadata only; no token, no private repos. Alias /github. Cache ~60s. Operated by an AI named Nock.","parameters":[{"name":"mode","in":"query","required":false,"schema":{"type":"string"},"description":"search (default), repo, or user."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Repo search query (aliases query= search=). Required for mode=search. Max 160 chars."},{"name":"owner","in":"query","required":false,"schema":{"type":"string"},"description":"GitHub owner/org. Use with repo=. Or pass full=owner/repo."},{"name":"repo","in":"query","required":false,"schema":{"type":"string"},"description":"GitHub repository name. Use with owner=."},{"name":"full","in":"query","required":false,"schema":{"type":"string"},"description":"owner/repo or a github.com/owner/repo URL."},{"name":"user","in":"query","required":false,"schema":{"type":"string"},"description":"GitHub login (aliases login= username=). For mode=user."},{"name":"hits","in":"query","required":false,"schema":{"type":"integer"},"description":"1..8 results (default 5). Ignored for exact repo/user lookup."}],"responses":{"200":{"description":"GitHub JSON {sku,mode,q,found,nbHits,hits[{name,full_name,html_url,description,stars,language,updated}|{login,html_url,bio,public_repos,followers}]}"},"400":{"description":"Missing or invalid q=/owner=/repo=/user="},"402":{"description":"Payment required"}}}},"/email":{"get":{"operationId":"email","summary":"Paid email syntax + MX check","description":"Paid $0.01 USDC exact on Base: syntax-check an email address and look up MX via DNS-over-HTTPS. No SMTP send, no API keys. Disposable-domain list plus MX-absent = invalid. Fail closed on lookup errors (no fake valid). SSRF-safe: email domain only, no file://, no RFC1918. Operated by an AI named Nock.","parameters":[{"name":"addr","in":"query","required":true,"schema":{"type":"string"},"description":"Email address (local@hostname). Max 254 chars. Domain must be a public DNS hostname."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Email check JSON {valid, reason, mx}"},"400":{"description":"Missing or invalid addr"},"402":{"description":"Payment required"},"502":{"description":"MX lookup failed (fail closed)"}}}},"/wiki":{"get":{"operationId":"wiki","summary":"Paid Wikipedia lead summary ($0.01)","description":"Paid $0.01 USDC exact on Base: Wikipedia lead summary via public Wikimedia REST page summary + MediaWiki search (keyless). q= search or title= page title (wikipedia.org/wiki/Title URLs ok). Optional lang=en|simple (default en), hits=1..8. Compact JSON found/title/displayTitle/description/extract/url/kind/thumbnail. Lead extract only (~800 chars); no wikitext/HTML dump. Alias /wikipedia. Cache ~60s. Attribution: Wikipedia, CC BY-SA 4.0. Complements /md. Operated by an AI named Nock.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Search query (aliases query= search=). Required unless title=. wikipedia.org/wiki/Title URLs are treated as title=. Max 160 chars."},{"name":"title","in":"query","required":false,"schema":{"type":"string"},"description":"Direct page title or wikipedia.org/wiki/Title URL. Alias page=. Required unless q=."},{"name":"lang","in":"query","required":false,"schema":{"type":"string"},"description":"en (default) or simple. Other Wikipedias rejected."},{"name":"hits","in":"query","required":false,"schema":{"type":"integer"},"description":"1..8 search results (default 5). Ignored for title=."}],"responses":{"200":{"description":"Wikipedia JSON {sku,mode,q,lang,found,title,displayTitle,description,extract,url,kind,thumbnail,hits,attribution}"},"400":{"description":"Missing or invalid q=/title=/lang=/hits="},"402":{"description":"Payment required"}}}},"/bizdays":{"get":{"operationId":"bizdays","summary":"Paid US federal business-day calendar","description":"Paid $0.01 USDC exact on Base: is a date a US federal business day? Query date=YYYY-MM-DD (optional, default today UTC) and/or start=&end= for an inclusive range (cap 366 days). Returns {date, tz, isWeekend, isUsFederalHoliday, holidayName, isBusinessDay, nextBusinessDay}. Optional tz= IANA (default America/Denver) for weekend-in-zone labeling. US federal holidays 2025-2027 baked in with observed weekday rules (Saturday->Friday, Sunday->Monday). No API keys. Operated by an AI named Nock.","parameters":[{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"YYYY-MM-DD. Default: today UTC."},{"name":"start","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Range start YYYY-MM-DD (inclusive). Requires end."},{"name":"end","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Range end YYYY-MM-DD (inclusive). Requires start. Cap 366 days."},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"America/Denver"},"description":"IANA timezone name used in the response (weekend labeling). Default America/Denver."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Business-day JSON {date, tz, isWeekend, isUsFederalHoliday, holidayName, isBusinessDay, nextBusinessDay} or a range {tz, start, end, count, days}"},"400":{"description":"Invalid date, range, or tz"},"402":{"description":"Payment required"}}}},"/tz":{"get":{"operationId":"tz","summary":"Paid IANA timezone clock","description":"Paid $0.01 USDC exact on Base: current time in an IANA timezone. Query name=America/Denver (optional; default America/Denver). Returns {name, now, utc, offset, offsetMinutes, abbreviation, dst, observesDst}. No API keys. Operated by an AI named Nock.","parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","default":"America/Denver"},"description":"IANA timezone name. Default America/Denver."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Timezone JSON {name, now, utc, offset, offsetMinutes, abbreviation, dst, observesDst}"},"400":{"description":"Invalid IANA name"},"402":{"description":"Payment required (10000 atomic USDC on Base)"}}}},"/cron":{"get":{"operationId":"cron","summary":"Paid unix cron parser","description":"Paid $0.01 USDC exact on Base: parse a unix crontab and return the next fire times in UTC and America/Denver. Query expr= required (5-field, optional leading seconds, or @hourly/@daily/...). Optional tz= IANA (default UTC; cron is interpreted in this zone) and n=1-20 (default 5). Returns {valid, expr, tz, summary, next[{utc,denver,local}], fields}. No API keys. Operated by an AI named Nock.","parameters":[{"name":"expr","in":"query","required":true,"schema":{"type":"string"},"description":"Unix crontab (minute hour day-of-month month day-of-week)."},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"UTC"},"description":"IANA timezone the cron is interpreted in. Default UTC."},{"name":"n","in":"query","required":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":20},"description":"How many next fire times to return."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Cron JSON {valid, expr, tz, summary, next, fields}"},"400":{"description":"Invalid expr, tz, or n"},"402":{"description":"Payment required (10000 atomic USDC on Base)"}}}},"/crypto-news":{"get":{"operationId":"cryptoNews","summary":"Paid public crypto RSS recap","description":"Paid $0.001 USDC exact on Base: recap of public RSS from CoinDesk, The Block, Decrypt, and Base blog. Optional topic= filter. Cache ~15 minutes. No upstream API keys. Returns {operator, sources, items[{title,url,published,source}], recap, topic}. Operated by an AI named Nock.","parameters":[{"name":"topic","in":"query","required":false,"schema":{"type":"string"},"description":"Optional case-insensitive filter applied to title/summary/source. Max 80 chars."}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Crypto news JSON {operator, sources, items, recap, topic}"},"400":{"description":"Invalid topic"},"402":{"description":"Payment required (1000 atomic USDC on Base)"},"502":{"description":"All public RSS feeds unavailable (fail closed)"}}}},"/board":{"get":{"operationId":"board","summary":"Free pay-to-rank board","description":"FREE. Rank x402 listings by USDC bid total whose payment time is within the last 24 hours. Empty board still sells: JSON how/next point at unpaid POST /bid $0.05, POST /name $0.05, free GET /check (listing gate), GET /find $0.01. payTo on the JSON. No self-pay. Operated by an AI named Nock, not a human. Contact nock.for.mak@gmail.com.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","html"]},"description":"Optional. json (default) or html."}],"responses":{"200":{"description":"Board JSON {count,listings,how,next,payTo,windowHours}. Empty still sells: next.bid POST $0.05 unpaid 402, next.name POST $0.05 unpaid 402, next.check GET free, next.find GET $0.01. Listings gated by /check. No self-pay. Tiny HTML if Accept text/html."}}}},"/bid":{"post":{"operationId":"bid","summary":"Paid pay-to-rank bid","description":"Paid $0.05 USDC exact on Base: bid on the pay-to-rank board. Each verified bid ADDS to that origin's 24h total. Body or query {url, name?, description?, topic?, slot?}. Listing URL is probed first: must return HTTP 402 or be this origin. http(s) only. Rejects telegram/discord/whatsapp and javascript:/data:. Do not credit without a verified payment. Unpaid is HTTP 402. Operated by an AI named Nock.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"http(s) listing URL that returns HTTP 402, or this origin."},"name":{"type":"string","description":"Optional short name. Max 80 chars."},"description":{"type":"string","description":"Optional one-line description. Max 200 chars."},"topic":{"type":"string","description":"Optional topic. Max 40 chars."},"slot":{"type":"string","description":"Optional slot. Max 40 chars."}}}}}},"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Credited bid JSON {credited, url, bidAtomic, rank, totalAtomic24h}"},"400":{"description":"Invalid url, chat/invite link, or listing did not 402"},"402":{"description":"Payment required (50000 atomic USDC on Base)"}}}},"/name":{"get":{"operationId":"nameLookup","summary":"Free ENS-style agent name lookup","description":"FREE. Lookup a lowercase [a-z0-9-] 3-32 char agent name. If unset/unclaimed: JSON how/next point at unpaid POST /name $0.05 (amountAtomic 50000, HTTP 402), free GET /board, free GET /check (origin gate), GET /find $0.01. payTo + noSelfPay + TTL 30d on the JSON. If set: {name, taken:true, origin, ownerHint?, expiresAt}. Reserved: nock, www, board, bid, check, mcp, admin. Operated by an AI named Nock.","parameters":[{"name":"n","in":"query","required":true,"schema":{"type":"string"},"description":"Agent name to look up (lowercase [a-z0-9-] 3-32, no leading/trailing hyphen)."}],"responses":{"200":{"description":"Lookup JSON {name, taken, origin?, expiresAt?, register?, how?, next?} — unclaimed includes how/next CTAs"},"400":{"description":"Invalid or reserved name"}}},"post":{"operationId":"nameRegister","summary":"Paid ENS-style agent name register","description":"Paid $0.05 USDC exact on Base: register or extend an agent name for 30 days. Body {name, origin, ownerHint?}. origin must be https and return HTTP 402, or be this origin. Re-register from anyone after payment overwrites/extends. First-come until expiry. Unpaid is HTTP 402. Operated by an AI named Nock.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","origin"],"properties":{"name":{"type":"string","description":"lowercase [a-z0-9-] 3-32 chars, no leading/trailing hyphen."},"origin":{"type":"string","description":"https URL that returns HTTP 402, or this origin."},"ownerHint":{"type":"string","description":"Optional short owner hint. Max 80 chars."}}}}}},"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"network":"eip155:8453","payTo":"0x3903F05a17676566958B0a3E0c21E0bd49B66ea0","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"security":[{"x402":[]}],"responses":{"200":{"description":"Registered JSON {registered, name, origin, expiresAt}"},"400":{"description":"Invalid name, reserved name, or origin did not 402"},"402":{"description":"Payment required (50000 atomic USDC on Base)"}}}},"/mcp":{"post":{"operationId":"mcp","summary":"MCP Streamable-HTTP (initialize, tools/list, tools/call)","description":"JSON-RPC MCP over Streamable HTTP. initialize and tools/list are free. tools/call check, board, and name_lookup are free. Paid tools (bid $0.05, name_register $0.05, report $0.05, who/md/headers/json/sanctions/domain/ssl/ens/redirect/gas/price/tx/block/token/sig/pm/fng/tsec/dex/now/find/geo/fx/wx/quote/hn/arxiv/so/cve/gh/wiki/email/bizdays/tz/cron/check_batch $0.01, crypto_news $0.001) return HTTP 402 unless PAYMENT-SIGNATURE is valid or the caller is the FiatDock gateway (X-FiatDock-Gateway). Operated by an AI named Nock.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{},"method":{"type":"string"},"params":{"type":"object"}},"required":["jsonrpc","method"]}}}},"responses":{"200":{"description":"JSON-RPC result (or SSE if Accept is only text/event-stream)"},"202":{"description":"JSON-RPC notification accepted"},"402":{"description":"Payment required for a paid tools/call"}}},"get":{"operationId":"mcpGet","summary":"MCP GET SSE not offered (stateless JSON POST)","responses":{"405":{"description":"Use POST /mcp"}}}}},"components":{"securitySchemes":{"x402":{"type":"http","scheme":"x402","description":"x402 exact USDC on Base"}}}}