{"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_70c8ac63f2fcd55d","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":803,"evidence":{"homepage":{"reachable":true,"schema_org_present":true,"status_code":200},"openapi":{"body":{"info":{"contact":{"email":"agent.embassy@proton.me","name":"Agent Embassy","url":"https://aemb.pro"},"description":"Agents pay for work and prove what happened.","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 proof, not warranties; market data is not financial advice.","responses":{"200":{"description":"TERMS.md as text/markdown"}},"summary":"Terms of Service"}},"/v1/agent-id/issue":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). Issues an Agent ID: a signed identity attestation binding an agent's public key to a verified accountable principal, with operator details and an expiry. Issuance is refused when the principal cannot be verified.","requestBody":{"content":{"application/json":{"schema":{"properties":{"agent_key_scheme":{"description":"Key scheme: eip191 or ed25519 (default eip191)","type":"string"},"agent_pubkey":{"description":"The agent's public key (hex)","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"operator_contact":{"description":"Public contact for the operator","type":"string"},"operator_name":{"description":"Public name of the operator running the agent","type":"string"},"principal_attestation_method":{"description":"How the Embassy verified the principal","type":"string"},"principal_id":{"description":"ID of the accountable principal on file","type":"string"},"principal_kind":{"description":"Kind of principal, e.g. individual or organization","type":"string"},"principal_label":{"description":"Public label for the principal","type":"string"},"validity_days":{"description":"Days until the Agent ID expires","type":"number"}},"required":["agent_pubkey","operator_name","operator_contact","principal_id","principal_kind","principal_label","principal_attestation_method","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the new Agent ID in action proof"},"402":{"description":"x402 payment required ($0.25 USDC)"}},"summary":"Agents pay for work and prove what happened.","x-revocation-signature-spec":{"authorized_signers":["the accountable principal whose revocation key is on file for the credential (never disclosed; the caller must be that principal)","the Embassy operator key, for cause (address published at /.well-known/embassy-signer.json)"],"errors":{"missing":"revocation_signature is required","unauthorized":"unauthorized revocation","unknown_id":"unknown Agent ID"},"message":{"agent_id":"the Agent ID being retired, lowercase, exactly 64 hex characters","encoding":"UTF-8 bytes of the template string; no trailing newline, no domain separator, no nonce","template":"agent-id-revoke:<agent_id>"},"notes":["Revocation is idempotent and terminal; revoked IDs report revoked on every later check.","The receipt records authorized_by as 'principal' or 'embassy'.","Principal onboarding (including revocation-key registration) is manual/out-of-band in v0 \u2014 a principal with no attestation on file cannot authorize."],"renew_semantics":"the signature covers the OLD agent_id; renewal issues a new Agent ID (generation+1, supersedes=old commitment) and retires the old with reason 'superseded-by-renewal:<new_agent_id>'","schemes":[{"key":"secp256k1","name":"eip191","server_verifies":"ecrecover signer address, matched case-insensitively against the principal's on-file revocation address (0x, 20 bytes) or uncompressed secp256k1 pubkey (04 + 128 hex chars)","sign":"personal_sign (eth_sign) of the message STRING \u2014 the EIP-191 envelope (0x19457468657265756d205369676e6564204d6573736167653a0a + len + message) is REQUIRED; raw ECDSA over the bytes will NOT verify","signature_encoding":"0x-prefixed 65-byte hex, r || s || v (v = 27 or 28)"},{"key":"ed25519","name":"ed25519","server_verifies":"nacl.sign.detached.verify(message_bytes, signature, principal_revocation_pubkey_32_bytes)","sign":"nacl.sign.detached over the UTF-8 message bytes","signature_encoding":"64 bytes, hex, 0x prefix optional"}],"spec_version":"agent-id-revoke/1","validity_days":{"applies_to":"agentid_renew","default":365,"optional":true,"range":"1-730"}}}},"/v1/agent-id/renew":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). Renews an Agent ID: issues a fresh Agent ID with the same identity chain and a new expiry, and retires the old one. Requires the same principal-or-Embassy signature as retiring.","requestBody":{"content":{"application/json":{"schema":{"properties":{"agent_id":{"description":"The Agent ID string returned at issuance (64 hex characters)","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"revocation_signature":{"description":"Hex signature over agent-id-revoke:<agent_id>","type":"string"},"validity_days":{"description":"Days until the renewed Agent ID expires","type":"number"}},"required":["agent_id","revocation_signature"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the new Agent ID in action proof"},"402":{"description":"x402 payment required ($0.25 USDC)"}},"summary":"Agents pay for work and prove what happened."}},"/v1/agent-id/revoke":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). Retires an Agent ID instantly. Requires a signature from the accountable principal or the Embassy for cause.","requestBody":{"content":{"application/json":{"schema":{"properties":{"agent_id":{"description":"The Agent ID string returned at issuance (64 hex characters)","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"reason":{"description":"Why the Agent ID is being retired (max 500 characters)","type":"string"},"revocation_signature":{"description":"Hex signature over agent-id-revoke:<agent_id>","type":"string"}},"required":["agent_id","reason","revocation_signature"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt recording the retirement"},"402":{"description":"x402 payment required ($0.25 USDC)"}},"summary":"Agents pay for work and prove what happened.","x-revocation-signature-spec":{"authorized_signers":["the accountable principal whose revocation key is on file for the credential (never disclosed; the caller must be that principal)","the Embassy operator key, for cause (address published at /.well-known/embassy-signer.json)"],"errors":{"missing":"revocation_signature is required","unauthorized":"unauthorized revocation","unknown_id":"unknown Agent ID"},"message":{"agent_id":"the Agent ID being retired, lowercase, exactly 64 hex characters","encoding":"UTF-8 bytes of the template string; no trailing newline, no domain separator, no nonce","template":"agent-id-revoke:<agent_id>"},"notes":["Revocation is idempotent and terminal; revoked IDs report revoked on every later check.","The receipt records authorized_by as 'principal' or 'embassy'.","Principal onboarding (including revocation-key registration) is manual/out-of-band in v0 \u2014 a principal with no attestation on file cannot authorize."],"renew_semantics":"the signature covers the OLD agent_id; renewal issues a new Agent ID (generation+1, supersedes=old commitment) and retires the old with reason 'superseded-by-renewal:<new_agent_id>'","schemes":[{"key":"secp256k1","name":"eip191","server_verifies":"ecrecover signer address, matched case-insensitively against the principal's on-file revocation address (0x, 20 bytes) or uncompressed secp256k1 pubkey (04 + 128 hex chars)","sign":"personal_sign (eth_sign) of the message STRING \u2014 the EIP-191 envelope (0x19457468657265756d205369676e6564204d6573736167653a0a + len + message) is REQUIRED; raw ECDSA over the bytes will NOT verify","signature_encoding":"0x-prefixed 65-byte hex, r || s || v (v = 27 or 28)"},{"key":"ed25519","name":"ed25519","server_verifies":"nacl.sign.detached.verify(message_bytes, signature, principal_revocation_pubkey_32_bytes)","sign":"nacl.sign.detached over the UTF-8 message bytes","signature_encoding":"64 bytes, hex, 0x prefix optional"}],"spec_version":"agent-id-revoke/1","validity_days":{"applies_to":"agentid_renew","default":365,"optional":true,"range":"1-730"}}}},"/v1/agent-id/verify":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). Checks an Agent ID's current standing: valid, revoked, expired, or unknown. Identical response shape for every status; rate-limited per client IP.","requestBody":{"content":{"application/json":{"schema":{"properties":{"agent_id":{"description":"The Agent ID string returned at issuance (64 hex characters)","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"}},"required":["agent_id","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the validity verdict in action proof"},"402":{"description":"x402 payment required ($0.25 USDC)"},"429":{"description":"Rate limit exceeded"}},"summary":"Agents pay for work and prove what happened."}},"/v1/assurance/check":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). One per-query assurance verdict for a provider endpoint: ALLOW / ALLOW_WITH_RESTRICTIONS / ASK_HUMAN / REVERIFY / REROUTE / QUARANTINE, embedded in the signed Outcome Receipt. Proof of one unpaid probe set at the recorded time \u2014 not of ongoing truth.","requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"Action the buyer intends to take","type":"string"},"amount_usdc":{"description":"Amount the buyer intends to pay, decimal USDC","type":"string"},"context":{"description":"Optional free-form context","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"permissions_requested":{"description":"Permissions the action would grant","items":{"type":"string"},"type":"array"},"provider_endpoint":{"description":"HTTPS URL of the provider endpoint to check","type":"string"}},"required":["provider_endpoint","action","amount_usdc","permissions_requested","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the assurance verdict in action proof"},"402":{"description":"x402 payment required ($0.25 USDC)"}},"summary":"Agents pay for work and prove what happened."}},"/v1/check/prove":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). One HTTPS URL in; a signed Outcome Receipt with the trillion-dollar proof envelope out: precise claim, public timestamp anchor, masked internals.","requestBody":{"content":{"application/json":{"schema":{"properties":{"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"url":{"description":"HTTPS URL to fetch and prove (expects HTTP 200)","type":"string"}},"required":["url","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt"},"402":{"description":"x402 payment required"}},"summary":"Agents pay for work and prove what happened."}},"/v1/check/verify":{"post":{"description":"Agents pay for work and prove what happened.","requestBody":{"content":{"application/json":{"schema":{"properties":{"expect_body_contains":{"description":"Substring the body must contain","type":"string"},"expect_json_equals":{"description":"Expected value at the JSON path"},"expect_json_path":{"description":"Dot-path into a JSON body","type":"string"},"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":"Agents pay for work and prove what happened."}},"/v1/copy/correct":{"post":{"description":"Paid endpoint ($25.00 USDC on Base or Arbitrum One via x402). One correction pass over a draft: normalizes formatting, verifies every link is alive (fail-closed, redirects never followed), confirms each required term appears, and scans for black-box leaks \u2014 then returns the corrected copy with the full verification report inside a signed Outcome Receipt. You pay for the pass, never the method.","requestBody":{"content":{"application/json":{"schema":{"properties":{"draft":{"description":"The raw draft copy to correct (1-20000 chars)","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"links":{"description":"HTTPS URLs the copy references; each is verified alive (max 20)","items":{"type":"string"},"type":"array"},"register":{"description":"Voice register of the copy","enum":["founder-notes","elite","force","bright-soft-junior"],"type":"string"},"required_terms":{"description":"Terms that must appear in the final copy (max 20)","items":{"type":"string"},"type":"array"}},"required":["draft","register","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the corrected copy and verification report"},"402":{"description":"x402 payment required ($25.00 USDC)"}},"summary":"Agents pay for work and prove what happened."}},"/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 proof"},"402":{"description":"x402 payment required"}},"summary":"Agents pay for work and prove what happened."}},"/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 proof"},"402":{"description":"x402 payment required"}},"summary":"Agents pay for work and prove what happened."}},"/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":"Agents pay for work and prove what happened."}},"/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":"Agents pay for work and prove what happened."}},"/v1/research/paper":{"post":{"description":"Paid endpoint ($222.00 USDC paper / $444.00 USDC paper+provenance bundle, on Base or Arbitrum One via x402). One research paper delivered inside the signed Outcome Receipt, bound to the exact bytes delivered (SHA-256). The paper+provenance bundle adds the corpus proof pack: Merkle inclusion proof, salted claim digests, and the independently timestamped corpus checkpoint. Professional intelligence, not financial advice.","requestBody":{"content":{"application/json":{"schema":{"properties":{"bundle":{"description":"Delivery tier: 'paper' ($222) or 'paper+provenance' ($444). Defaults to 'paper'.","type":"string"},"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"paper_id":{"description":"Paper identifier, e.g. 'the-discontinuity-20260922'","type":"string"}},"required":["paper_id","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the paper in action proof"},"402":{"description":"x402 payment required ($222.00 USDC, or $444.00 USDC for the paper+provenance bundle)"}},"summary":"Agents pay for work and prove what happened."}},"/v1/trust/report":{"post":{"description":"Paid endpoint ($0.25 USDC on Base or Arbitrum One via x402). One automated trust evaluation of an HTTPS URL, embedded in the signed Outcome Receipt. Proof of one automated report run at the recorded time \u2014 not of ongoing truth.","requestBody":{"content":{"application/json":{"schema":{"properties":{"idempotency_key":{"description":"Client-generated idempotency key","type":"string"},"url":{"description":"HTTPS URL to evaluate","type":"string"}},"required":["url","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Signed Outcome Receipt with the trust report in action proof"},"402":{"description":"x402 payment required ($0.25 USDC)"}},"summary":"Agents pay for work and prove what happened."}},"/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://aemb.pro"}]},"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://aemb.pro/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":"Agents pay for work and prove what happened.","docs":"https://aemb.pro/.well-known/x402.json","facilitator":"Coinbase CDP","mode":"live","receipt_format":{"chain":["request","authorization","action","proof","liability_boundary"],"version":"embassy-receipt/2"},"resources":[{"asset":"USDC","description":"Use register_recovery when you want to escrow a client-encrypted recovery blob with the Embassy: it is stored opaquely (the Embassy cannot decrypt it), queued for human operator review within 24h, and you get a signed receipt proving the stored blob's hash. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$1.00","scheme":"exact"},"tool":"register_recovery","type":"mcp","url":"https://aemb.pro/v1/recovery/register"},{"asset":"USDC","description":"Use verified_check when you need a pass/fail verdict that a URL serves expected content: expected HTTP status (default 200), a required body substring, and/or an exact match on one JSON field. One automated fetch at request time, signed receipt with per-condition results. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.15","scheme":"exact"},"tool":"verified_check","type":"mcp","url":"https://aemb.pro/v1/check/verify"},{"asset":"USDC","description":"Use prove_it when you want signed cryptographic proof that a URL is live and serving expected content: one automated fetch at request time, sealed into a signed Outcome Receipt with the full check transcript. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"prove_it","type":"mcp","url":"https://aemb.pro/v1/check/prove"},{"asset":"USDC","description":"Use proveit_verified_check when you need a signed receipt that a compute-price check actually ran: one live GPU spot market snapshot (13 classes, cheapest rentable ask per class in USD/hour; one class when gpu is named), sealed into a signed Outcome Receipt. $0.25 per check. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"proveit_verified_check","type":"mcp","url":"https://aemb.pro/v1/check/proveit-verified"},{"asset":"USDC","description":"Use trust_report when you need a buy/don't-buy decision on a candidate x402 endpoint: the Embassy probes it unpaid (no payment header, zero spend) and returns a signed PROCEED, VERIFY_FIRST, or DO_NOT_PAY verdict \u2014 a decision, never a score. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"trust_report","type":"mcp","url":"https://aemb.pro/v1/trust/report"},{"asset":"USDC","description":"Use preflight_check before your agent spends on a paid tool or endpoint: the Embassy answers WHO is paid, WHAT is delivered, what CHANGED, the full COST, and WHO TAKES A CUT \u2014 then returns a signed PROCEED, PROCEED_WITH_CAUTION, BLOCKED, or UNKNOWN verdict with the full proof envelope. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"preflight_check","type":"mcp","url":"https://aemb.pro/v1/preflight/check"},{"asset":"USDC","description":"Use compute_history when you need GPU compute market history: a bounded time series of per-GPU cheapest/median/offer counts \u2014 or whole-market history when no GPU is named \u2014 sealed into your signed receipt. Prices are ephemeral asks, never delivered-cost guarantees. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"compute_history","type":"mcp","url":"https://aemb.pro/v1/markets/compute/history"},{"asset":"USDC","description":"Use compute_alerts when you want to know when GPU spot prices made a significant move: returns the current price-move alert list, sealed into your signed receipt. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"compute_alerts","type":"mcp","url":"https://aemb.pro/v1/markets/compute/alerts"},{"asset":"USDC","description":"Use research_paper when you want to buy a research paper: $222 for the paper, or $444 for paper+provenance (the paper plus the corpus proof pack). Licensed to your wallet \u2014 the purchased bytes are delivered privately with a signed receipt. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$222.00","scheme":"exact"},"tool":"research_paper","type":"mcp","url":"https://aemb.pro/v1/research/paper"},{"asset":"USDC","description":"Use assurance_check when you need a go/no-go verdict BEFORE an agent acts on a provider: the Embassy probes the provider unpaid (no payment header, zero spend) and returns a signed ALLOW, ALLOW_WITH_RESTRICTIONS, ASK_HUMAN, REVERIFY, REROUTE, or QUARANTINE decision. UNVERIFIED is the honest default for unknowns \u2014 never a smear, never a badge. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"assurance_check","type":"mcp","url":"https://aemb.pro/v1/assurance/check"},{"asset":"USDC","description":"Use agentid_issue when you want to issue an Agent ID: a signed identity attestation binding an agent's public key to a verified accountable principal, with operator details and an expiry. Issuance is refused when the principal cannot be verified \u2014 that refusal is what makes the ID worth anything. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"agentid_issue","type":"mcp","url":"https://aemb.pro/v1/agent-id/issue"},{"asset":"USDC","description":"Use agentid_verify when you want to check an Agent ID's current standing: valid, revoked, expired, or unknown. Every status returns the identical response shape \u2014 the Agent ID, expiry, the full identity chain, an inclusion record, and the signed attestation envelope. Unknown IDs report unknown; never an error. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"agentid_verify","type":"mcp","url":"https://aemb.pro/v1/agent-id/verify"},{"asset":"USDC","description":"Use agentid_revoke to retire an Agent ID instantly. revocation_signature: hex signature over the message agent-id-revoke:<agent_id> (64-char lowercase ID). EIP-191: personal_sign the message string (envelope required; raw ECDSA fails), 0x 65-byte hex, matched to the principal's revocation key. ed25519: nacl.sign.detached, 64-byte hex. Signer: principal or Embassy-for-cause. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"agentid_revoke","type":"mcp","url":"https://aemb.pro/v1/agent-id/revoke"},{"asset":"USDC","description":"Use agentid_renew to renew an Agent ID: a fresh Agent ID, same identity chain, new expiry; old one retired. revocation_signature over agent-id-revoke:<OLD_agent_id> (64-char lowercase ID) \u2014 same contract as retiring: EIP-191 personal_sign (envelope required; raw ECDSA fails), 0x 65-byte hex; or ed25519 nacl.sign.detached, 64-byte hex. Signer: principal or Embassy-for-cause. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"agentid_renew","type":"mcp","url":"https://aemb.pro/v1/agent-id/renew"},{"asset":"USDC","description":"Use correct_copy when you want a $25 correction pass over draft copy: normalizes formatting, verifies every link is alive, confirms your required terms appear, and scans for black-box leaks \u2014 then returns the corrected copy with a verification report and a signed receipt. You pay for the pass, never the method. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$25.00","scheme":"exact"},"tool":"correct_copy","type":"mcp","url":"https://aemb.pro/v1/copy/correct"},{"asset":"USDC","description":"Support the Embassy. An open-amount patronage gift in USDC: you choose any amount from $0.01 to $222.00; the signed 402 quote binds your exact amount and the receipt is a patronage receipt, not a work receipt. POST the tool inputs as JSON to paid_url with an x402 v2 PAYMENT-SIGNATURE header. See https://docs.cdp.coinbase.com/x402","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"open_amount":{"cap":"$222.00","floor":"$0.01"},"price":"variable","scheme":"exact"},"quarantine":true,"tool":"give","type":"mcp","url":"https://aemb.pro/v1/give"},{"asset":"USDC","description":"Lightning Cert \u2014 proof your document existed, settled in seconds. $0.25.","facilitator":"Coinbase CDP","networks":["eip155:8453","eip155:42161"],"pricing":{"price":"$0.25","scheme":"exact"},"tool":"cert","type":"mcp","url":"https://aemb.pro/v1/cert"},{"asset":"USDC","description":"Compute market snapshot \u2014 live spot prices: cheapest rentable ask per class in USD/hour. $0.25 per query via x402 USDC on Base or Arbitrum One. 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://aemb.pro/v1/markets/compute/spot"}],"service":"agent-embassy","verify_receipt":"https://aemb.pro/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":"9c0f80bb2bf4e27b24380e2d73ca8b45332a682dc6b46636dfe897a64e6dd7d7","canonicalization":"json-sort-keys-no-integrity-v1","key_id":"ed25519:67e5239d2bfa367d","public_key":"t3nUNaV3/SIMUb0XIBCazNFdToM3hHEQHReQ71v40wU=","signature":"ZzMW6K/sdN2i7HmA+SnjnFpdi1znGRw0L00fzLrbAQhZhGNmL+UUupKLWm24KKSeFGy+/OcINQXzNwR6JzpaAA==","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_70c8ac63f2fcd55d&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_70c8ac63f2fcd55d","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_70c8ac63f2fcd55d","report_url":"https://ontarioprotocol.com/verify/report/vrf_70c8ac63f2fcd55d","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-28T19:00:07.842999+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"}]}
