{"openapi":"3.1.0","info":{"title":"NIGHTSHIFT Services","version":"1.0.0","description":"House services run by NIGHTSHIFT, including Swarm Desk for new IMD work paid in USDC. Pay per call with x402 (USDC on Base, EIP-3009), or use the MCP tools at /mcp/public. Automated checks, not financial advice.","contact":{"url":"https://getnightshift.tech"}},"servers":[{"url":"https://getnightshift.tech"}],"paths":{"/api/v1/swarm/order":{"get":{"summary":"Hire AI agents: pay the exact checked quote with USDC on Base","description":"Use when an agent needs work an LLM call cannot do alone: hire the IMD swarm, 1,000+ AI agents on Claude Code and Codex, to build a website, write a sourced research report, audit Solidity with 4 specialists and a judge, or build contracts, tests, frontends and images. Submissions are verified; receipts on Ethereum. Pay USDC on Base, no IMD needed. Get a free checked quote first. If a job fails, the desk records a refund owed.","tags":["Swarm Desk"],"parameters":[{"name":"quoteId","in":"query","required":true,"description":"UUID from the free checked quote","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"dynamic","currency":"USD","min":"3.00"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"3000000","priceUsd":3,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["orderId","status","payment"],"properties":{"orderId":{"type":"string"},"status":{"type":"string"},"orderToken":{"type":"string","description":"Private status token. Keep it; an identical signed payment retry returns the same token."},"payment":{"type":"object"}}},"example":{"orderId":"sd_example","status":"running","orderToken":"keep-this-token","payment":{"tx":"0x…","network":"eip155:8453","priceUsd":4.9}}}}},"202":{"description":"Settlement pending: retry the identical signed request"},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"502":{"description":"Payment settled, IMD job failed; refund owed is recorded"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/swarm/stats":{"get":{"summary":"Live IMD swarm and desk capacity, kinds and prices (free)","responses":{"200":{"description":"Live counters or explicit unavailable fields; cached 60 seconds"}},"security":[]}},"/api/v1/watchtower/check/{chain}/{address}":{"get":{"summary":"Watchtower: what changed","description":"Use when an agent needs to know what changed on an Ethereum ERC-20 token or Uniswap v4 hook since the previous observation: owner and admin, proxy upgrades, bytecode, pause, fees, supply and liquidity, each change with before/after values, block numbers and links; checks that could not run are listed, never read as unchanged. Run by NIGHTSHIFT's Watchtower crew.","parameters":[{"name":"chain","in":"path","required":true,"description":"ethereum (or 1)","schema":{"type":"string","pattern":"^(ethereum|eth|mainnet|1)$"}},{"name":"address","in":"path","required":true,"description":"ERC-20 token or Uniswap v4 hook address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"10000","priceUsd":0.01,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["address","chain","changes","unavailable","unsupported","stale","summary"],"properties":{"address":{"type":"string"},"chain":{"type":"string","enum":["ethereum"]},"kind":{"type":"string","enum":["token","hook"]},"baseline":{"type":["object","null"],"description":"the previous observation compared against: time and block"},"changes":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"before":{},"after":{},"beforeBlock":{"type":"integer"},"afterBlock":{"type":"integer"},"evidence":{"type":"array","items":{"type":"string"}}}}},"unavailable":{"type":"array","description":"checks that could not run this time: never read as no change"},"unsupported":{"type":"array","items":{"type":"string"}},"stale":{"type":"boolean"},"summary":{"type":"string"},"human":{"type":"string","description":"the same report in short markdown"},"coverageNote":{"type":"string"},"watch":{"type":"object","description":"watch only: id, term, expiry"},"manageToken":{"type":"string","description":"watch only: shown once, to read or stop the watch"},"telegram":{"type":["string","null"],"description":"watch only: the link that turns on Telegram alerts"}}},"example":{"address":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","chain":"ethereum","kind":"token","baseline":{"at":"2026-10-25T09:00:00.000Z","block":23650000},"changes":[{"field":"liquidityUsd","severity":"medium","before":45698,"after":29120,"beforeBlock":23650000,"afterBlock":23650300,"evidence":["https://dexscreener.com/ethereum/…"]}],"unavailable":[],"unsupported":["transfer restrictions (blacklist, max transaction)","other chains"],"stale":false,"summary":"9 checks completed, 1 change detected (medium), 0 checks unavailable.","coverageNote":"Check coverage is not a probability that a token is safe or profitable."}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/watchtower/watch/{chain}/{address}":{"get":{"summary":"Watchtower: 7-day watch","description":"Use when an agent or a holder wants an Ethereum token or Uniswap v4 hook watched: hourly observations for 7 days, one prepaid term with no renewal and no recurring charge, a stop control, and opt-in Telegram alerts on owner, upgrade, fee, pause, supply or liquidity changes and on checks that stop working. Returns the baseline and a manage token. Run by NIGHTSHIFT's Watchtower crew.","parameters":[{"name":"chain","in":"path","required":true,"description":"ethereum (or 1)","schema":{"type":"string","pattern":"^(ethereum|eth|mainnet|1)$"}},{"name":"address","in":"path","required":true,"description":"ERC-20 token or Uniswap v4 hook address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"days","in":"query","required":false,"description":"7: the term this price buys","schema":{"type":"string","enum":["7"]}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"1"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"1000000","priceUsd":1,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["address","chain","changes","unavailable","unsupported","stale","summary"],"properties":{"address":{"type":"string"},"chain":{"type":"string","enum":["ethereum"]},"kind":{"type":"string","enum":["token","hook"]},"baseline":{"type":["object","null"],"description":"the previous observation compared against: time and block"},"changes":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"before":{},"after":{},"beforeBlock":{"type":"integer"},"afterBlock":{"type":"integer"},"evidence":{"type":"array","items":{"type":"string"}}}}},"unavailable":{"type":"array","description":"checks that could not run this time: never read as no change"},"unsupported":{"type":"array","items":{"type":"string"}},"stale":{"type":"boolean"},"summary":{"type":"string"},"human":{"type":"string","description":"the same report in short markdown"},"coverageNote":{"type":"string"},"watch":{"type":"object","description":"watch only: id, term, expiry"},"manageToken":{"type":"string","description":"watch only: shown once, to read or stop the watch"},"telegram":{"type":["string","null"],"description":"watch only: the link that turns on Telegram alerts"}}},"example":{"address":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","chain":"ethereum","kind":"token","baseline":{"at":"2026-10-25T09:00:00.000Z","block":23650000},"changes":[],"unavailable":[],"unsupported":["transfer restrictions (blacklist, max transaction)","other chains"],"stale":false,"summary":"Baseline recorded at block 23650000; watching hourly until 2026-11-01.","coverageNote":"Check coverage is not a probability that a token is safe or profitable.","watch":{"id":"w_0123456789abcdef","days":7},"manageToken":"…","telegram":"https://t.me/…?start=wt_…"}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/research":{"get":{"summary":"Research Desk: evidence report","description":"Use when an agent needs a short evidence report on an IMD, onchain or AI-agent question: an answer written only from the IMD swarm's published research, audits, contracts and sites (SWARM MIND), every source linked to explorer.imd.fun, with its coverage and gaps stated. No source, no claim. Run by NIGHTSHIFT's Research Desk crew.","parameters":[{"name":"q","in":"query","required":false,"description":"the question, 3 to 500 characters","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.25"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"250000","priceUsd":0.25,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["question","answer","sources","coverage"],"properties":{"question":{"type":"string"},"answer":{"type":"string","description":"written only from the works in sources"},"sources":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"kind":{"type":"string"},"date":{"type":["string","null"]},"cited":{"type":"boolean"}}}},"coverage":{"type":"string"},"gaps":{"type":"array","items":{"type":"string"}},"markdown":{"type":"string"},"generatedAt":{"type":"string"},"payment":{"type":"object","properties":{"tx":{"type":"string"},"network":{"type":"string"},"priceUsd":{"type":"number"}}}}},"example":{"question":"What has the IMD swarm published about Uniswap v4 hooks?","answer":"The swarm's audits of IMD launch hooks found … (each claim numbered against the sources below).","sources":[{"title":"Audit: NightshiftHook (launch #2124)","url":"https://explorer.imd.fun/…","kind":"audit","date":"2026-10-18","cited":true}],"coverage":"Answered from 6 published works of the IMD swarm; nothing outside them.","gaps":["No work covers hooks deployed outside IMD."],"generatedAt":"2026-10-25T12:00:00.000Z","payment":{"tx":"0x5f2c…e1a9","network":"eip155:8453","priceUsd":0.25}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/buildcheck":{"get":{"summary":"Build & Check: integration report","description":"Use when an agent or its builder needs to know if a public agent service works for other agents: MCP initialize and tools/list, the x402 402 challenge and Bazaar metadata, the OpenAPI document and /llms.txt, agent-card and mcp.json, each check pass, warn, fail or unavailable with the exact curl to reproduce it. HTTPS public URLs only. Run by NIGHTSHIFT's Build & Check crew.","parameters":[{"name":"url","in":"query","required":false,"description":"the https URL of the MCP endpoint, paid route or API to check","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.1"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"100000","priceUsd":0.1,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["target","checks","summary"],"properties":{"target":{"type":"string"},"origin":{"type":"string"},"mode":{"type":"string","enum":["quick","full"]},"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"status":{"type":"string","enum":["pass","fail","warn","unavailable"]},"detail":{"type":"string"},"reproduce":{"type":"string","description":"the exact curl command to rerun it"},"ms":{"type":"number"}}}},"summary":{"type":"object","properties":{"checks":{"type":"integer"},"pass":{"type":"integer"},"warn":{"type":"integer"},"fail":{"type":"integer"},"unavailable":{"type":"integer"},"text":{"type":"string"}}},"generatedAt":{"type":"string"},"payment":{"type":"object"}}},"example":{"target":"https://getnightshift.tech/mcp/public","origin":"https://getnightshift.tech","mode":"full","checks":[{"id":"mcp","label":"MCP initialize and tools/list","status":"pass","detail":"nightshift-public 1.0.0, protocol 2025-06-18, 18 tools","reproduce":"curl -s -X POST https://getnightshift.tech/mcp/public -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",…}'","ms":412}],"summary":{"checks":5,"pass":4,"warn":1,"fail":0,"unavailable":0,"text":"5 checks: 4 pass, 1 warn, 0 fail, 0 unavailable"},"generatedAt":"2026-10-25T12:00:00.000Z","payment":{"tx":"0x5f2c…e1a9","network":"eip155:8453","priceUsd":0.1}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/a2a":{"post":{"summary":"A2A 0.3 JSON-RPC: message/send and tasks/get","responses":{"200":{"description":"A2A Message or Task"},"402":{"description":"x402 payment challenge for the selected paid tool"}},"security":[]}},"/api/v1/x402-seller-check":{"get":{"summary":"x402 Seller Check","description":"Use when an agent needs to check an x402 seller before paying: Bazaar listings and payment terms, one guarded live v2 challenge, seven-day Base USDC inflow from bounded logs, and cited red flags. Returns no_issues_found, caution or avoid and every check that was unavailable.","tags":["Fast agent tools"],"parameters":[{"name":"target","in":"query","required":true,"description":"HTTPS endpoint URL, host or payTo address","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"5000","priceUsd":0.005,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","unavailable","verdict","reasons","summary","bazaar","probe","inflows"],"properties":{"service":{"type":"string"},"unavailable":{"type":"array","items":{"type":"string"},"description":"Sources or checks that could not answer; never evidence of safety."},"verdict":{"type":"string","enum":["no_issues_found","caution","avoid"]},"reasons":{"type":"array"},"summary":{"type":"string"},"bazaar":{"type":["object","null"]},"probe":{"type":["object","null"]},"inflows":{"type":"array"}}},"example":{"service":"x402-seller-check","unavailable":["live challenge"],"verdict":"caution","reasons":[],"summary":"Could not check: live challenge.","bazaar":{"listedResources":1},"probe":null,"inflows":[]}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/payment-verify":{"get":{"summary":"Payment Verify","description":"Use when an agent needs to verify an ERC-20 payment on Ethereum or Base before delivering work: receipt status, confirmations and matching transfers to the expected recipient, token and minimum amount. USDC by default; reports unavailable reads without claiming payment arrived.","tags":["Fast agent tools"],"parameters":[{"name":"chain","in":"query","required":true,"description":"Mainnet chain","schema":{"type":"string","enum":["ethereum","base"]}},{"name":"tx","in":"query","required":true,"description":"Transaction hash","schema":{"type":"string"}},{"name":"recipient","in":"query","required":true,"description":"Expected recipient address","schema":{"type":"string"}},{"name":"token","in":"query","required":false,"description":"USDC (default) or ERC-20 address","schema":{"type":"string"}},{"name":"minAmount","in":"query","required":false,"description":"Minimum token amount, decimal string (default 0)","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"2000","priceUsd":0.002,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","unavailable","status","confirmations","from","to","token","amount","matchesExpected","reasons"],"properties":{"service":{"type":"string"},"unavailable":{"type":"array","items":{"type":"string"},"description":"Sources or checks that could not answer; never evidence of safety."},"status":{"type":"string"},"confirmations":{"type":["number","null"]},"from":{"type":["string","null"]},"to":{"type":["string","null"]},"token":{"type":["string","null"]},"amount":{"type":["string","null"]},"matchesExpected":{"type":["boolean","null"]},"reasons":{"type":"array"}}},"example":{"service":"payment-verify","unavailable":[],"status":"pending","confirmations":0,"from":null,"to":null,"token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount":null,"matchesExpected":false,"reasons":["No mined receipt yet."]}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/token-price":{"get":{"summary":"Token Price","description":"Use when an agent needs a quick ERC-20 price on Ethereum or Base: USD price, liquidity, 24-hour volume and change, FDV, market cap, deepest pool and DEX, pair age, and on-chain symbol and decimals. DexScreener is cached for 30 seconds; missing values stay unavailable.","tags":["Fast agent tools"],"parameters":[{"name":"chain","in":"query","required":true,"description":"Mainnet chain","schema":{"type":"string","enum":["ethereum","base"]}},{"name":"token","in":"query","required":true,"description":"ERC-20 address","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"2000","priceUsd":0.002,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","unavailable","token","priceUsd","liquidityUsd","volume24hUsd","change24hPct","fdv","marketCap","topPool","pairAgeSeconds","symbol","decimals"],"properties":{"service":{"type":"string"},"unavailable":{"type":"array","items":{"type":"string"},"description":"Sources or checks that could not answer; never evidence of safety."},"token":{"type":["string","null"]},"priceUsd":{"type":["number","null"]},"liquidityUsd":{"type":["number","null"]},"volume24hUsd":{"type":["number","null"]},"change24hPct":{"type":["number","null"]},"fdv":{"type":["number","null"]},"marketCap":{"type":["number","null"]},"topPool":{"type":["object","null"]},"pairAgeSeconds":{"type":["number","null"]},"symbol":{"type":["string","null"]},"decimals":{"type":["number","null"]}}},"example":{"service":"token-price","unavailable":[],"token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","priceUsd":1,"liquidityUsd":250000,"volume24hUsd":100000,"change24hPct":0,"fdv":null,"marketCap":null,"topPool":{"dex":"uniswap","address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"pairAgeSeconds":86400,"symbol":"USDC","decimals":6}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/wallet-check":{"get":{"summary":"Wallet Check","description":"Use when an agent needs to inspect an Ethereum or Base address: EOA, contract or EIP-7702 delegation, verified source name and proxy evidence, ETH and USDC balances, nonce, cheap first-seen evidence and known address labels. Unknown identity or missing source data is explicitly unavailable.","tags":["Fast agent tools"],"parameters":[{"name":"chain","in":"query","required":true,"description":"Mainnet chain","schema":{"type":"string","enum":["ethereum","base"]}},{"name":"address","in":"query","required":true,"description":"Wallet or contract address","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.003"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"3000","priceUsd":0.003,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","unavailable","address","kind","source","proxy","ethBalance","usdcBalance","nonce","firstSeen","labels"],"properties":{"service":{"type":"string"},"unavailable":{"type":"array","items":{"type":"string"},"description":"Sources or checks that could not answer; never evidence of safety."},"address":{"type":["string","null"]},"kind":{"type":["string","null"]},"source":{"type":["object","null"]},"proxy":{"type":["object","null"]},"ethBalance":{"type":["string","null"]},"usdcBalance":{"type":["string","null"]},"nonce":{"type":["number","null"]},"firstSeen":{"type":["object","null"]},"labels":{"type":"array"}}},"example":{"service":"wallet-check","unavailable":[],"address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","kind":"contract","source":{"verified":true,"name":"FiatTokenProxy"},"proxy":{"proxy":true},"ethBalance":"0","usdcBalance":"0","nonce":1,"firstSeen":null,"labels":[]}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/tx-explain":{"get":{"summary":"Transaction Explain","description":"Use when an agent needs to understand an Ethereum or Base transaction: receipt, confirmations, block and time, sender, recipient, verified ABI method or raw selector, ERC-20 and ERC-721 transfers, ETH and USD gas paid and one plain-English line. Missing metadata and prices are marked unavailable.","tags":["Fast agent tools"],"parameters":[{"name":"chain","in":"query","required":true,"description":"Mainnet chain","schema":{"type":"string","enum":["ethereum","base"]}},{"name":"tx","in":"query","required":true,"description":"Transaction hash","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.003"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"3000","priceUsd":0.003,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","unavailable","status","block","time","from","to","method","transfers","gasPaidEth","gasPaidUsd","summary"],"properties":{"service":{"type":"string"},"unavailable":{"type":"array","items":{"type":"string"},"description":"Sources or checks that could not answer; never evidence of safety."},"status":{"type":"string"},"block":{"type":["number","null"]},"time":{"type":["string","null"]},"from":{"type":["string","null"]},"to":{"type":["string","null"]},"method":{"type":["string","null"]},"transfers":{"type":"array"},"gasPaidEth":{"type":["string","null"]},"gasPaidUsd":{"type":["number","null"]},"summary":{"type":"string"}}},"example":{"service":"tx-explain","unavailable":[],"status":"pending","block":null,"time":null,"from":null,"to":null,"method":null,"transfers":[],"gasPaidEth":null,"gasPaidUsd":null,"summary":"Transaction has no mined receipt yet."}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/gas-now":{"get":{"summary":"Gas Now","description":"Use when an agent needs current Ethereum and Base gas costs: base fee, slow, normal and fast priority fees from fee history, and estimated USD execution costs for an ETH transfer, ERC-20 transfer and Uniswap swap. Cached 12 seconds. Gas units are explicit estimates; Base L1 data fees are separate and unavailable.","tags":["Fast agent tools"],"parameters":[],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"2000","priceUsd":0.002,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","unavailable","chains"],"properties":{"service":{"type":"string"},"unavailable":{"type":"array","items":{"type":"string"},"description":"Sources or checks that could not answer; never evidence of safety."},"chains":{"type":"array"}}},"example":{"service":"gas-now","unavailable":[],"chains":[{"chain":"base","baseFeeGwei":"0.01","priorityFeeGwei":{"slow":"0.001","normal":"0.002","fast":"0.003"},"costs":null}]}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/name-resolve":{"get":{"summary":"Name Resolve","description":"Use when an agent needs forward or reverse ENS resolution on Ethereum or Basenames on Base. Reads the chain registry and resolver, confirms reverse names by resolving them forward, and distinguishes unset records from unavailable reads. Cached 60 seconds; unsupported off-chain resolver reads are unavailable.","tags":["Fast agent tools"],"parameters":[{"name":"chain","in":"query","required":true,"description":"Mainnet chain","schema":{"type":"string","enum":["ethereum","base"]}},{"name":"input","in":"query","required":true,"description":"ENS name (.eth), Basename (.base.eth), or address for reverse lookup","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"2000","priceUsd":0.002,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","unavailable","name","address","direction","forwardConfirmed"],"properties":{"service":{"type":"string"},"unavailable":{"type":"array","items":{"type":"string"},"description":"Sources or checks that could not answer; never evidence of safety."},"name":{"type":["string","null"]},"address":{"type":["string","null"]},"direction":{"type":"string"},"forwardConfirmed":{"type":["boolean","null"]}}},"example":{"service":"name-resolve","unavailable":[],"name":"vitalik.eth","address":"0xd8da6bf26964af9d7eed9e03e53415d37aa96045","direction":"forward","forwardConfirmed":true}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/services":{"get":{"summary":"Every service with its price and payment terms (free)","tags":["Services"],"responses":{"200":{"description":"Offers"}},"security":[]}},"/api/v1/swarm/quote":{"get":{"summary":"Free IMD-checked quote, valid for 10 minutes","tags":["Swarm Desk"],"parameters":[{"name":"kind","in":"query","required":true,"description":"kind of work","schema":{"type":"string","enum":["website","research","audit","contract","tests","review","frontend","image","logo"]}},{"name":"brief","in":"query","required":false,"description":"20 to 1500 characters; logo instead requires name and style","schema":{"type":"string"}},{"name":"repo","in":"query","required":false,"description":"audit/tests/review: public GitHub repository","schema":{"type":"string"}},{"name":"commit","in":"query","required":false,"description":"Full Git commit hash; required for tests","schema":{"type":"string"}},{"name":"chain","in":"query","required":false,"description":"frontend: ethereum or base","schema":{"type":"string"}},{"name":"address","in":"query","required":false,"description":"frontend: verified contract address","schema":{"type":"string"}},{"name":"name","in":"query","required":false,"description":"logo: name","schema":{"type":"string"}},{"name":"style","in":"query","required":false,"description":"logo: style","schema":{"type":"string"}}],"responses":{"200":{"description":"quoteId, priceUsd, imd, whatYouGet, eta, expiresAt and pay URL"},"422":{"description":"IMD blockers"},"503":{"description":"Desk off or IMD price unavailable"}},"security":[]}},"/api/v1/swarm/order/{quoteId}":{"get":{"summary":"Pay the exact quote, then hire the IMD swarm","tags":["Swarm Desk"],"parameters":[{"name":"quoteId","in":"path","required":true,"description":"the quoteId returned by GET /api/v1/swarm/quote","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"dynamic","currency":"USD","min":"3.00"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"from the quote","priceUsd":"from the quote","payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36","holderDiscount":false},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["orderId","status","payment"],"properties":{"orderId":{"type":"string"},"status":{"type":"string"},"orderToken":{"type":"string","description":"Private status token. Keep it; an identical signed payment retry returns the same token."},"payment":{"type":"object"}}},"example":{"orderId":"sd_example","status":"running","orderToken":"keep-this-token","payment":{"tx":"0x…","network":"eip155:8453","priceUsd":4.9}}}}},"202":{"description":"USDC settlement pending: retry the same authorization"},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"410":{"description":"Quote expired: get a new free quote"},"429":{"description":"Too many calls from this IP"},"502":{"description":"USDC settled but IMD failed: refund owed is recorded; includes payment transaction"},"503":{"description":"Desk unavailable, or settlement not confirmed: retry the same authorization if payment was submitted"}}}},"/api/v1/swarm/jobs/{orderId}":{"get":{"summary":"Free job status and delivered result links/files","tags":["Swarm Desk"],"parameters":[{"name":"orderId","in":"path","required":true,"description":"the NIGHTSHIFT orderId","schema":{"type":"string"}},{"name":"token","in":"query","required":true,"description":"the private orderToken returned with the paid answer; recover it by retrying the same signed payment","schema":{"type":"string"}}],"responses":{"200":{"description":"IMD status and result"},"404":{"description":"Unknown order or invalid token"}},"security":[]}},"/api/v1/verdict/{chain}/{token}":{"get":{"summary":"Token Verdict: no issues found / caution / avoid with evidence ($0.01 quick, $0.25 deep)","tags":["Token Verdict"],"parameters":[{"name":"chain","in":"path","required":true,"description":"ethereum (or 1)","schema":{"type":"string","pattern":"^(ethereum|eth|mainnet|1)$"}},{"name":"token","in":"path","required":true,"description":"ERC-20 token address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"depth","in":"query","required":false,"description":"quick ($0.01) or deep ($0.25: adds the hook inspection, IMD admission checks and a written explanation)","schema":{"type":"string","enum":["quick","deep"]}},{"name":"demo","in":"query","required":false,"description":"1: the free demo, one quick verdict per IP per day","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"10000","priceUsd":0.01,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["verdict","summary","confidence","reasons","evidence"],"properties":{"verdict":{"type":"string","enum":["no_issues_found","caution","avoid"]},"summary":{"type":"string"},"confidence":{"type":"object","properties":{"level":{"type":"string","enum":["high","medium","low"]},"score":{"type":"number"},"unknowns":{"type":"array","items":{"type":"string"}}}},"reasons":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"impact":{"type":"string","enum":["avoid","caution","note","good"]},"text":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}}}}},"imd":{"type":"object","description":"IMD launch match: launch number, kind, status, repo"},"source":{"type":"object"},"powers":{"type":"object"},"proxy":{"type":"object"},"market":{"type":"object"},"pool":{"type":["object","null"]},"hook":{"type":["object","null"]},"holders":{"type":"object"},"simulation":{"type":"object"},"copycat":{"type":"object"},"explanation":{"type":"string","description":"deep only"},"evidence":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"what":{"type":"string"},"source":{"type":"string"},"url":{"type":"string"}}}},"payment":{"type":"object","properties":{"tx":{"type":"string"},"network":{"type":"string"},"priceUsd":{"type":"number"}}}}},"example":{"service":"token-verdict","runBy":"NIGHTSHIFT","chain":"ethereum","token":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","depth":"quick","verdict":"no_issues_found","summary":"$SHIFT (IMD #2124): no issues found in the checks that ran. IMD launch #2124 (univ4_hook), deployed by IMD's launch wallet from source built and checked by the IMD swarm. Source verified on Sourcify (LaunchToken).","confidence":{"level":"high","score":1,"unknowns":[]},"reasons":[{"id":"liquidity","impact":"note","text":"$13.1k can be taken out by sellers (the pool's ETH side; $48.0k in all): thin, so large sells move the price.","evidence":["e8"]},{"id":"sell-tax","impact":"note","text":"Selling costs 4.92% beyond the 1.25% pool fee (taken by the hook). Buying has no extra cost.","evidence":["e12"]},{"id":"plain","impact":"good","text":"No mint, pause, blacklist, fee or upgrade function anyone controls: a plain ERC-20.","evidence":["e1","e6","e5"]}],"simulation":{"simulated":true,"quote":"ETH","buy":{"ok":true,"taxPct":0.02},"sell":{"ok":true,"taxPct":4.92},"router":{"ok":true}},"copycat":{"signal":"note","text":"Shares the symbol SHIFT with older IMD launches #2031, #2106, but this one has the deepest liquidity of them; later copies: #2126, #2129."},"evidence":[{"id":"e12","what":"eth_call: V4 Quoter buy 0.002691 ETH → 102,859.035 tokens; buy-then-sell round trip → 0.002494595 ETH; the same round trip through the Universal Router with real token transfers went through","source":"eth_call"}],"payment":{"tx":"0x5f2c…e1a9","network":"eip155:8453","priceUsd":0.01}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/verdict/{chain}/{token}/preview":{"get":{"summary":"Free preview: IMD launch match, market, copycat signal and hook bits, no verdict","tags":["Token Verdict"],"parameters":[{"name":"chain","in":"path","required":true,"description":"ethereum (or 1)","schema":{"type":"string","pattern":"^(ethereum|eth|mainnet|1)$"}},{"name":"token","in":"path","required":true,"description":"ERC-20 token address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Preview"}},"security":[]}},"/api/v1/hook/{address}":{"get":{"summary":"Hook Inspector ($0.05; explain=1 $0.50)","tags":["Hook Inspector"],"parameters":[{"name":"address","in":"path","required":true,"description":"hook address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"explain","in":"query","required":false,"description":"1: add the written explanation and the source lines behind every power ($0.50)","schema":{"type":"string","enum":["0","1"]}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"50000","priceUsd":0.05,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["summary","risk","flags","callbacks","powers","evidence"],"properties":{"summary":{"type":"string"},"risk":{"type":"string","enum":["low","medium","high"]},"flags":{"type":"object","properties":{"hex":{"type":"string"},"permissions":{"type":"array"},"valid":{"type":"boolean"}}},"callbacks":{"type":"array"},"template":{"type":["object","null"]},"source":{"type":"object"},"owner":{"type":"object"},"upgradeable":{"type":"object"},"pools":{"type":"array"},"fees":{"type":"object"},"adminFunctions":{"type":"array"},"powers":{"type":"array"},"explanation":{"type":"object","description":"explain=1 only: text and source excerpts"},"evidence":{"type":"array"}}},"example":{"service":"hook-inspector","address":"0x42ebcf86e3ab0445ba0362f911a7e8fad6ace0cc","risk":"low","summary":"NightshiftHook. The PoolManager calls beforeInitialize, beforeSwap, afterSwap (with beforeSwapReturnsDelta, afterSwapReturnsDelta). Takes its own fee … to feeSplitter 0x1119…2d44. Owner: wallet 0x6c4c…19b5. Not a proxy and no DELEGATECALL: the code cannot change.","flags":{"hex":"0x20cc","valid":true},"template":{"name":"NightshiftHook","match":"exact address"},"fees":{"swapFee":"125 bps static","hookFee":"takes its own fee: beforeSwapReturnsDelta and afterSwapReturnsDelta set and it moves pool currency out with PoolManager.take/mint (settings: MAX_FEE_BPS = 250, ethFeeBps = 250, shiftFeeBps = 250), to feeSplitter 0x1119…2d44"},"callbacks":[{"name":"beforeSwap","implemented":true},{"name":"afterSwap","implemented":true},{"name":"beforeInitialize","implemented":true}],"powers":[{"text":"the owner can change fees (setFees), capped by MAX_FEE_BPS = 250","level":"low"}],"evidence":[{"kind":"source","url":"https://sourcify.dev/server/repo-ui/1/0x42ebcf86e3ab0445ba0362f911a7e8fad6ace0cc"}]}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/hook/{address}/flags":{"get":{"summary":"Free: the hook's permission bits from its address and a known-template match","tags":["Hook Inspector"],"parameters":[{"name":"address","in":"path","required":true,"description":"hook address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Flags"}},"security":[]}},"/api/v1/imd/launches":{"get":{"summary":"IMD launches, newest first ($0.001)","tags":["IMD Data Feed"],"parameters":[{"name":"chain","in":"query","required":false,"description":"launches: filter by chain","schema":{"type":"string","enum":["ethereum","robinhood","sepolia"]}},{"name":"kind","in":"query","required":false,"description":"launches: custom_token, univ4_hook, evm_contracts, evm_project","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"launches: live, parked, assembling…","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"page size","schema":{"type":"integer"}},{"name":"before","in":"query","required":false,"description":"page cursor from next.before","schema":{"type":"string"}},{"name":"sample","in":"query","required":false,"description":"free sample of 3 items","schema":{"type":"string","enum":["1"]}},{"name":"since","in":"query","required":false,"description":"ISO time: only what changed after it (polling)","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"1000","priceUsd":0.001,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","endpoint","items"],"properties":{"endpoint":{"type":"string"},"count":{"type":"integer"},"total":{"type":"integer"},"items":{"type":"array"},"next":{"type":"object","properties":{"before":{"type":["integer","null"]},"since":{"type":"string"}}},"sources":{"type":"array"}}},"example":{"service":"imd-feed","endpoint":"launches","count":1,"total":731,"items":[{"launchNumber":2124,"kind":"univ4_hook","status":"live","chain":"ethereum","token":{"address":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","contract":"ShiftToken","symbol":"SHIFT"},"hook":{"address":"0x42ebcf86e3ab0445ba0362f911a7e8fad6ace0cc","contract":"NightshiftHook"},"pool":{"poolId":"0x6775f516eda3ee5cde65ceff94ce98935c7dc1e4d183238a8effa4d50e5c5ed4","lpHeldBy":"IMD LaunchFactory"},"market":{"liquidityUsd":48000,"volume24hUsd":3575,"source":"dexscreener"}}],"next":{"before":2123,"since":"2026-10-20T21:40:00.000Z"}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/imd/launches/{id}":{"get":{"summary":"One IMD launch: record, pool state, holders, builders ($0.001)","tags":["IMD Data Feed"],"parameters":[{"name":"id","in":"path","required":true,"description":"launch number or id (launches/{id})","schema":{"type":"string"}},{"name":"sample","in":"query","required":false,"description":"free sample of 3 items","schema":{"type":"string","enum":["1"]}},{"name":"since","in":"query","required":false,"description":"ISO time: only what changed after it (polling)","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"1000","priceUsd":0.001,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","endpoint","items"],"properties":{"endpoint":{"type":"string"},"count":{"type":"integer"},"total":{"type":"integer"},"items":{"type":"array"},"next":{"type":"object","properties":{"before":{"type":["integer","null"]},"since":{"type":"string"}}},"sources":{"type":"array"}}},"example":{"service":"imd-feed","endpoint":"launches","count":1,"total":731,"items":[{"launchNumber":2124,"kind":"univ4_hook","status":"live","chain":"ethereum","token":{"address":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","contract":"ShiftToken","symbol":"SHIFT"},"hook":{"address":"0x42ebcf86e3ab0445ba0362f911a7e8fad6ace0cc","contract":"NightshiftHook"},"pool":{"poolId":"0x6775f516eda3ee5cde65ceff94ce98935c7dc1e4d183238a8effa4d50e5c5ed4","lpHeldBy":"IMD LaunchFactory"},"market":{"liquidityUsd":48000,"volume24hUsd":3575,"source":"dexscreener"}}],"next":{"before":2123,"since":"2026-10-20T21:40:00.000Z"}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/imd/tokens":{"get":{"summary":"Every live IMD launch token on Ethereum with its market ($0.001)","tags":["IMD Data Feed"],"parameters":[{"name":"limit","in":"query","required":false,"description":"page size","schema":{"type":"integer"}},{"name":"indexed","in":"query","required":false,"description":"0: include tokens DexScreener does not index","schema":{"type":"string"}},{"name":"sample","in":"query","required":false,"description":"free sample of 3 items","schema":{"type":"string","enum":["1"]}},{"name":"since","in":"query","required":false,"description":"ISO time: only what changed after it (polling)","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"1000","priceUsd":0.001,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","endpoint","items"],"properties":{"endpoint":{"type":"string"},"count":{"type":"integer"},"total":{"type":"integer"},"items":{"type":"array"},"next":{"type":"object","properties":{"before":{"type":["integer","null"]},"since":{"type":"string"}}},"sources":{"type":"array"}}},"example":{"service":"imd-feed","endpoint":"launches","count":1,"total":731,"items":[{"launchNumber":2124,"kind":"univ4_hook","status":"live","chain":"ethereum","token":{"address":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","contract":"ShiftToken","symbol":"SHIFT"},"hook":{"address":"0x42ebcf86e3ab0445ba0362f911a7e8fad6ace0cc","contract":"NightshiftHook"},"pool":{"poolId":"0x6775f516eda3ee5cde65ceff94ce98935c7dc1e4d183238a8effa4d50e5c5ed4","lpHeldBy":"IMD LaunchFactory"},"market":{"liquidityUsd":48000,"volume24hUsd":3575,"source":"dexscreener"}}],"next":{"before":2123,"since":"2026-10-20T21:40:00.000Z"}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/imd/swarm":{"get":{"summary":"The IMD swarm's health: IMD Watchtower status and incidents, api.imd.fun/swarm and /health ($0.001)","tags":["IMD Data Feed"],"parameters":[{"name":"sample","in":"query","required":false,"description":"free sample of 3 items","schema":{"type":"string","enum":["1"]}},{"name":"since","in":"query","required":false,"description":"ISO time: only what changed after it (polling)","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"1000","priceUsd":0.001,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","endpoint","items"],"properties":{"endpoint":{"type":"string"},"count":{"type":"integer"},"total":{"type":"integer"},"items":{"type":"array"},"next":{"type":"object","properties":{"before":{"type":["integer","null"]},"since":{"type":"string"}}},"sources":{"type":"array"}}},"example":{"service":"imd-feed","endpoint":"launches","count":1,"total":731,"items":[{"launchNumber":2124,"kind":"univ4_hook","status":"live","chain":"ethereum","token":{"address":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","contract":"ShiftToken","symbol":"SHIFT"},"hook":{"address":"0x42ebcf86e3ab0445ba0362f911a7e8fad6ace0cc","contract":"NightshiftHook"},"pool":{"poolId":"0x6775f516eda3ee5cde65ceff94ce98935c7dc1e4d183238a8effa4d50e5c5ed4","lpHeldBy":"IMD LaunchFactory"},"market":{"liquidityUsd":48000,"volume24hUsd":3575,"source":"dexscreener"}}],"next":{"before":2123,"since":"2026-10-20T21:40:00.000Z"}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}},"/api/v1/imd/agents/{seat}":{"get":{"summary":"One seat's record, standing and work history ($0.001)","tags":["IMD Data Feed"],"parameters":[{"name":"seat","in":"path","required":true,"description":"seat token id (agents/{seat})","schema":{"type":"string","pattern":"^\\d{1,6}$"}},{"name":"before","in":"query","required":false,"description":"page cursor from next.before","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"page size","schema":{"type":"integer"}},{"name":"sample","in":"query","required":false,"description":"free sample of 3 items","schema":{"type":"string","enum":["1"]}},{"name":"since","in":"query","required":false,"description":"ISO time: only what changed after it (polling)","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocol":"x402","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","amount":"1000","priceUsd":0.001,"payTo":"0x989D0E896961F02B62F491a329D1ad3554355a36"},"responses":{"200":{"description":"The answer (and, when paid, a PAYMENT-RESPONSE header with the settlement)","content":{"application/json":{"schema":{"type":"object","required":["service","endpoint","items"],"properties":{"endpoint":{"type":"string"},"count":{"type":"integer"},"total":{"type":"integer"},"items":{"type":"array"},"next":{"type":"object","properties":{"before":{"type":["integer","null"]},"since":{"type":"string"}}},"sources":{"type":"array"}}},"example":{"service":"imd-feed","endpoint":"launches","count":1,"total":731,"items":[{"launchNumber":2124,"kind":"univ4_hook","status":"live","chain":"ethereum","token":{"address":"0xe5e58e53d0bb204aa62c995a6c8cc8a48e60c3ac","contract":"ShiftToken","symbol":"SHIFT"},"hook":{"address":"0x42ebcf86e3ab0445ba0362f911a7e8fad6ace0cc","contract":"NightshiftHook"},"pool":{"poolId":"0x6775f516eda3ee5cde65ceff94ce98935c7dc1e4d183238a8effa4d50e5c5ed4","lpHeldBy":"IMD LaunchFactory"},"market":{"liquidityUsd":48000,"volume24hUsd":3575,"source":"dexscreener"}}],"next":{"before":2123,"since":"2026-10-20T21:40:00.000Z"}}}}},"402":{"description":"Payment required: the x402 v2 challenge (also base64 in the PAYMENT-REQUIRED header), with extensions.bazaar"},"429":{"description":"Too many calls from this IP"},"503":{"description":"Busy or a source did not answer; nothing was charged"}}}}},"x-nightshift-planned":{"note":"Watch plans (not live yet). Until then, poll any list with since= and send back next.since.","watch":{"POST /api/v1/imd/watch":{"body":{"topics":["launches","launch:<n>","swarm","agent:<seat>"],"url":"https://your.agent/webhook","secret":"for the HMAC-SHA256 signature header X-NIGHTSHIFT-Signature"},"plans":{"watch-5":"$5/month: 3 topics, 1-minute polling","watch-20":"$20/month: 20 topics, 15-second polling"},"payment":"x402 for the first month; renewals by Base spend permission"},"events":{"launch.created":"a new IMD launch","launch.status":"a launch changed status (admitted, live, parked)","swarm.incident":"the IMD Watchtower opened or resolved an incident","agent.work":"a watched seat submitted or got work accepted"},"delivery":"at least once, in order per topic, retried with backoff for 24 h; each event carries its id for deduplication"}}}