{"openapi":"3.1.0","info":{"title":"AgentForge","version":"1.0.0","description":"Background service for AI agents and crypto users. v1: on-chain intel (Base chainId 8453) + agent memory. x402 payments use the configured X402_NETWORK (eip155:8453 Base). Public: GET /, /health, /docs, /openapi.json, /openapi.yaml, /v1/modules, /.well-known/agent-card.json. Payment-first (no API key): GET /v1/discover/intel/labels/:address, POST /v1/discover/memory. All other /v1/* routes require X-API-Key or Bearer. MCP is stdio-only (agentforge-mcp); there is no hosted /mcp."},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"},"bearer":{"type":"http","scheme":"bearer"}},"parameters":{"paymentSignature":{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 PAYMENT-SIGNATURE (signed payment payload). Literal dry-run is not accepted in live mode."}},"schemas":{}},"paths":{"/health":{"get":{"summary":"Liveness + module status","tags":["meta"],"security":[],"responses":{"200":{"description":"Default Response"}}}},"/.well-known/agent-card.json":{"get":{"summary":"A2A Agent Card (well-known, RFC 8615)","tags":["meta"],"security":[],"responses":{"200":{"description":"Default Response"}}}},"/a2a":{"get":{"summary":"A2A message/send stub (HTTP 501 — not ready)","tags":["meta"],"security":[],"responses":{"200":{"description":"Default Response"}}},"post":{"summary":"A2A message/send stub (HTTP 501 — not ready)","tags":["meta"],"security":[],"responses":{"200":{"description":"Default Response"}}}},"/v1/modules":{"get":{"summary":"Module map for the future mega-app (public)","tags":["meta"],"security":[],"responses":{"200":{"description":"Default Response"}}}},"/v1/admin/keys":{"post":{"summary":"HTTP key mint is disabled (503). Offline ops script only.","tags":["admin"],"security":[],"responses":{"200":{"description":"Default Response"}}}},"/v1/discover/intel/labels/{address}":{"get":{"summary":"Payment-first label lookup (no API key)","tags":["discover"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"address","required":true}],"security":[],"responses":{"200":{"description":"Default Response"}}}},"/v1/discover/memory":{"post":{"summary":"Payment-first memory probe (ephemeral, not stored)","tags":["discover"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"namespace":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}}}}}},"security":[],"responses":{"200":{"description":"Default Response"}}}},"/v1/memory":{"post":{"summary":"Store a short text memory for this API key","tags":["memory"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"namespace":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"ttlSeconds":{"type":"integer"}}}}}},"security":[{"apiKey":[]},{"bearer":[]}],"responses":{"200":{"description":"Default Response"}}},"get":{"summary":"Recall memories by namespace, tag, or text query","tags":["memory"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"namespace","required":false},{"schema":{"type":"string"},"in":"query","name":"tag","required":false},{"schema":{"type":"string"},"in":"query","name":"q","required":false},{"schema":{"type":"integer"},"in":"query","name":"limit","required":false}],"security":[{"apiKey":[]},{"bearer":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/memory/{id}":{"get":{"summary":"Get one memory by id","tags":["memory"],"security":[{"apiKey":[]},{"bearer":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"summary":"Delete a memory","tags":["memory"],"security":[{"apiKey":[]},{"bearer":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/intel/labels/{address}":{"get":{"summary":"Look up wallet/protocol labels (seed + heuristics)","tags":["intel"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"address","required":true}],"security":[{"apiKey":[]},{"bearer":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/intel/labels":{"post":{"summary":"Attach your own labels to an address (per API key)","tags":["intel"],"security":[{"apiKey":[]},{"bearer":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/intel/watches":{"post":{"summary":"Create an address watch (pollable alerts + optional webhook)","tags":["intel"],"security":[{"apiKey":[]},{"bearer":[]}],"responses":{"200":{"description":"Default Response"}}},"get":{"summary":"List watches for this API key","tags":["intel"],"security":[{"apiKey":[]},{"bearer":[]}],"responses":{"200":{"description":"Default Response"}}}},"/v1/intel/watches/{id}/check":{"post":{"summary":"Poll public RPC for this watch and append alerts","tags":["intel"],"security":[{"apiKey":[]},{"bearer":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/intel/alerts":{"get":{"summary":"Pollable alert feed","tags":["intel"],"parameters":[{"schema":{"type":"integer"},"in":"query","name":"limit","required":false}],"security":[{"apiKey":[]},{"bearer":[]}],"responses":{"200":{"description":"Default Response"}}}}},"servers":[{"url":"https://agentforge-production-0893.up.railway.app"},{"url":"http://127.0.0.1:8787","description":"Local development"}],"security":[{"apiKey":[]},{"bearer":[]}],"tags":[{"name":"meta","description":"Health and module map"},{"name":"memory","description":"Module B"},{"name":"intel","description":"Module A"},{"name":"admin","description":"Key minting (HTTP disabled)"},{"name":"discover","description":"Payment-first x402 Bazaar hero routes"}]}