{"openapi":"3.1.0","info":{"title":"Agent Safety & Trust Check API","description":"Risk and trust verdicts for AI trading agents on Solana. Machine-first: every response carries schema_version, a stable verdict enum, reason codes, confidence and flags — built to be parsed by agents, not read by humans. Verdicts are conservative: when numbers cannot be reliably reconstructed the API says UNVERIFIABLE instead of guessing.","contact":{"name":"PnL Labs","url":"https://pnllabs.com/","email":"pnllabs@gmx.de"},"version":"0.3.0-agent"},"paths":{"/mcp":{"get":{"summary":"Mcp Get","operationId":"mcp_get_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]},"post":{"summary":"Mcp Post","operationId":"mcp_post_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/.well-known/x402":{"get":{"summary":"Well Known X402","description":"x402-Discovery-Dokument. Crawler (Bazaar & Co) fragen diesen Pfad alle\npaar Minuten ab (vorher 404, Log 31.07) — hier bekommen sie alle vier\nbezahlbaren Ressourcen als Templates + Service-Metadaten (Name, Icon).","operationId":"well_known_x402__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known X402  Well Known X402 Get"}}}}},"security":[]}},"/check/{kind}":{"get":{"summary":"Check Usage","description":"Endpoint ohne Adresse aufgerufen → ANLEITUNG statt 404.\n\nEin echter Interessent probierte am 30.07. viermal /check/wallet/ ohne\nAdresse und bekam jedes Mal nur \"not found\". Wer hier landet, sucht die\nBedienungsanleitung — also bekommt er sie.","operationId":"check_usage_check__kind__get","parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/check/{kind}/":{"get":{"summary":"Check Usage","description":"Endpoint ohne Adresse aufgerufen → ANLEITUNG statt 404.\n\nEin echter Interessent probierte am 30.07. viermal /check/wallet/ ohne\nAdresse und bekam jedes Mal nur \"not found\". Wer hier landet, sucht die\nBedienungsanleitung — also bekommt er sie.","operationId":"check_usage_check__kind___get","parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/check":{"get":{"summary":"Check Usage","description":"Endpoint ohne Adresse aufgerufen → ANLEITUNG statt 404.\n\nEin echter Interessent probierte am 30.07. viermal /check/wallet/ ohne\nAdresse und bekam jedes Mal nur \"not found\". Wer hier landet, sucht die\nBedienungsanleitung — also bekommt er sie.","operationId":"check_usage_check_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","default":"","title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/credits":{"get":{"summary":"Credits Info","description":"So funktioniert Guthaben — für Menschen wie für Agents lesbar.","operationId":"credits_info_credits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Credits Info Credits Get"}}}}},"security":[]}},"/credits/prepare":{"post":{"summary":"Credits Prepare","description":"Baut den unsignierten USDC-Transfer fürs Aufladen im Browser.\n\nDer Server schlägt nur vor — unterschrieben und gesendet wird in der\nWallet des Nutzers, der dort Betrag und Empfänger schwarz auf weiß sieht.","operationId":"credits_prepare_credits_prepare_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/credits/claim":{"post":{"summary":"Credits Claim","description":"Bestätigt eine Aufladung ON-CHAIN und schreibt sie gut.\n\nWir glauben keinem Client, der behauptet zu zahlen — es zählt nur, was in\nder Transaktion steht (Empfänger, Token, Betrag, Erfolg). Dieselbe\nSignatur kann nie zweimal gutgeschrieben werden.","operationId":"credits_claim_credits_claim_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/credits/balance":{"get":{"summary":"Credits Balance","operationId":"credits_balance_credits_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/pay/prepare":{"post":{"summary":"Pay Prepare","description":"Bereitet eine x402-Zahlung für eine Browser-Wallet (Phantom & Co) vor.\n\nDer Server baut nur den unsignierten Vorschlag — unterschrieben wird\nausschließlich in der Wallet des Nutzers, der dort auch genau sieht,\nwie viel an wen geht. Kein fremder Schlüssel berührt diesen Server.","operationId":"pay_prepare_pay_prepare_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/llms.txt":{"get":{"summary":"Llms Txt","description":"Selbstbeschreibung für LLM-Crawler (llmstxt.org-Format).\n\nExterne Systeme fragten diesen Pfad wiederholt ab und bekamen 404\n(Log 01.08.) — jede unbeantwortete Anfrage war eine verpasste Chance,\nvon einem Modell/Katalog korrekt verstanden zu werden.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}},"security":[]}},"/favicon.ico":{"get":{"summary":"Favicon","description":"Browser und Katalog-Crawler fragen das immer (14x/Tag laut COACH) —\nunser Logo statt 404.","operationId":"favicon_favicon_ico_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/robots.txt":{"get":{"summary":"Robots Txt","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}},"security":[]}},"/.well-known/glama.json":{"get":{"summary":"Glama Json","description":"Ownership-Nachweis für den Glama-MCP-Katalog (fragte 3× an → 404).","operationId":"glama_json__well_known_glama_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Glama Json  Well Known Glama Json Get"}}}}},"security":[]}},"/.well-known/agent.json":{"get":{"summary":"Agent Json","description":"Agent Card für Agent-zu-Agent-Discovery (wurde 4× angefragt).","operationId":"agent_json__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agent Json  Well Known Agent Json Get"}}}}},"security":[]}},"/":{"get":{"summary":"Root","description":"Maschinenlesbare Selbstbeschreibung — Agents entdecken hier die API.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Root  Get"}}}}},"security":[]}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}},"security":[]}},"/check/wallet/{address}":{"get":{"summary":"Check Wallet","operationId":"check_wallet_check_wallet__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/check/token/{mint}":{"get":{"summary":"Check Token","operationId":"check_token_check_token__mint__get","parameters":[{"name":"mint","in":"path","required":true,"schema":{"type":"string","title":"Mint"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/check/trade/{mint}":{"get":{"summary":"Check Trade","operationId":"check_trade_check_trade__mint__get","parameters":[{"name":"mint","in":"path","required":true,"schema":{"type":"string","title":"Mint"}},{"name":"size_sol","in":"query","required":false,"schema":{"type":"number","default":0.5,"title":"Size Sol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/check/funder/{address}":{"get":{"summary":"Check Funder","operationId":"check_funder_check_funder__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}}}