{"base_readiness_score":60,"commercial_next_step":{"billing_boundary":"No contact form, scope call, invoice, subscription, wallet signature, or payment is created by this handoff. Free routing never authorizes spending.","charged_now":false,"free_first":{"body_template":{"free_preflight_complete":false,"task":"<your public task>","wallet_enabled":false},"charged_now":false,"id":"ontario_purchase_router","label":"Match your task to a free or paid capability","method":"POST","url":"https://ontarioprotocol.com/api/agent/tool-quote"},"human_required":false,"next_steps":["Use the existing report evidence and remediation first; report access is free.","If another capability is needed, supply an explicit public task to the free router.","Do not pay solely because a report is ready, incomplete, or failed.","Only consider payment after free validation, task fit, an explicit budget and local wallet policy allow it."],"payment_recommended_now":false,"qualified_offers":[],"recommended_offer":null,"report_url":"https://ontarioprotocol.com/api/verify/reports/vrf_f086f1e73924801f","required_inputs":["task"],"schema":"ontario.report_commercial_next_step.v1","status":"task_required_no_paid_recommendation","trust_boundary":"This commercial handoff is not part of the signed readiness evidence. It does not guarantee safety, traffic, ranking, listing acceptance, revenue, or future endpoint behavior."},"duration_ms":1443,"evidence":{"homepage":{"reachable":true,"schema_org_present":true,"status_code":200},"openapi":{"body":{"info":{"description":"Agent Embassy lets AI agents pay for work and prove what happened. verified_check ($0.15): fetch a URL, check it against conditions, get a signed Outcome Receipt with the full transcript. register_recovery ($1.00): store a client-encrypted recovery blob, queued for human review. Paid in USDC on Base or Arbitrum One via x402 v2.","title":"Agent Embassy","version":"1.0.0"},"openapi":"3.0.3","paths":{"/.well-known/embassy-signer.json":{"get":{"responses":{"200":{"description":"Signer info"}},"summary":"Receipt signer public key and verification instructions"}},"/.well-known/mcp.json":{"get":{"responses":{"200":{"description":"MCP discovery document"}},"summary":"MCP machine-readable discovery document"}},"/.well-known/oasf.json":{"get":{"responses":{"200":{"description":"OASF record"}},"summary":"AGNTCY OASF agent descriptor record"}},"/.well-known/x402.json":{"get":{"responses":{"200":{"description":"Discovery document"}},"summary":"x402 machine-readable discovery document"}},"/terms":{"get":{"description":"Public Terms of Service (text/markdown). Using any Embassy endpoint constitutes acceptance. Fees non-refundable once the action runs; maximum liability per receipt is the amount paid; receipts are evidence, not warranties; market data is not financial advice.","responses":{"200":{"description":"TERMS.md as text/markdown"}},"summary":"Terms of Service"}},"/v1/check/verify":{"post":{"description":"Paid endpoint ($0.15 USDC on Base or Arbitrum One via x402). Fetches your HTTPS URL once, server-side, evaluates status/body/JSON-path conditions, returns a signed Outcome Receipt with the full transcript.","requestBody":{"content":{"application/json":{"schema":{"properties":{"expect_body_contains":{"description":"Substring the body must contain","type":"string"},"expect_json_path":{"description":"Dot-path into a JSON body","type":"string"},"expect_json_value":{"description":"Expected value at the JSON path"},"expect_status":{"description":"Expected HTTP status","type":"number"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"url":{"description":"HTTPS URL to fetch and check","type":"string"}},"required":["url","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt"},"402":{"description":"x402 payment required"}},"summary":"Verified check \u2014 fetch a URL and check it against conditions"}},"/v1/markets/compute/alerts":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). Recent large per-class price moves, most recent first. Bounded (limit 1-50, default 25), timestamped, embedded in the signed Outcome Receipt. Fully automated. Upstream sources are internal and never named. Prices are ephemeral asks, not delivered-cost guarantees.","requestBody":{"content":{"application/json":{"schema":{"properties":{"gpu":{"description":"Class, e.g. 'H100 SXM'. Omit for all classes.","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"limit":{"description":"Max alerts returned, 1-50 (default 25, most recent first)","type":"number"}},"required":["idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the alert list in action evidence"},"402":{"description":"x402 payment required"}},"summary":"Compute price alerts \u2014 paid ($0.25)"}},"/v1/markets/compute/history":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). Time series of compute market prices: per-class cheapest/median/offer-count series, or whole-market history when gpu is omitted. Bounded (limit 1-200, default 50), timestamped, embedded in the signed Outcome Receipt. Fully automated. Prices are ephemeral asks, not delivered-cost guarantees.","requestBody":{"content":{"application/json":{"schema":{"properties":{"gpu":{"description":"Class, e.g. 'H100 SXM'. Omit for whole-market history.","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"limit":{"description":"Max snapshots returned, 1-200 (default 50)","type":"number"}},"required":["idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the history series in action evidence"},"402":{"description":"x402 payment required"}},"summary":"Compute market history \u2014 paid time series ($0.25)"}},"/v1/markets/compute/spot":{"get":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402, GET). Compute market snapshot: cheapest rentable ask per class in USD/hour, observed live. With a gpu query param, returns the cheapest rentable offers for that class; without it, a cheapest-per-class market snapshot. Responses carry prices only \u2014 upstream sources are internal and never named. All prices are ephemeral asks, not delivered-cost guarantees.","parameters":[{"description":"Class, e.g. 'H100 SXM', 'RTX 4090'. Omit for whole-market snapshot.","in":"query","name":"gpu","required":false,"schema":{"type":"string"}},{"description":"Pricing mode (default ondemand)","in":"query","name":"type","required":false,"schema":{"enum":["ondemand","bid","reserved"],"type":"string"}},{"description":"'true' = identity-checked hosts only","in":"query","name":"verified","required":false,"schema":{"type":"string"}},{"description":"Minimum unit count per offer","in":"query","name":"min_gpus","required":false,"schema":{"type":"number"}},{"description":"Minimum host reliability 0..1","in":"query","name":"min_reliability","required":false,"schema":{"type":"number"}},{"description":"Max offers returned for a single-class query (default 5, max 25)","in":"query","name":"max_results","required":false,"schema":{"type":"number"}}],"responses":{"200":{"description":"Paid market snapshot (prices only, no provenance)"},"402":{"description":"x402 payment required ($0.25 USDC)"},"502":{"description":"Market source unavailable"}},"summary":"Compute spot market \u2014 paid snapshot ($0.25)"}},"/v1/receipts/{receiptId}":{"get":{"parameters":[{"in":"path","name":"receiptId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Public receipt view"},"404":{"description":"Unknown receipt"}},"summary":"Look up a receipt by ID"}},"/v1/recovery/register":{"post":{"description":"Paid endpoint ($1.00 USDC on Base or Arbitrum One via x402). Stores a client-encrypted recovery blob with quorum rules, queued for human review within 24h.","requestBody":{"content":{"application/json":{"schema":{"properties":{"contact_handle":{"type":"string"},"contact_name":{"type":"string"},"idempotency_key":{"type":"string"},"quorum_rules":{"type":"string"},"recovery_blob":{"description":"Client-encrypted blob, ENC:v1:...","type":"string"}},"required":["contact_name","contact_handle","quorum_rules","recovery_blob","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt"},"402":{"description":"x402 payment required"}},"summary":"Register recovery \u2014 store an encrypted recovery blob"}},"/verify/{receiptId}":{"get":{"description":"Renders any Outcome Receipt as a human-readable page: verdict, check transcript, settlement, and signature. Sellers link their \u201cVerified by Embassy\u201d badge here.","parameters":[{"in":"path","name":"receiptId","required":true,"schema":{"pattern":"^emb_[0-9a-f]{24}$","type":"string"}}],"responses":{"200":{"description":"Verification page (HTML)"},"400":{"description":"Invalid receipt ID format"},"404":{"description":"Unknown receipt"}},"summary":"Human-checkable verification page for a receipt"}}},"servers":[{"url":"https://agent-embassy.fly.dev"}]},"reachable":true,"url":"https://agent-embassy.fly.dev/openapi.json","valid_json":true,"version":"3.0.3","well_formed":true},"robots":{"excerpt":"User-agent: *\nAllow: /\nSitemap: https://agent-embassy.fly.dev/sitemap.xml\n","reachable":true,"status_code":200},"target":{"method":"GET","payment_challenge":false,"payment_headers":{},"reachable":true,"status_code":405},"x402_manifest":{"bazaar_metadata":false,"body":{"description":"The Agent Embassy \u2014 infrastructure for AI agents that pay for work and prove what happened. Live: verified_check ($0.15 \u2014 fetch a URL, check it against your conditions, get a signed Outcome Receipt), register_recovery ($1.00 \u2014 store a client-encrypted recovery blob, queue human review within 24h), and the compute market suite ($0.25 each \u2014 live snapshot, price history, price alerts). All market data is paid; upstream sources are internal. Receipts honestly label each stage; verified_check receipts carry machine-checkable evidence so anyone can re-verify.","docs":"https://agent-embassy.fly.dev/.well-known/x402.json","facilitator":"Coinbase CDP","mode":"live","receipt_format":{"chain":["request","authorization","action","proof","liability_boundary"],"version":"embassy-receipt/1"},"resources":[{"asset":"USDC","description":"Register a dead-man's recovery configuration for your AI agent: the Embassy stores your client-encrypted recovery blob and quorum rules and queues them for human review within 24h. v1 scope is storage + review only \u2014 no quorum tooling, triggers, or automated recovery exist yet. One-time $1.00 registration per agent wallet, paid in USDC via x402. Acceptance test: the stored blob's hash matches the hash in your receipt.","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$1.00","scheme":"exact"},"tool":"register_recovery","type":"mcp","url":"https://agent-embassy.fly.dev/v1/recovery/register"},{"asset":"USDC","description":"Verify a web claim and get a signed, re-checkable Outcome Receipt \u2014 machine-verifiable proof of delivery for agent commerce. The Embassy fetches your HTTPS URL once, server-side, and checks it against your conditions: HTTP status, a body substring, or a JSON field value. The receipt records the check transcript and verdict so anyone can re-verify. $0.15 per check via x402. Fully automated, no human review.","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.15","scheme":"exact"},"tool":"verified_check","type":"mcp","url":"https://agent-embassy.fly.dev/v1/check/verify"},{"asset":"USDC","description":"Compute market history: paid time series of compute market prices. Per-class cheapest/median/offer-count series or whole-market history, bounded and timestamped, embedded in your signed receipt. $0.25 per query via x402. Fully automated. Upstream sources are internal and never named. Asks are ephemeral \u2014 re-observe before any decision.","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"compute_history","type":"mcp","url":"https://agent-embassy.fly.dev/v1/markets/compute/history"},{"asset":"USDC","description":"Compute price alerts: recent large per-class price moves, most recent first. Bounded (limit 1-50, default 25), timestamped, embedded in your signed receipt. $0.25 per query via x402. Fully automated. Upstream sources are internal and never named. Asks are ephemeral \u2014 re-observe before any decision.","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"compute_alerts","type":"mcp","url":"https://agent-embassy.fly.dev/v1/markets/compute/alerts"},{"asset":"USDC","description":"Compute market snapshot \u2014 live spot prices: cheapest rentable ask per class (H100 SXM, RTX 4090, B200, A100) in USD/hour, observed live with full provenance and timestamp. $0.25 per query via x402 USDC on Base or Arbitrum One. Fully automated; upstream sources are internal and never named. Asks are ephemeral \u2014 re-observe before any decision.","facilitator":"Coinbase CDP","method":"GET","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"compute_spot_prices","type":"http","url":"https://agent-embassy.fly.dev/v1/markets/compute/spot"}],"service":"agent-embassy","verify_receipt":"https://agent-embassy.fly.dev/v1/receipts/:receiptId","version":"1.0.0"},"reachable":true,"service_count":0,"status_code":200,"valid_json":true,"well_formed":false}},"grade":"needs_work","integrity":{"algorithm":"Ed25519","canonical_sha256":"0cf18225cb91e59e5fd1e14b7dbb4062cf36de5688d783181f1c357f1d0b300d","canonicalization":"json-sort-keys-no-integrity-v1","key_id":"ed25519:67e5239d2bfa367d","public_key":"t3nUNaV3/SIMUb0XIBCazNFdToM3hHEQHReQ71v40wU=","signature":"xyuxs3H0UCsz93SpsVrnVQxubKAL2vIl47+zvizSvLtW2A5DMD/uAyha9B9PQGX6WxHzQ38j5GiqkzHdhJhTCg==","signed_by":"ontario-protocol"},"max_score":100,"normalized_base":"https://agent-embassy.fly.dev","provider_listing_next_step":{"endpoint":"https://agent-embassy.fly.dev/mcp","free_validation":{"charged_now":false,"method":"POST","stores_listing":false,"url":"https://ontarioprotocol.com/api/x402/list-service/validate"},"grade":"needs_work","publication":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","listing_page":"https://ontarioprotocol.com/listings?report_id=vrf_f086f1e73924801f&endpoint=https%3A%2F%2Fagent-embassy.fly.dev%2Fmcp#submit-service","method":"POST","network":"eip155:8453","price_usdc":"0.50","url":"https://ontarioprotocol.com/api/x402/list-service","value":"One canonical provider profile, machine-readable JSON twin, badge, live readiness evidence, 30 days of included automatic freshness maintenance, and conditional fresh ready-grade eligibility in strict discovery and Ontario's task-to-tool buyer search."},"ready_for_listing_preflight":false,"recommended_action":{"id":"remediate_before_publication","label":"Fix readiness warnings and re-run the free verifier","payment_recommended_now":false,"reason":"This report is not ready-grade. Do not buy publication expecting it to override readiness or strict-discovery eligibility.","url":"https://ontarioprotocol.com/verify"},"report_id":"vrf_f086f1e73924801f","schema":"ontario.provider_listing_next_step.v1","sequence":["Fix readiness warnings until a fresh report is ready-grade.","Validate the complete provider listing payload without payment.","Probe the publication endpoint and inspect its HTTP 402 challenge.","Pay only if the fixed 0.50 USDC price, Base network, USDC asset, and publication purpose match policy."],"signed_evidence_boundary":"This commercial handoff is added after report signing and is not part of the signed readiness evidence.","status":"fix_before_listing","trust_boundary":"Publication processing does not buy a readiness grade, ranking, traffic, leads, purchases, safety, listing acceptance, or future availability."},"readiness_score":52,"recommendations":[{"detail":"The manifest should be JSON and include a services array with endpoint, method, price, network, and asset metadata.","docs_url":"https://ontarioprotocol.com/.well-known/x402.json","id":"x402_malformed","title":"Fix the x402 manifest shape"},{"detail":"A paid endpoint should reply with HTTP 402 and a payment requirements header when called without payment.","docs_url":"https://ontarioprotocol.com/docs","id":"payment_challenge_missing","title":"Expose a real HTTP 402 payment challenge"},{"detail":"Name, description, category, tags, owner URL, and contact fields make services usable in agent marketplaces.","docs_url":"https://ontarioprotocol.com/listings","id":"bazaar_metadata_missing","title":"Add listing metadata for Bazaar-style catalogs"}],"report_id":"vrf_f086f1e73924801f","report_url":"https://ontarioprotocol.com/verify/report/vrf_f086f1e73924801f","signals":{"accepts_entries":true,"bazaar_metadata":false,"endpoint_reachable":true,"facilitator_metadata":false,"homepage_reachable":true,"https":true,"manifest_fresh":false,"network_consistent":true,"openapi_schema":true,"payment_challenge":false,"price_format_valid":true,"robots_present":true,"schema_org_present":true,"x402_manifest_present":true,"x402_manifest_well_formed":false},"status":"ok","submitted_url":"https://agent-embassy.fly.dev/mcp","target_url":"https://agent-embassy.fly.dev/mcp","verified_at":"2026-09-21T18:41:03.149302+00:00","verifier":"ontario.x402-readiness.v1","warning_penalty":8,"warnings":[{"detail":"Expose facilitator details plus asset, payTo, scheme, timeout, and resource fields so clients can verify and settle payments deterministically.","docs_url":"https://ontarioprotocol.com/docs#facilitator","evidence":{"issues":["manifest.facilitator or service.facilitator is missing"]},"id":"facilitator_metadata_gap","severity":"warning","title":"Publish facilitator and settlement metadata"},{"detail":"A stale or missing manifest timestamp makes agents doubt whether prices, networks, and facilitator metadata still describe the live endpoint.","docs_url":"https://ontarioprotocol.com/.well-known/x402.json","evidence":{"issue":"manifest has no generated_at, updated_at, last_updated, or dateModified timestamp"},"id":"manifest_stale","severity":"warning","title":"Refresh the x402 manifest timestamp"}]}
