{"openapi":"3.1.0","info":{"title":"MolTrust API","version":"2.5"},"paths":{"/identity/register":{"post":{"summary":"Register Agent","operationId":"register_agent_identity_register_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/register-challenge":{"get":{"summary":"Register Challenge","description":"Issue a stateless PoP challenge for keyless registration (no API key).","operationId":"register_challenge_identity_register_challenge_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/identity/register-pop":{"post":{"summary":"Register Agent Pop","description":"Keyless registration via Ed25519 proof-of-possession.\n\nNo API key, no signup: a valid signature over a fresh server challenge proves\nthe caller holds the private key for the presented public key. Grants a DID +\nsigned VC + free credits. Anti-abuse is the generous per-IP rate limit above\n(behavioral limiting comes later); trust starts at 0 and Sybil-resistance\nlives in the endorsement graph, so there is deliberately no Sybil gate here.","operationId":"register_agent_pop_identity_register_pop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PopRegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/moltbook":{"post":{"summary":"Auth With Moltbook","operationId":"auth_with_moltbook_auth_moltbook_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoltbookAuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/verify/{did}":{"get":{"summary":"Verify Agent","operationId":"verify_agent_identity_verify__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/badge/{did}":{"get":{"summary":"Get Identity Badge","description":"Identity badge — composite of agent metadata, current trust score and\nrating count, plus convenience URLs for the public verify page and SVG\nbadge. Used by the moltrust.ch /verify/{did} frontend, which fetches\nthis JSON in parallel with /identity/badge/{did}.svg.\n\nReturns 200 with `verified: true` for any registered DID, even if the\ntrust score is still withheld (insufficient endorsements). Returns 404\nonly when the DID is not registered at all.\n\nFrontend contract (the fields the /verify/{did} page reads):\n  verified, tier, trust_score, grade, issued_at, expires_at,\n  vc_hash, badge_url. Additional fields (display_name, withheld,\n  total_ratings, average_rating, verify_url) are extras the page\n  ignores but other consumers (klaw gateway, etc.) may use.","operationId":"get_identity_badge_identity_badge__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":80,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/badge/{did}.svg":{"get":{"summary":"Get Identity Badge Svg","description":"SVG badge for embedding/inlining on the moltrust.ch /verify/{did}\npage. The frontend fetches this in parallel with /identity/badge/{did}\nand inlines the result via r.text().\n\nMirrors the rendering logic of /badge/{did:path} (which predates the\n/identity/* convention) so both URLs stay in lockstep. 1h cache.\nReturns 200 with a placeholder SVG even for unknown/unscored DIDs —\nmatches the /badge/{did:path} behaviour (renders 'N/A' rather than\nsurfacing a 404 inline image).","operationId":"get_identity_badge_svg_identity_badge__did__svg_get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":80,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/reputation/query/{did}":{"get":{"summary":"Get Reputation","operationId":"get_reputation_reputation_query__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/reputation/rate":{"post":{"summary":"Rate Agent","operationId":"rate_agent_reputation_rate_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/skills":{"get":{"summary":"List Skills","operationId":"list_skills_skills_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/skill/interaction-proof":{"post":{"summary":"Create Interaction Proof Endpoint","description":"Interaction Proof: hash payload + anchor on Base L2. Required before endorsement.","operationId":"create_interaction_proof_endpoint_skill_interaction_proof_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionProofRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/skill/endorse":{"post":{"summary":"Endorse Skill Endpoint","description":"Issue SkillEndorsementCredential (W3C VC). Requires valid interaction proof.","operationId":"endorse_skill_endpoint_skill_endorse_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndorseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/skill/trust-score/{did}":{"get":{"summary":"Get Trust Score","description":"Phase 2 Trust Score with breakdown. Free. 1h cache.","operationId":"get_trust_score_skill_trust_score__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/trust/gate/{did}":{"get":{"summary":"Trust Gate","description":"ALLOW/DENY a counter-party DID. F3 flywheel primitive.\n\nAlways returns HTTP 200; inspect `decision` in the body.\n\nDecision tree:\n  1. Agent unknown                                                  → DENY agent_not_found\n  2. Phase 2 returns a real score:\n       score >= min_score                                           → ALLOW (behavioral)\n       score <  min_score                                           → DENY  insufficient_trust_score (behavioral)\n  3. Phase 2 withholds (< 3 endorsers, score is null):\n       allow_cold_start = false                                     → DENY  score_withheld\n       allow_cold_start = true:\n         cold_start_score is null                                   → DENY  score_withheld\n         cold_start_score >= min_score                              → ALLOW (cold_start)\n         cold_start_score <  min_score                              → DENY  insufficient_trust_score (cold_start)","operationId":"trust_gate_trust_gate__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"min_score","in":"query","required":false,"schema":{"type":"number","maximum":100.0,"minimum":0.0,"default":50.0,"title":"Min Score"}},{"name":"context","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Context"}},{"name":"allow_cold_start","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Allow Cold Start"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{did}/operator":{"post":{"summary":"Claim Agent Operator","description":"Set or replace the operator of an agent. Only the agent's own owner\ncan call this — the owner_did on the API key must equal the agent DID\nitself (current self-sovereign model). Most common pattern: the agent\nclaims itself as operator so it can put a cap on its own spend.","operationId":"claim_agent_operator_agents__did__operator_post","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#[REDACTED]"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operators/{operator_did}/agents/{agent_did}/budget-cap":{"put":{"summary":"Set Budget Cap","operationId":"set_budget_cap_operators__operator_did__agents__agent_did__budget_cap_put","parameters":[{"name":"operator_did","in":"path","required":true,"schema":{"type":"string","title":"Operator Did"}},{"name":"agent_did","in":"path","required":true,"schema":{"type":"string","title":"Agent Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetCapRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Budget Cap","operationId":"get_budget_cap_operators__operator_did__agents__agent_did__budget_cap_get","parameters":[{"name":"operator_did","in":"path","required":true,"schema":{"type":"string","title":"Operator Did"}},{"name":"agent_did","in":"path","required":true,"schema":{"type":"string","title":"Agent Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operators/{operator_did}/budget-caps":{"get":{"summary":"List Budget Caps","operationId":"list_budget_caps_operators__operator_did__budget_caps_get","parameters":[{"name":"operator_did","in":"path","required":true,"schema":{"type":"string","title":"Operator Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/skill/endorsements/given/{did}":{"get":{"summary":"Get Endorsements Given","description":"All endorsements given by an agent (transparency). Free.","operationId":"get_endorsements_given_skill_endorsements_given__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/skill/endorsements/{did}":{"get":{"summary":"Get Endorsements","description":"All received endorsements for an agent. Free.","operationId":"get_endorsements_skill_endorsements__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/swarm/graph/{did}":{"get":{"summary":"Get Swarm Graph","description":"Endorsement graph: who endorses this DID, who endorses them (2 hops).","operationId":"get_swarm_graph_swarm_graph__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/swarm/stats":{"get":{"summary":"Get Swarm Stats","description":"Global swarm statistics.","operationId":"get_swarm_stats_swarm_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/swarm/seed":{"post":{"summary":"Register Seed","description":"Register a trusted seed agent. Requires ADMIN_KEY header.","operationId":"register_seed_swarm_seed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeedRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/swarm/propagate/{did}":{"get":{"summary":"Propagate Trust","description":"Force recompute trust score with Phase 2 algorithm.","operationId":"propagate_trust_swarm_propagate__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payment/lightning/invoice":{"post":{"summary":"Create Lightning Invoice","operationId":"create_lightning_invoice_payment_lightning_invoice_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LightningInvoiceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health Check","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/did.json":{"get":{"summary":"Did Web Document","operationId":"did_web_document__well_known_did_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/identity/resolve/{did}":{"get":{"summary":"Resolve Did","operationId":"resolve_did_identity_resolve__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/key/{did}":{"get":{"summary":"Get Agent Public Key","description":"Return public key + on-chain anchor info for a DID.","operationId":"get_agent_public_key_identity_key__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/nonce":{"get":{"summary":"Get Binding Nonce","description":"Generate a nonce for DID-wallet binding signature.","operationId":"get_binding_nonce_identity_nonce_get","parameters":[{"name":"did","in":"query","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}},{"name":"chain","in":"query","required":false,"schema":{"type":"string","maxLength":20,"default":"base","title":"Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/bind":{"post":{"summary":"Bind Wallet","description":"Bind a wallet address to a DID with cryptographic proof of ownership.","operationId":"bind_wallet_identity_bind_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletBindRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/verify":{"get":{"summary":"X402 Verify","description":"Check if a DID has payment readiness (bound wallet + trust score).","operationId":"x402_verify_x402_verify_get","parameters":[{"name":"did","in":"query","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/x402/stats":{"get":{"summary":"X402 Stats","description":"Stats on /x402/verify usage. Optional: filter by DID.","operationId":"x402_stats_x402_stats_get","parameters":[{"name":"did","in":"query","required":false,"schema":{"type":"string","maxLength":40,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/payment":{"post":{"summary":"Payment Webhook","description":"Receive Basescan webhook for incoming USDC payments to MolTrust wallet.","operationId":"payment_webhook_webhooks_payment_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agents/inactive":{"get":{"summary":"Get Inactive Agents","description":"Returns agents inactive for more than `days` days. Admin-only. RSAC Gap 3.","operationId":"get_inactive_agents_agents_inactive_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/bridge":{"post":{"summary":"Bridge Did","description":"Bridge an external DID to a MolTrust DID via wallet signature proof.","operationId":"bridge_did_identity_bridge_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DIDBridgeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/bridge-simple":{"post":{"summary":"Bridge Did Simple","description":"Lightweight DID bridge — maps external DID to caller's MolTrust DID. No wallet required.","operationId":"bridge_did_simple_identity_bridge_simple_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleBridgeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/resolve-external/{external_did}":{"get":{"summary":"Resolve External Did","description":"Resolve an external DID to its bridged MolTrust DID document.","operationId":"resolve_external_did_identity_resolve_external__external_did__get","parameters":[{"name":"external_did","in":"path","required":true,"schema":{"type":"string","title":"External Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/import-score":{"post":{"summary":"Import External Score","description":"Import an external trust score into MolTrust via DID bridge.","operationId":"import_external_score_identity_import_score_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreImportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/agent-type/{did}":{"post":{"summary":"Set Agent Class","description":"Set or update the agent classification and governance tier.","operationId":"set_agent_class_identity_agent_type__did__post","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentClassRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Agent Class","description":"Read agent classification and governance rules.","operationId":"get_agent_class_identity_agent_type__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/agent-types":{"get":{"summary":"List Agent Types","description":"List all available agent classifications with governance rules.","operationId":"list_agent_types_identity_agent_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/identity/register-batch":{"post":{"tags":["Identity"],"summary":"Register Batch","description":"Batch register external agents. Requires x-admin-key.\nCreates DID, bridges external DID, imports score, anchors via single Merkle TX.\nUp to 1000 agents per call. Idempotent.","operationId":"register_batch_identity_register_batch_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/credentials/issue":{"post":{"summary":"Issue Vc","operationId":"issue_vc_credentials_issue_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueVCRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credentials/verify":{"post":{"summary":"Verify Vc","operationId":"verify_vc_credentials_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyVCRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/compliance/assess":{"post":{"tags":["Compliance"],"summary":"Compliance Assess","description":"Classify an AI system under the EU AI Act (Reg (EU) 2024/1689): risk tier\n(prohibited/high/limited/minimal), obligations checklist and gap analysis.\nDeterministic; every verdict is pinned to the verified spec-fakten.","operationId":"compliance_assess_compliance_assess_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceAssessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/compliance/declaration":{"post":{"tags":["Compliance"],"summary":"Compliance Declaration","description":"Issue an EU declaration of conformity (Annex V) as a signed W3C VC of type\nMolTrustConformityDeclaration. credentialSubject fields map 1:1 to Annex V(1)-(8).","operationId":"compliance_declaration_compliance_declaration_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceDeclarationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/compliance/report/{did}":{"get":{"tags":["Compliance"],"summary":"Compliance Report","description":"Compliance report (HTML v1): identity, latest risk assessment, obligations,\ngaps, conformity declarations, trust score, audit summary. `format=json` for machine use.","operationId":"compliance_report_compliance_report__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(html|json)$","default":"html","title":"Format"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/github":{"get":{"summary":"Github Auth Start","description":"Redirect to GitHub OAuth","operationId":"github_auth_start_auth_github_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/github/callback":{"get":{"summary":"Github Auth Callback","operationId":"github_auth_callback_auth_github_callback_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","maxLength":128,"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","maxLength":64,"default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/signup":{"post":{"summary":"Signup For Api Key","operationId":"signup_for_api_key_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credits/pricing":{"get":{"summary":"Credits Pricing","operationId":"credits_pricing_credits_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/credits/balance/{did}":{"get":{"summary":"Credits Balance","operationId":"credits_balance_credits_balance__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credits/transfer":{"post":{"summary":"Credits Transfer","operationId":"credits_transfer_credits_transfer_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/[REDACTED]"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credits/transactions/{did}":{"get":{"summary":"Credits Transactions","operationId":"credits_transactions_credits_transactions__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credits/deposit":{"post":{"summary":"Credits Deposit","description":"Claim credits by submitting a USDC transaction hash from Base.","operationId":"credits_deposit_credits_deposit_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credits/deposits/{did}":{"get":{"summary":"Credits Deposit History","description":"Get USDC deposit history for an agent.","operationId":"credits_deposit_history_credits_deposits__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credits/solvency/{did}":{"get":{"summary":"Credits Solvency V0","description":"Public, recomputable on-chain USDC solvency (solvency_usdc_v0).\n\nRead-only and UNAUTHENTICATED by design: a third party must be able to\nfetch the inputs and reproduce the value independently from a Base RPC.\nSpec: docs/solvency-usdc-v0.md (v0.1.0). Path (C) only — reads recorded\non-chain USDC deposits; does NOT touch wallet_score / shadow_score.","operationId":"credits_solvency_v0_credits_solvency__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credits/deposit-info":{"get":{"summary":"Credits Deposit Info","description":"Public endpoint: how to deposit USDC for credits.","operationId":"credits_deposit_info_credits_deposit_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/agent.json":{"get":{"summary":"Well Known Agent Json Alias","description":"Backward-compat alias for the legacy A2A discovery path.\n\nCurrent A2A serves the Agent Card at /.well-known/agent-card.json (nginx\nstatic). Pre-rename clients (e.g. @use-agently/sdk) still fetch\n/.well-known/agent.json and 404 — nginx has no location for it, so it\nfalls through to the app. Serve the same public card here so those\nclients can still discover MolTrust.","operationId":"well_known_agent_json_alias__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402":{"get":{"summary":"Well Known X402 Alias","description":"Redirect the extension-less legacy path to the served x402 discovery\ndocument. Clients fetch /.well-known/x402 (no .json) and 404; the document\nis served at /.well-known/x402.json. nginx has no location for the bare\npath, so it falls through to the app.","operationId":"well_known_x402_alias__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/mcp.json":{"get":{"summary":"Well Known Mcp Json","description":"MCP server discovery document. Points MCP clients to the Streamable-HTTP\nendpoint at /mcp. Static, analogous to /.well-known/agent-card.json.","operationId":"well_known_mcp_json__well_known_mcp_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap Redirect","description":"api.moltrust.ch serves no sitemap; crawlers probing it 404. Redirect them\nto the website sitemap on moltrust.ch.","operationId":"sitemap_redirect_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/extendedAgentCard":{"get":{"summary":"Extended Agent Card","description":"A2A v1.0 ExtendedAgentCard.\n\nReturns the public agent card extended with:\n- The platform's own paid skills (endorsement)\n- MoltGuard sub-API discovery surface — skill + extensions built at request time\n  from the live MoltGuard OpenAPI spec (cached 1h, see app/moltguard_discovery.py).\n  Graceful-degrades to public-card-only if MoltGuard is unreachable AND cache empty.","operationId":"extended_agent_card_extendedAgentCard_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"X-MolTrust-DID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Moltrust-Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agent-card/{did}":{"get":{"summary":"A2A Trust Card","operationId":"a2a_trust_card_a2a_agent_card__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":128,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/recent":{"get":{"summary":"Recent Agents","operationId":"recent_agents_agents_recent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/stats":{"get":{"summary":"Public Stats","operationId":"public_stats_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/join":{"get":{"summary":"Join Redirect","operationId":"join_redirect_join_get","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string","maxLength":100,"title":"Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{did}/erc8004":{"get":{"summary":"Erc8004 Registration File","description":"Serve ERC-8004 compatible registration file (Agent Card) for a MolTrust agent.","operationId":"erc8004_registration_file_agents__did__erc8004_get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":128,"title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resolve/erc8004/{agent_id}":{"get":{"summary":"Erc8004 Resolve","description":"Resolve an ERC-8004 agent ID on Base to its on-chain data + optional MolTrust cross-reference.","operationId":"erc8004_resolve_resolve_erc8004__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","minimum":0,"title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/agent-registration.json":{"get":{"summary":"Well Known Agent Registration","description":"ERC-8004 domain verification endpoint.","operationId":"well_known_agent_registration__well_known_agent_registration_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/identity/erc8004/register":{"post":{"summary":"Erc8004 Dual Register","description":"Dual registration: create MolTrust DID + register on ERC-8004 IdentityRegistry.","operationId":"erc8004_dual_register_identity_erc8004_register_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC8004RegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/erc8004/{address}":{"get":{"summary":"Erc8004 Resolve By Address","description":"Resolve ERC-8004 identity by Base wallet address.","operationId":"erc8004_resolve_by_address_identity_erc8004__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","maxLength":42,"title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/erc8004/validate":{"post":{"summary":"Erc8004 Validate","description":"MolTrust as ERC-8004 validator: assess agent, issue VC, post on-chain feedback.","operationId":"erc8004_validate_identity_erc8004_validate_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC8004ValidateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/health":{"get":{"summary":"Sports Health","description":"Sports module health check.","operationId":"sports_health_sports_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sports/predictions/commit":{"post":{"summary":"Sports Predict Commit","description":"Commit a prediction before an event starts. Returns commitment hash + on-chain anchor.","operationId":"sports_predict_commit_sports_predictions_commit_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionCommitRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/predictions/verify/{commitment_hash}":{"get":{"summary":"Sports Predict Verify","description":"Verify a prediction commitment exists and return details.","operationId":"sports_predict_verify_sports_predictions_verify__commitment_hash__get","parameters":[{"name":"commitment_hash","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Commitment Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/predictions/history/{did}":{"get":{"summary":"Sports Predict History","description":"Get prediction history and stats for an agent.","operationId":"sports_predict_history_sports_predictions_history__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":40,"title":"Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/predictions/settle/{commitment_hash}":{"patch":{"summary":"Sports Predict Settle Admin","description":"Admin endpoint: manually settle a prediction (for polymarket or manual events).","operationId":"sports_predict_settle_admin_sports_predictions_settle__commitment_hash__patch","parameters":[{"name":"commitment_hash","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Commitment Hash"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualSettleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/signals/register":{"post":{"summary":"Signal Provider Register","description":"Register as a Verified Signal Provider. Returns credential with on-chain anchor.","operationId":"signal_provider_register_sports_signals_register_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalProviderRegisterRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/signals/verify/{provider_id}":{"get":{"summary":"Signal Provider Verify","description":"Public: verify a signal provider and see their track record.","operationId":"signal_provider_verify_sports_signals_verify__provider_id__get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","maxLength":11,"title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/signals/leaderboard":{"get":{"summary":"Signal Provider Leaderboard","description":"Public: top signal providers ranked by accuracy.","operationId":"signal_provider_leaderboard_sports_signals_leaderboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sports/signals/badge/{provider_id}.svg":{"get":{"summary":"Signal Provider Badge","description":"Public: SVG badge for embedding in websites.","operationId":"signal_provider_badge_sports_signals_badge__provider_id__svg_get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","maxLength":11,"title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/fantasy/lineups/commit":{"post":{"summary":"Fantasy Lineup Commit","description":"Commit a fantasy lineup before contest start. Returns commitment hash + on-chain anchor.","operationId":"fantasy_lineup_commit_sports_fantasy_lineups_commit_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FantasyLineupCommitRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/fantasy/lineups/verify/{commitment_hash}":{"get":{"summary":"Fantasy Lineup Verify","description":"Public: verify a fantasy lineup commitment.","operationId":"fantasy_lineup_verify_sports_fantasy_lineups_verify__commitment_hash__get","parameters":[{"name":"commitment_hash","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Commitment Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/fantasy/lineups/settle/{commitment_hash}":{"patch":{"summary":"Fantasy Lineup Settle","description":"Admin: settle a fantasy lineup with results.","operationId":"fantasy_lineup_settle_sports_fantasy_lineups_settle__commitment_hash__patch","parameters":[{"name":"commitment_hash","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Commitment Hash"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#[REDACTED]"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sports/fantasy/history/{did}":{"get":{"summary":"Fantasy History","description":"Get fantasy lineup history and ROI stats for an agent.","operationId":"fantasy_history_sports_fantasy_history__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/violation/record":{"post":{"summary":"Create Violation Record","description":"Record a protocol violation. Requires X-Admin-Key header. Tech Spec 2.7.","operationId":"create_violation_record_violation_record_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViolationRecordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/violation/{record_id}":{"get":{"summary":"Get Violation Record","description":"Retrieve a ViolationRecord by ID. Public endpoint.","operationId":"get_violation_record_violation__record_id__get","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/violation/{record_id}/reverse":{"post":{"summary":"Reverse Violation","description":"Reverse a violation record. Requires X-Admin-Key header. Tech Spec 2.7.","operationId":"reverse_violation_violation__record_id__reverse_post","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViolationReversalRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/violation/agent/{did}":{"get":{"summary":"Get Agent Violations","description":"List all violation records for a given agent DID. Public endpoint.","operationId":"get_agent_violations_violation_agent__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/aae/evaluations/{did}":{"get":{"summary":"Get Agent Aae Evaluations","description":"Public read of an agent's AAE-evaluator verdicts — for independent witness\nrecomputation of the class=P constraint-breach penalty (TechSpec v0.10).\n\nExposes only the fields the penalty depends on: per-constraint\n{type, verdict, reason, class} plus aae_ref / created_at / aggregate verdict.\nDeliberately omits action_context (may be sensitive) and nonce (replay token).\nWith this, constraint_breach_penalty is fully recomputable from public inputs\n(this endpoint + /violation/agent/{did} + endorsements). Public read.","operationId":"get_agent_aae_evaluations_aae_evaluations__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credentials/verify-chain":{"post":{"summary":"Verify Delegation Chain Endpoint","description":"Full delegation chain verification with per-agent AAE lookup. RSAC Gap 2.","operationId":"verify_delegation_chain_endpoint_credentials_verify_chain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DelegationChainRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/revoke/{did}":{"post":{"summary":"Revoke Agent","description":"Revoke an agent. With cascade=true, all downstream delegated agents\nare also revoked (max 8 hops). Emits CAEP events.","operationId":"revoke_agent_identity_revoke__did__post","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/unrevoke/{did}":{"post":{"summary":"Unrevoke Agent","description":"Reinstate a revoked agent. Admin only.","operationId":"unrevoke_agent_identity_unrevoke__did__post","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/revocation-status/{did}":{"get":{"summary":"Revocation Status","description":"Check revocation status and downstream impact.","operationId":"revocation_status_identity_revocation_status__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/delegations/{did}":{"get":{"summary":"Get Delegations","description":"List all delegation relationships for an agent (parent and child).","operationId":"get_delegations_identity_delegations__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/spiffe/{spiffe_uri}":{"get":{"summary":"Spiffe Lookup","description":"Resolve a SPIFFE URI to a MolTrust DID with trust score and classification.\nLightweight bridge — full SVID/Workload API planned for Q3.","operationId":"spiffe_lookup_identity_spiffe__spiffe_uri__get","parameters":[{"name":"spiffe_uri","in":"path","required":true,"schema":{"type":"string","title":"Spiffe Uri"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/spiffe/bind":{"post":{"summary":"Spiffe Bind","description":"Bind a SPIFFE URI to an existing MolTrust DID.","operationId":"spiffe_bind_identity_spiffe_bind_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpiffeBindRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/spiffe/bind/{spiffe_uri}":{"delete":{"summary":"Spiffe Unbind","description":"Remove a SPIFFE binding. Admin only.","operationId":"spiffe_unbind_identity_spiffe_bind__spiffe_uri__delete","parameters":[{"name":"spiffe_uri","in":"path","required":true,"schema":{"type":"string","title":"Spiffe Uri"}},{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/identity/spiffe":{"get":{"summary":"Spiffe List","description":"List all SPIFFE bindings. Requires API key.","operationId":"spiffe_list_identity_spiffe_get","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/delegation/configure":{"post":{"summary":"Configure Delegation","description":"Configure delegation permissions for an agent. Admin or agent owner.","operationId":"configure_delegation_delegation_configure_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/delegation/create":{"post":{"tags":["Delegation"],"summary":"Delegation Create","description":"Mint a UCAN 0.10.0 delegation JWT (capabilities, attenuation, proof chain).\nBounded by the delegator's agent_delegation_config.","operationId":"delegation_create_delegation_create_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DelegationCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/delegation/verify":{"post":{"tags":["Delegation"],"summary":"Delegation Verify","description":"Verify a UCAN JWT + embedded proof chain: signature, time bounds, iss/aud\nchain alignment, attenuation monotonicity, and revocation.","operationId":"delegation_verify_delegation_verify_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DelegationVerifyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/reputation/batch-sync":{"post":{"tags":["Reputation"],"summary":"Reputation Batch Sync","description":"Batch reputation scores + ratings for up to 500 DIDs in a single query.","operationId":"reputation_batch_sync_reputation_batch_sync_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/anchors/batch":{"post":{"tags":["Anchoring"],"summary":"Anchors Batch","description":"Merkle-batch a set of hashes: returns the root + per-leaf proof paths.\nOptional on-chain submission uses ONLY the existing anchoring key (BASE_KEY);\nthe locked ERC-8004 wallet (0x9068…) is never used and no new wallet is configured.","operationId":"anchors_batch_anchors_batch_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchorsBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/compliance/incident":{"post":{"tags":["Compliance"],"summary":"Compliance Incident","description":"Record an Art 73 serious incident with the verified staggered deadline\n(2d critical-infra / 10d death / 15d general) and deadline status. Recording\nonly — no automatic authority dispatch (the Art 73 duty rests with the provider).","operationId":"compliance_incident_compliance_incident_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceIncidentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/interaction/validate-signing":{"post":{"summary":"Validate Signing Endpoint","description":"Validate interaction proof signing sequence. Tech Spec v0.2.2.","operationId":"validate_signing_endpoint_interaction_validate_signing_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/music/credential/issue":{"post":{"summary":"Issue Music Credential","description":"Issue a VerifiedMusicCredential. Returns the credential with provenance.","operationId":"issue_music_credential_music_credential_issue_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicCredentialRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/music/credential/{credential_id}":{"get":{"summary":"Get Music Credential","description":"Retrieve a VerifiedMusicCredential by ID. Public endpoint.","operationId":"get_music_credential_music_credential__credential_id__get","parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Credential Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/music/credential/agent/{did}":{"get":{"summary":"Get Agent Music Credentials","description":"List all music credentials for a given agent DID. Public endpoint.","operationId":"get_agent_music_credentials_music_credential_agent__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/music/credential/{credential_id}/revoke":{"post":{"summary":"Revoke Music Credential","description":"Revoke a music credential. Requires X-Admin-Key.","operationId":"revoke_music_credential_music_credential__credential_id__revoke_post","parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Credential Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicRevokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/music/verify/{credential_id}":{"get":{"summary":"Verify Music Credential","description":"Public verification: returns validity + full credential + anchor status.","operationId":"verify_music_credential_music_verify__credential_id__get","parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Credential Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/aae/submit":{"post":{"tags":["AAE Enforcement"],"summary":"Aae Submit","description":"Submit an AAE as a compact JWS (D-1 Acceptance-Gate). Verifiziert die Issuer-\nSignatur + payload/schema (AAE draft-04 §5 Step 1+2) fail-closed, dann persist.\nmandate/constraints/validity kommen aus dem VERIFIZIERTEN payload (nicht client-claims).\n\nBody: {\"aae_jws\": \"<compact JWS>\"}. 422 invalid/unverifiable, 409 single_use-Kollision.","operationId":"aae_submit_vc_aae_submit_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"X-MolTrust-DID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Moltrust-Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/aae/evaluate":{"post":{"tags":["AAE Enforcement"],"summary":"Aae Evaluate","description":"Evaluate a geplante Aktion (action_context) gegen einen gespeicherten AAE-Envelope.\n\nBoundary-Validierung (Defense-in-Depth zum fail-closed Core): nonce-missing->422,\nSchema/Size/Format-Checks, agent_did==auth-principal, vc_id<->Envelope-Binding.\nVerdict (ALLOW/DENY) kommt signiert aus dem Evaluator-Core; das eval-row ist persistiert.","operationId":"aae_evaluate_vc_aae_evaluate_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"X-MolTrust-DID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Moltrust-Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/ipr/submit":{"post":{"tags":["Output Provenance"],"summary":"Ipr Submit","description":"Submit an Interaction Proof Record.","operationId":"ipr_submit_vc_ipr_submit_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/ipr/stats":{"get":{"tags":["Output Provenance"],"summary":"Ipr Stats Endpoint","description":"Get aggregate IPR statistics.","operationId":"ipr_stats_endpoint_vc_ipr_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/vc/ipr/agent/{did}":{"get":{"tags":["Output Provenance"],"summary":"Ipr By Agent","description":"Get IPRs for an agent, newest first.","operationId":"ipr_by_agent_vc_ipr_agent__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/ipr/{ipr_id}":{"get":{"tags":["Output Provenance"],"summary":"Ipr Get","description":"Get a single IPR by ID.","operationId":"ipr_get_vc_ipr__ipr_id__get","parameters":[{"name":"ipr_id","in":"path","required":true,"schema":{"type":"string","title":"Ipr Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/ipr/{ipr_id}/status":{"get":{"tags":["Output Provenance"],"summary":"Ipr Status","description":"Check DB vs chain consistency for an IPR.","operationId":"ipr_status_vc_ipr__ipr_id__status_get","parameters":[{"name":"ipr_id","in":"path","required":true,"schema":{"type":"string","title":"Ipr Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/ipr/verify":{"post":{"tags":["Output Provenance"],"summary":"Ipr Verify","description":"Verify an IPR: check signature, anchor, and Merkle proof.","operationId":"ipr_verify_vc_ipr_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/vc/ipr/{ipr_id}/outcome":{"post":{"tags":["Output Provenance"],"summary":"Ipr Outcome","description":"Submit outcome feedback for confidence calibration.","operationId":"ipr_outcome_vc_ipr__ipr_id__outcome_post","parameters":[{"name":"ipr_id","in":"path","required":true,"schema":{"type":"string","title":"Ipr Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vc/ipr/admin/anchor":{"post":{"tags":["Output Provenance Admin"],"summary":"Ipr Admin Anchor","description":"Admin: Trigger Merkle batch anchoring for all pending IPRs.","operationId":"ipr_admin_anchor_vc_ipr_admin_anchor_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/vc/ipr/admin/retry":{"post":{"tags":["Output Provenance Admin"],"summary":"Ipr Admin Retry","description":"Admin: Reset failed IPRs back to pending.","operationId":"ipr_admin_retry_vc_ipr_admin_retry_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/vc/ipr/admin/reconcile":{"post":{"tags":["Output Provenance Admin"],"summary":"Ipr Admin Reconcile","description":"Admin: Verify all anchored IPRs against chain and reset missing.","operationId":"ipr_admin_reconcile_vc_ipr_admin_reconcile_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/vc/ipr/admin/reanchor":{"post":{"tags":["Output Provenance Admin"],"summary":"Ipr Admin Reanchor","description":"Admin: Force re-anchor a specific IPR.","operationId":"ipr_admin_reanchor_vc_ipr_admin_reanchor_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/login":{"post":{"summary":"Admin Login","operationId":"admin_login_admin_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/logout":{"post":{"summary":"Admin Logout","operationId":"admin_logout_admin_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/me":{"get":{"summary":"Admin Me","operationId":"admin_me_admin_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/overview":{"get":{"summary":"Dashboard Overview","operationId":"dashboard_overview_admin_dashboard_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/agents":{"get":{"summary":"Dashboard Agents","operationId":"dashboard_agents_admin_dashboard_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/activity":{"get":{"summary":"Dashboard Activity","operationId":"dashboard_activity_admin_dashboard_activity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/security":{"get":{"summary":"Dashboard Security","operationId":"dashboard_security_admin_dashboard_security_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/x402":{"get":{"summary":"Dashboard X402","operationId":"dashboard_x402_admin_dashboard_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/discovery":{"get":{"summary":"Dashboard Discovery","description":"Discovery-Tracking dashboard — latest snapshot + 7-day history + baseline.\n\nReads discovery_snapshots (populated by scripts/discovery_snapshot.py cron).\nReturns latest + previous-day + baseline rows; the frontend computes deltas.\nAdmin-only endpoint — intentionally NOT in agent-card/OpenAPI/llms.txt\n(Discovery-Checklist Gate: internal-only).","operationId":"dashboard_discovery_admin_dashboard_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/journal":{"get":{"summary":"Dashboard Journal","description":"Return today's and recent journal entries.","operationId":"dashboard_journal_admin_dashboard_journal_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/journal/list":{"get":{"summary":"Dashboard Journal List","description":"List ALL available journal entries with preview. Admin auth.","operationId":"dashboard_journal_list_admin_dashboard_journal_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/journal/search":{"get":{"summary":"Dashboard Journal Search","description":"Full-text search across all journal entries. Admin auth.","operationId":"dashboard_journal_search_admin_dashboard_journal_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":100,"default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/dashboard/journal/{date}":{"get":{"summary":"Dashboard Journal Entry","description":"Return a specific journal entry by date (YYYY-MM-DD).","operationId":"dashboard_journal_entry_admin_dashboard_journal__date__get","parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string","title":"Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/journal/append":{"post":{"summary":"Journal Append","description":"Append a note to today's (or specified date's) journal entry.","operationId":"journal_append_admin_journal_append_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#[REDACTED]"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search":{"get":{"summary":"Site Search","description":"Public site-wide search over all HTML pages.","operationId":"site_search_api_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":80,"default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/dashboard/callers":{"get":{"summary":"Dashboard Callers","description":"Aggregated caller list from request_log. Admin auth.","operationId":"dashboard_callers_admin_dashboard_callers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":100,"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/dashboard/callers/{ip}":{"get":{"summary":"Dashboard Caller Detail","description":"Detail view for a single IP. Admin auth.","operationId":"dashboard_caller_detail_admin_dashboard_callers__ip__get","parameters":[{"name":"ip","in":"path","required":true,"schema":{"type":"string","title":"Ip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/dashboard/health":{"get":{"summary":"Dashboard Health","description":"Discovery & error-health panel for the admin dashboard: high-error\nendpoints (24h), discovery failures (callers getting ONLY 404s over 7d), and\n/.well-known/* status (24h). Admin auth. Read-only.","operationId":"dashboard_health_admin_dashboard_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/dashboard/traffic":{"get":{"summary":"Dashboard Traffic","operationId":"dashboard_traffic_admin_dashboard_traffic_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"default":24,"title":"Hours"}},{"name":"source","in":"query","required":false,"schema":{"type":"string","maxLength":20,"title":"Source"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/traffic/caller/{ip}":{"get":{"tags":["Admin"],"summary":"Caller Detail","description":"Admin: Get detailed traffic info for a specific IP.","operationId":"caller_detail_admin_traffic_caller__ip__get","parameters":[{"name":"ip","in":"path","required":true,"schema":{"type":"string","title":"Ip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/traffic/caller/{ip}/label":{"post":{"tags":["Admin"],"summary":"Set Caller Label","description":"Admin: Set or update label for a caller IP.","operationId":"set_caller_label_admin_traffic_caller__ip__label_post","parameters":[{"name":"ip","in":"path","required":true,"schema":{"type":"string","title":"Ip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/badge/{did}":{"get":{"summary":"Get Trust Badge","description":"Live SVG badge showing trust score + grade. 1h cache.","operationId":"get_trust_badge_badge__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/wallet/{address}":{"get":{"summary":"Wallet Shadow Score","description":"Public wallet trust profile with shadow score based on on-chain activity.","operationId":"wallet_shadow_score_wallet__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","maxLength":64,"title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/plans":{"get":{"tags":["billing"],"summary":"List Plans","description":"Public: return all available plans.","operationId":"list_plans_billing_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/billing/checkout":{"post":{"tags":["billing"],"summary":"Create Checkout","description":"Create a Stripe Checkout Session.\nReturns {checkout_url} — redirect customer there.","operationId":"create_checkout_billing_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/portal":{"post":{"tags":["billing"],"summary":"Customer Portal","description":"Create a Stripe Customer Portal session for self-service management.","operationId":"customer_portal_billing_portal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/subscription/{customer_id}":{"get":{"tags":["billing"],"summary":"Get Subscription","description":"Get current subscription status for a customer.","operationId":"get_subscription_billing_subscription__customer_id__get","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/webhook":{"post":{"tags":["billing"],"summary":"Stripe Webhook","description":"Stripe sends signed events here.\nVerifies signature → updates billing tables via asyncpg pool.","operationId":"stripe_webhook_billing_webhook_post","parameters":[{"name":"stripe-signature","in":"header","required":false,"schema":{"type":"string","title":"Stripe-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/billing/referrals":{"get":{"tags":["billing-admin"],"summary":"List Referrals","description":"Return subscription counts and MRR (CHF) grouped by referral_source.\nRequires x-admin-key header matching ADMIN_KEY env var.","operationId":"list_referrals_admin_billing_referrals_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/test-harness/invoke":{"post":{"tags":["test-harness"],"summary":"Invoke","description":"Execute a test cross-verify interaction.\n\nAccepts any DID method. Records interaction, signs attestation.\nTrust score updates are asynchronous.","operationId":"invoke_test_harness_invoke_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/test-harness/info":{"get":{"tags":["test-harness"],"summary":"Info","description":"Public metadata for test harness — for partner discovery.","operationId":"info_test_harness_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/caep/pending/{did}":{"get":{"tags":["caep"],"summary":"Caep Pending","description":"Pending CAEP events for a DID. Free during Early Access. 120/h per DID.","operationId":"caep_pending_caep_pending__did__get","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"string","title":"Did"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"event_id cursor for pagination","title":"Since"},"description":"event_id cursor for pagination"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/caep/acknowledge/{event_id}":{"post":{"tags":["caep"],"summary":"Caep Acknowledge","description":"Mark a CAEP event as acknowledged.","operationId":"caep_acknowledge_caep_acknowledge__event_id__post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/registry-key.json":{"get":{"tags":["caep"],"summary":"Well Known Registry Key","description":"Public Ed25519 registry key in JWK format. 1h cache.","operationId":"well_known_registry_key__well_known_registry_key_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/attestations/{attestation_id}":{"get":{"summary":"Get Attestation","description":"Resolve a MolTrust behavioral_trust attestation by ID.\nCompatible with aeoess/agent-governance-vocabulary canonical signal format.","operationId":"get_attestation_attestations__attestation_id__get","parameters":[{"name":"attestation_id","in":"path","required":true,"schema":{"type":"string","title":"Attestation Id"}},{"name":"did","in":"query","required":false,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/test-harness/endorse":{"post":{"tags":["Test Harness"],"summary":"Test Harness Endorse","description":"Record an endorsement via partner test harness. Requires partner-tier API key.","operationId":"test_harness_endorse_test_harness_endorse_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestHarnessEndorseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a":{"head":{"summary":"A2A Discovery Hint","operationId":"a2a_discovery_hint_a2a_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"get":{"summary":"A2A Discovery Hint","operationId":"a2a_discovery_hint_a2a_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["A2A: JSON-RPC"],"summary":"A2A JSON-RPC endpoint","description":"A2A JSON-RPC 2.0 endpoint. The `method` field selects the operation;\n`params` must match that method's schema (see the `oneOf` below).\n\n**Supported methods:**\n\n- `SendMessage` — Send a message to the agent (returns a Task or response Message).\n- `SendStreamingMessage` — Send a message and receive a Server-Sent Events stream.\n- `GetTask` — Fetch a task by ID.\n- `ListTasks` — List tasks with pagination and filtering.\n- `CancelTask` — Cancel an in-progress task.\n- `CreateTaskPushNotificationConfig` — Register a push-notification config on a task.\n- `GetTaskPushNotificationConfig` — Read a single push-notification config.\n- `ListTaskPushNotificationConfigs` — List all push-notification configs for a task.\n- `DeleteTaskPushNotificationConfig` — Delete a push-notification config.\n- `SubscribeToTask` — Subscribe to task events via Server-Sent Events.\n- `GetExtendedAgentCard` — Fetch the authenticated extended agent card.\n","operationId":"handle_requests_a2a_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"requestBody":{"description":"A2A JSON-RPC 2.0 request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/A2ARequest"}}}},"parameters":[{"in":"header","name":"A2A-Version","required":true,"schema":{"type":"string","enum":["1.0"]},"example":"1.0"}]}}},"components":{"schemas":{"AdminLoginRequest":{"properties":{"username":{"type":"string","maxLength":32,"title":"Username"},"password":{"type":"string","maxLength":128,"title":"Password"}},"type":"object","required":["username","password"],"title":"AdminLoginRequest"},"AgentClassRequest":{"properties":{"agent_class":{"type":"string","title":"Agent Class","description":"One of: orchestrator, autonomous, human_initiated, copilot"},"agent_framework":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Agent Framework","description":"e.g. langgraph, crewai, autogen"},"agent_version":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Agent Version"},"publisher":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Publisher"}},"type":"object","required":["agent_class"],"title":"AgentClassRequest"},"AnchorsBatchRequest":{"properties":{"hashes":{"items":{"type":"string"},"type":"array","title":"Hashes","description":"Hex sha256 leaf hashes (optionally 0x-prefixed)"},"submit_onchain":{"type":"boolean","title":"Submit Onchain","description":"Submit the Merkle root on-chain via the existing anchoring key","default":false}},"type":"object","required":["hashes"],"title":"AnchorsBatchRequest"},"BudgetCapRequest":{"properties":{"monthly_cap_chf":{"type":"number","minimum":0.0,"title":"Monthly Cap Chf"},"warning_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Warning Threshold","default":0.8}},"type":"object","required":["monthly_cap_chf"],"title":"BudgetCapRequest"},"CheckoutRequest":{"properties":{"tier":{"type":"string","title":"Tier"},"currency":{"type":"string","title":"Currency","default":"usd"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"agent_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Did"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref","description":"Optional referral source tag (e.g. 'dsncon'). Stored on the subscription for attribution."},"success_url":{"type":"string","title":"Success Url","default":"https://moltrust.ch/billing/success"},"cancel_url":{"type":"string","title":"Cancel Url","default":"https://moltrust.ch/billing/cancel"}},"type":"object","required":["tier"],"title":"CheckoutRequest"},"ClaimOperatorRequest":{"properties":{"operator_did":{"type":"string","maxLength":255,"title":"Operator Did"}},"type":"object","required":["operator_did"],"title":"ClaimOperatorRequest"},"ComplianceAssessRequest":{"properties":{"did":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Did","description":"Optional agent DID to attach the assessment to"},"use_case":{"type":"string","maxLength":2000,"title":"Use Case","description":"Description of the AI system's use case"},"intended_purpose":{"type":"string","maxLength":2000,"title":"Intended Purpose","description":"Intended purpose (Art 7(2)(a))"},"annex_iii_area":{"anyOf":[{"type":"integer","maximum":8.0,"minimum":1.0},{"type":"null"}],"title":"Annex Iii Area","description":"Annex III area 1-8, if known"},"is_annex_i_safety_component":{"type":"boolean","title":"Is Annex I Safety Component","default":false},"requires_third_party_conformity":{"type":"boolean","title":"Requires Third Party Conformity","default":false},"performs_profiling":{"type":"boolean","title":"Performs Profiling","default":false},"prohibited_flags":{"items":{"type":"string"},"type":"array","title":"Prohibited Flags","description":"Self-declared Art 5(1) flags"},"derogation_claim":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Derogation Claim","description":"Art 6(3): narrow_procedural|improve_human_result|detect_patterns_no_replace|preparatory_task"},"interacts_with_humans":{"type":"boolean","title":"Interacts With Humans","default":false},"generates_synthetic_content":{"type":"boolean","title":"Generates Synthetic Content","default":false},"emotion_recognition":{"type":"boolean","title":"Emotion Recognition","default":false},"biometric_categorisation":{"type":"boolean","title":"Biometric Categorisation","default":false},"deep_fake":{"type":"boolean","title":"Deep Fake","default":false}},"type":"object","required":["use_case","intended_purpose"],"title":"ComplianceAssessRequest"},"ComplianceDeclarationRequest":{"properties":{"subject_did":{"type":"string","maxLength":128,"title":"Subject Did","description":"DID of the AI system / agent"},"ai_system_name":{"type":"string","maxLength":255,"title":"Ai System Name"},"ai_system_reference":{"type":"string","maxLength":255,"title":"Ai System Reference"},"provider_name":{"type":"string","maxLength":255,"title":"Provider Name"},"provider_address":{"type":"string","maxLength":500,"title":"Provider Address"},"conformity_with_other_union_law":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Conformity With Other Union Law"},"processes_personal_data":{"type":"boolean","title":"Processes Personal Data","default":false},"harmonised_standards":{"items":{"type":"string"},"type":"array","title":"Harmonised Standards"},"notified_body":{"anyOf":[{"$ref":"#/components/schemas/NotifiedBodyInput"},{"type":"null"}]},"place_of_issue":{"type":"string","maxLength":255,"title":"Place Of Issue"},"signatory_name":{"type":"string","maxLength":255,"title":"Signatory Name"},"signatory_function":{"type":"string","maxLength":255,"title":"Signatory Function"},"on_behalf_of":{"type":"string","maxLength":255,"title":"On Behalf Of"},"anchor":{"type":"boolean","title":"Anchor","description":"If true, return a content commitment (sha256) for later batch anchoring via /anchors/batch","default":false}},"type":"object","required":["subject_did","ai_system_name","ai_system_reference","provider_name","provider_address","place_of_issue","signatory_name","signatory_function","on_behalf_of"],"title":"ComplianceDeclarationRequest"},"ComplianceIncidentRequest":{"properties":{"did":{"type":"string","maxLength":128,"title":"Did"},"category":{"type":"string","title":"Category","description":"death|health_harm|critical_infrastructure|widespread_infringement|fundamental_rights|property_environment"},"severity":{"type":"string","title":"Severity","default":"high"},"description":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Description"},"awareness_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Awareness Date","description":"ISO8601 UTC; defaults to now"}},"type":"object","required":["did","category"],"title":"ComplianceIncidentRequest"},"CreditTransferRequest":{"properties":{"from_did":{"type":"string","maxLength":40,"title":"From Did"},"to_did":{"type":"string","maxLength":40,"title":"To Did"},"amount":{"type":"integer","minimum":1.0,"title":"Amount"},"reference":{"type":"string","maxLength":256,"title":"Reference","default":""}},"type":"object","required":["from_did","to_did","amount"],"title":"CreditTransferRequest"},"DIDBridgeRequest":{"properties":{"external_did":{"type":"string","maxLength":256,"title":"External Did"},"moltrust_did":{"type":"string","maxLength":40,"title":"Moltrust Did"},"wallet_address":{"type":"string","maxLength":64,"title":"Wallet Address"},"chain":{"type":"string","maxLength":20,"title":"Chain","default":"solana"},"proof":{"type":"string","maxLength":512,"title":"Proof"},"nonce":{"type":"string","maxLength":64,"title":"Nonce"}},"type":"object","required":["external_did","moltrust_did","wallet_address","proof","nonce"],"title":"DIDBridgeRequest"},"DelegationChainRequest":{"properties":{"credential_chain":{"items":{},"type":"array","title":"Credential Chain"}},"type":"object","title":"DelegationChainRequest"},"DelegationCreateRequest":{"properties":{"delegator_did":{"type":"string","maxLength":128,"title":"Delegator Did"},"audience_did":{"type":"string","maxLength":128,"title":"Audience Did"},"capabilities":{"additionalProperties":true,"type":"object","title":"Capabilities","description":"UCAN cap map {resource:{ability:[caveats]}}"},"ttl_seconds":{"type":"integer","maximum":31536000.0,"minimum":1.0,"title":"Ttl Seconds","default":3600},"nonce":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Nonce"},"facts":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Facts"},"proofs":{"items":{"type":"string"},"type":"array","title":"Proofs","description":"Embedded parent UCAN JWTs"}},"type":"object","required":["delegator_did","audience_did","capabilities"],"title":"DelegationCreateRequest"},"DelegationVerifyRequest":{"properties":{"token":{"type":"string","maxLength":100000,"title":"Token"},"expected_audience":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Expected Audience"}},"type":"object","required":["token"],"title":"DelegationVerifyRequest"},"DepositRequest":{"properties":{"tx_hash":{"type":"string","maxLength":70,"minLength":64,"title":"Tx Hash"},"did":{"type":"string","maxLength":40,"title":"Did"}},"type":"object","required":["tx_hash","did"],"title":"DepositRequest"},"ERC8004RegisterRequest":{"properties":{"name":{"type":"string","maxLength":128,"title":"Name"},"description":{"type":"string","maxLength":1024,"title":"Description","default":""},"wallet_address":{"type":"string","maxLength":64,"title":"Wallet Address"},"platform":{"type":"string","maxLength":64,"title":"Platform","default":"base"}},"type":"object","required":["name","wallet_address"],"title":"ERC8004RegisterRequest"},"ERC8004ValidateRequest":{"properties":{"erc8004_agent_id":{"type":"integer","minimum":0.0,"title":"Erc8004 Agent Id"},"validation_type":{"type":"string","maxLength":64,"title":"Validation Type","default":"trust_assessment"}},"type":"object","required":["erc8004_agent_id"],"title":"ERC8004ValidateRequest"},"EndorseRequest":{"properties":{"api_key":{"type":"string","title":"Api Key"},"endorsed_did":{"type":"string","title":"Endorsed Did"},"skill":{"type":"string","title":"Skill"},"evidence_hash":{"type":"string","title":"Evidence Hash"},"evidence_timestamp":{"type":"string","title":"Evidence Timestamp"},"vertical":{"type":"string","title":"Vertical"}},"type":"object","required":["api_key","endorsed_did","skill","evidence_hash","evidence_timestamp","vertical"],"title":"EndorseRequest"},"FantasyLineupCommitRequest":{"properties":{"agent_did":{"type":"string","maxLength":64,"title":"Agent Did"},"contest_id":{"type":"string","maxLength":256,"title":"Contest Id"},"platform":{"type":"string","maxLength":32,"title":"Platform"},"sport":{"type":"string","maxLength":32,"title":"Sport"},"contest_type":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Contest Type"},"contest_start_iso":{"type":"string","maxLength":30,"title":"Contest Start Iso"},"entry_fee_usd":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Entry Fee Usd"},"lineup":{"additionalProperties":true,"type":"object","title":"Lineup"},"projected_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Projected Score"},"confidence":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence"}},"type":"object","required":["agent_did","contest_id","platform","sport","contest_start_iso","lineup"],"title":"FantasyLineupCommitRequest"},"FantasySettleRequest":{"properties":{"actual_score":{"type":"number","title":"Actual Score"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank"},"total_entries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Entries"},"prize_usd":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Prize Usd"},"percentile":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Percentile"}},"type":"object","required":["actual_score"],"title":"FantasySettleRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InteractionProofRequest":{"properties":{"api_key":{"type":"string","title":"Api Key"},"interaction_payload":{"additionalProperties":true,"type":"object","title":"Interaction Payload"}},"type":"object","required":["api_key","interaction_payload"],"title":"InteractionProofRequest"},"InvokeRequest":{"properties":{"caller_did":{"type":"string","title":"Caller Did","description":"The invoking agent's DID (any method)"},"intent":{"type":"string","title":"Intent","description":"Test intent: ping, handshake, or custom","default":"ping"},"nonce":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nonce","description":"Optional nonce for replay protection"}},"type":"object","required":["caller_did"],"title":"InvokeRequest"},"IssueVCRequest":{"properties":{"subject_did":{"type":"string","maxLength":128,"title":"Subject Did"},"credential_type":{"type":"string","maxLength":64,"title":"Credential Type","default":"AgentTrustCredential"}},"type":"object","required":["subject_did"],"title":"IssueVCRequest"},"JournalAppendRequest":{"properties":{"text":{"type":"string","maxLength":2000,"title":"Text"},"date":{"type":"string","maxLength":10,"title":"Date"}},"type":"object","required":["text"],"title":"JournalAppendRequest"},"LightningInvoiceRequest":{"properties":{"amount_sats":{"type":"integer","maximum":10000000.0,"minimum":1.0,"title":"Amount Sats"},"description":{"type":"string","maxLength":128,"title":"Description","default":"MolTrust"}},"type":"object","required":["amount_sats"],"title":"LightningInvoiceRequest"},"ManualSettleRequest":{"properties":{"result":{"type":"string","maxLength":64,"title":"Result"},"score":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Score"},"detail":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["result"],"title":"ManualSettleRequest"},"MoltbookAuthRequest":{"properties":{"token":{"type":"string","maxLength":512,"minLength":10,"title":"Token"}},"type":"object","required":["token"],"title":"MoltbookAuthRequest"},"MusicCredentialRequest":{"properties":{"agent_did":{"type":"string","maxLength":128,"title":"Agent Did"},"tool":{"type":"string","maxLength":128,"title":"Tool"},"human_oversight":{"type":"string","maxLength":16,"title":"Human Oversight"},"genre":{"type":"string","maxLength":64,"title":"Genre"},"rights":{"type":"string","maxLength":64,"title":"Rights"},"track_title":{"type":"string","maxLength":256,"title":"Track Title"},"track_description":{"type":"string","maxLength":1024,"title":"Track Description"},"human_name":{"type":"string","maxLength":128,"title":"Human Name"},"session":{"type":"string","maxLength":128,"title":"Session"},"isrc":{"type":"string","maxLength":15,"title":"Isrc"}},"type":"object","required":["agent_did","tool","human_oversight","rights","track_title"],"title":"MusicCredentialRequest"},"MusicRevokeRequest":{"properties":{"reason":{"type":"string","maxLength":512,"title":"Reason"}},"type":"object","required":["reason"],"title":"MusicRevokeRequest"},"NotifiedBodyInput":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"identification_number":{"type":"string","maxLength":64,"title":"Identification Number"},"procedure":{"type":"string","maxLength":500,"title":"Procedure"},"certificate":{"type":"string","maxLength":255,"title":"Certificate"}},"type":"object","required":["name","identification_number","procedure","certificate"],"title":"NotifiedBodyInput"},"PopRegisterRequest":{"properties":{"public_key":{"type":"string","maxLength":64,"minLength":64,"title":"Public Key","description":"Ed25519 public key, 64 hex chars"},"challenge":{"type":"string","maxLength":256,"title":"Challenge","description":"Challenge from GET /identity/register-challenge"},"signature":{"type":"string","maxLength":256,"title":"Signature","description":"base64url Ed25519 signature over the challenge string"},"pow_nonce":{"type":"string","maxLength":64,"title":"Pow Nonce","description":"PoW nonce: sha256(pow_seed || nonce) must have >= difficulty_bits leading zero bits"},"display_name":{"type":"string","maxLength":64,"minLength":1,"title":"Display Name","default":"anonymous"},"platform":{"type":"string","maxLength":32,"title":"Platform","default":"a2a"}},"type":"object","required":["public_key","challenge","signature","pow_nonce"],"title":"PopRegisterRequest"},"PortalRequest":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"return_url":{"type":"string","title":"Return Url","default":"https://moltrust.ch/dashboard"}},"type":"object","required":["customer_id"],"title":"PortalRequest"},"PredictionCommitRequest":{"properties":{"agent_did":{"type":"string","maxLength":40,"title":"Agent Did"},"event_id":{"type":"string","maxLength":256,"title":"Event Id"},"prediction":{"additionalProperties":true,"type":"object","title":"Prediction"},"event_start":{"type":"string","maxLength":30,"title":"Event Start"}},"type":"object","required":["agent_did","event_id","prediction","event_start"],"title":"PredictionCommitRequest"},"RateRequest":{"properties":{"from_did":{"type":"string","maxLength":40,"title":"From Did"},"to_did":{"type":"string","maxLength":40,"title":"To Did"},"score":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Score"}},"type":"object","required":["from_did","to_did","score"],"title":"RateRequest"},"RegisterRequest":{"properties":{"display_name":{"type":"string","maxLength":64,"minLength":1,"title":"Display Name","default":"anonymous"},"platform":{"type":"string","maxLength":32,"title":"Platform","default":"moltbook"},"email":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Email"},"erc8004":{"type":"boolean","title":"Erc8004","description":"Also register on ERC-8004 IdentityRegistry on Base","default":false}},"type":"object","title":"RegisterRequest"},"ReputationBatchRequest":{"properties":{"dids":{"items":{"type":"string"},"type":"array","title":"Dids","description":"DIDs to score (max 500)"}},"type":"object","required":["dids"],"title":"ReputationBatchRequest"},"RevokeRequest":{"properties":{"reason":{"type":"string","maxLength":100,"title":"Reason","default":"manual_revocation"},"cascade":{"type":"boolean","title":"Cascade","description":"Revoke all downstream delegated agents","default":false}},"type":"object","title":"RevokeRequest"},"ScoreImportRequest":{"properties":{"moltrust_did":{"type":"string","maxLength":40,"title":"Moltrust Did"},"external_did":{"type":"string","maxLength":256,"title":"External Did"},"external_score":{"type":"number","minimum":0.0,"title":"External Score"},"external_system":{"type":"string","maxLength":32,"title":"External System"},"proof":{"type":"string","maxLength":512,"title":"Proof","default":""}},"type":"object","required":["moltrust_did","external_did","external_score","external_system"],"title":"ScoreImportRequest"},"SeedRequest":{"properties":{"did":{"type":"string","title":"Did"},"label":{"type":"string","title":"Label"},"base_score":{"type":"number","title":"Base Score","default":80.0}},"type":"object","required":["did","label"],"title":"SeedRequest"},"SignalProviderRegisterRequest":{"properties":{"agent_did":{"type":"string","maxLength":40,"title":"Agent Did"},"provider_name":{"type":"string","maxLength":128,"title":"Provider Name"},"provider_url":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Provider Url"},"sport_focus":{"items":{"type":"string"},"type":"array","title":"Sport Focus"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"}},"type":"object","required":["agent_did","provider_name"],"title":"SignalProviderRegisterRequest"},"SignupRequest":{"properties":{"email":{"type":"string","maxLength":256,"title":"Email"}},"type":"object","required":["email"],"title":"SignupRequest"},"SimpleBridgeRequest":{"properties":{"external_did":{"type":"string","maxLength":256,"title":"External Did"},"label":{"type":"string","maxLength":128,"title":"Label","default":""},"platform":{"type":"string","maxLength":32,"title":"Platform","default":"external"}},"type":"object","required":["external_did"],"title":"SimpleBridgeRequest"},"SpiffeBindRequest":{"properties":{"spiffe_uri":{"type":"string","maxLength":512,"title":"Spiffe Uri","description":"SPIFFE URI, e.g. spiffe://moltrust.ch/agent/scanner"},"did":{"type":"string","maxLength":40,"title":"Did","description":"MolTrust DID to bind to"}},"type":"object","required":["spiffe_uri","did"],"title":"SpiffeBindRequest"},"TestHarnessEndorseRequest":{"properties":{"endorser_did":{"type":"string","maxLength":256,"title":"Endorser Did"},"target_did":{"type":"string","maxLength":256,"title":"Target Did"},"weight":{"type":"number","title":"Weight","default":1.0},"reason":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Reason"}},"type":"object","required":["endorser_did","target_did"],"title":"TestHarnessEndorseRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyVCRequest":{"properties":{"credential":{"additionalProperties":true,"type":"object","title":"Credential"}},"type":"object","required":["credential"],"title":"VerifyVCRequest"},"ViolationRecordRequest":{"properties":{"agent_did":{"type":"string","maxLength":128,"title":"Agent Did"},"principal_did":{"type":"string","maxLength":128,"title":"Principal Did"},"violation_type":{"type":"string","maxLength":64,"title":"Violation Type"},"interaction_proof_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Interaction Proof Id"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"adjudicator_reference":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Adjudicator Reference"},"confirmed_at":{"type":"string","maxLength":64,"title":"Confirmed At"}},"type":"object","required":["agent_did","principal_did","violation_type","confirmed_at"],"title":"ViolationRecordRequest"},"ViolationReversalRequest":{"properties":{"adjudicator_reference":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Adjudicator Reference"},"reversal_date":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Reversal Date"}},"type":"object","title":"ViolationReversalRequest"},"WalletBindRequest":{"properties":{"did":{"type":"string","maxLength":40,"title":"Did"},"wallet_address":{"type":"string","maxLength":64,"title":"Wallet Address"},"wallet_chain":{"type":"string","maxLength":20,"title":"Wallet Chain","default":"base"},"wallet_signature":{"type":"string","maxLength":512,"title":"Wallet Signature"},"nonce":{"type":"string","maxLength":64,"title":"Nonce"}},"type":"object","required":["did","wallet_address","wallet_signature","nonce"],"title":"WalletBindRequest"},"SendMessageRequest":{"type":"object","properties":{"tenant":{"type":"string"},"message":{"$ref":"#/components/schemas/Message"},"configuration":{"$ref":"#/components/schemas/SendMessageConfiguration"},"metadata":{"type":"object"}}},"Message":{"type":"object","properties":{"message_id":{"type":"string"},"context_id":{"type":"string"},"task_id":{"type":"string"},"role":{"type":"string","enum":["ROLE_UNSPECIFIED","ROLE_USER","ROLE_AGENT"]},"parts":{"type":"array","items":{"$ref":"#/components/schemas/Part"}},"metadata":{"type":"object"},"extensions":{"type":"array","items":{"type":"string"}},"reference_task_ids":{"type":"array","items":{"type":"string"}}}},"Part":{"allOf":[{"type":"object","properties":{"metadata":{"type":"object"},"filename":{"type":"string"},"media_type":{"type":"string"}}},{"oneOf":[{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]},{"type":"object","properties":{"raw":{"type":"string","format":"byte"}},"required":["raw"]},{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},{"type":"object","properties":{"data":{}},"required":["data"]}]}]},"SendMessageConfiguration":{"type":"object","properties":{"accepted_output_modes":{"type":"array","items":{"type":"string"}},"task_push_notification_config":{"$ref":"#/components/schemas/TaskPushNotificationConfig"},"history_length":{"type":"integer","format":"int32"},"return_immediately":{"type":"boolean"}}},"TaskPushNotificationConfig":{"type":"object","properties":{"tenant":{"type":"string"},"id":{"type":"string"},"task_id":{"type":"string"},"url":{"type":"string"},"token":{"type":"string"},"authentication":{"$ref":"#/components/schemas/AuthenticationInfo"}}},"AuthenticationInfo":{"type":"object","properties":{"scheme":{"type":"string"},"credentials":{"type":"string"}}},"GetTaskRequest":{"type":"object","properties":{"tenant":{"type":"string"},"id":{"type":"string"},"history_length":{"type":"integer","format":"int32"}}},"ListTasksRequest":{"type":"object","properties":{"tenant":{"type":"string"},"context_id":{"type":"string"},"status":{"type":"string","enum":["TASK_STATE_UNSPECIFIED","TASK_STATE_SUBMITTED","TASK_STATE_WORKING","TASK_STATE_COMPLETED","TASK_STATE_FAILED","TASK_STATE_CANCELED","TASK_STATE_INPUT_REQUIRED","TASK_STATE_REJECTED","TASK_STATE_AUTH_REQUIRED"]},"page_size":{"type":"integer","format":"int32"},"page_token":{"type":"string"},"history_length":{"type":"integer","format":"int32"},"status_timestamp_after":{"type":"string","format":"date-time"},"include_artifacts":{"type":"boolean"}}},"CancelTaskRequest":{"type":"object","properties":{"tenant":{"type":"string"},"id":{"type":"string"},"metadata":{"type":"object"}}},"GetTaskPushNotificationConfigRequest":{"type":"object","properties":{"tenant":{"type":"string"},"task_id":{"type":"string"},"id":{"type":"string"}}},"ListTaskPushNotificationConfigsRequest":{"type":"object","properties":{"tenant":{"type":"string"},"task_id":{"type":"string"},"page_size":{"type":"integer","format":"int32"},"page_token":{"type":"string"}}},"DeleteTaskPushNotificationConfigRequest":{"type":"object","properties":{"tenant":{"type":"string"},"task_id":{"type":"string"},"id":{"type":"string"}}},"SubscribeToTaskRequest":{"type":"object","properties":{"tenant":{"type":"string"},"id":{"type":"string"}}},"GetExtendedAgentCardRequest":{"type":"object","properties":{"tenant":{"type":"string"}}},"A2ARequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"null"}]},"method":{"type":"string","enum":["SendMessage","SendStreamingMessage","GetTask","ListTasks","CancelTask","CreateTaskPushNotificationConfig","GetTaskPushNotificationConfig","ListTaskPushNotificationConfigs","DeleteTaskPushNotificationConfig","SubscribeToTask","GetExtendedAgentCard"]},"params":{"oneOf":[{"$ref":"#/components/schemas/SendMessageRequest"},{"$ref":"#/components/schemas/GetTaskRequest"},{"$ref":"#/components/schemas/ListTasksRequest"},{"$ref":"#/components/schemas/CancelTaskRequest"},{"$ref":"#/components/schemas/TaskPushNotificationConfig"},{"$ref":"#/components/schemas/GetTaskPushNotificationConfigRequest"},{"$ref":"#/components/schemas/ListTaskPushNotificationConfigsRequest"},{"$ref":"#/components/schemas/DeleteTaskPushNotificationConfigRequest"},{"$ref":"#/components/schemas/SubscribeToTaskRequest"},{"$ref":"#/components/schemas/GetExtendedAgentCardRequest"}]}}}}}}