{"base_readiness_score":93,"commercial_next_step":{"billing_boundary":"Scope and deliverables are confirmed before any invoice; no wallet payload, subscription, SLA, or deployment is created by this handoff.","charged_now":false,"free_first":{"charged_now":false,"id":"free_scope","label":"Request a free scope decision","url":"https://ontarioprotocol.com/pricing?offer=free_scope&report_id=vrf_a52fc833ec4c27bd#scope"},"human_required":true,"qualified_offers":[{"billing":"outcome_based_invoice_after_public_evidence","id":"catalog_publish","name":"Founding Agent Catalog Publish Pilot","price_interval":null,"price_usd":49,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=catalog_publish&report_id=vrf_a52fc833ec4c27bd#scope","status":"first_10_qualified_providers"},{"billing":"one_time_invoice_after_scope","id":"launch_review","name":"MCP + x402 Agent Catalog Launch Pack","price_interval":null,"price_usd":199,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=launch_review&report_id=vrf_a52fc833ec4c27bd#scope","status":"qualified_fixed_scope"},{"billing":"one_time_invoice_after_scope","id":"buyer_intent_rewrite","name":"x402 Buyer Intent Metadata Rewrite","price_interval":null,"price_usd":49,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=buyer_intent_rewrite&report_id=vrf_a52fc833ec4c27bd#scope","status":"qualified_fixed_scope"},{"billing":"one_time_invoice_after_scope","id":"firewall_implementation","name":"Payment Firewall Implementation","price_interval":null,"price_usd":499,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=firewall_implementation&report_id=vrf_a52fc833ec4c27bd#scope","status":"qualified_fixed_scope"},{"billing":"pilot_invoice_after_qualification","id":"readiness_watch","name":"Readiness Watch pilot","price_interval":"month","price_usd":99,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=readiness_watch&report_id=vrf_a52fc833ec4c27bd#scope","status":"pilot_interest"}],"recommended_offer":{"billing":"one_time_invoice_after_scope","id":"launch_review","name":"MCP + x402 Agent Catalog Launch Pack","price_interval":null,"price_usd":199,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=launch_review&report_id=vrf_a52fc833ec4c27bd#scope","status":"qualified_fixed_scope"},"required_inputs":["contact_email","endpoint","requested_offer"],"schema":"ontario.report_commercial_next_step.v1","status":"scope_first","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":953,"evidence":{"homepage":{"reachable":true,"schema_org_present":false,"status_code":200},"openapi":{"body":{"components":{"securitySchemes":{"x402Payment":{"description":"x402 v2 payment payload matching the PAYMENT-REQUIRED challenge","in":"header","name":"PAYMENT-SIGNATURE","type":"apiKey"}}},"info":{"description":"Deterministic static inspection of an inline x402 manifest. A clean report is not a security certification.","title":"R2 x402 Manifest Audit API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/check":{"post":{"description":"x402 v2 payment of 2.00 canonical Base USDC per successful report. Invalid input returns non-2xx and is not settled by the middleware.","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"manifest":{"additionalProperties":true,"type":"object"}},"required":["manifest"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Static audit report"},"400":{"description":"Invalid JSON or input shape"},"402":{"description":"Payment required; decode the PAYMENT-REQUIRED response header"},"413":{"description":"Request exceeds 256 KiB"},"503":{"description":"Payment service unavailable; checker is not invoked"}},"security":[{"x402Payment":[]}],"summary":"Audit an inline x402 manifest"}}},"servers":[{"url":"https://r2-x402-manifest-audit.dragonfly27.workers.dev"}],"x-boundaries":["Inline JSON only; input URLs are never fetched","Static checks do not prove runtime enforcement, settlement, replay safety, facilitator trust, or security"]},"reachable":true,"url":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/.well-known/openapi.json","valid_json":true,"version":"3.1.0","well_formed":true},"robots":{"excerpt":"# As a condition of accessing this website, you agree to abide by the following\n# content signals:\n\n# (a)  If a content-signal = yes, you may collect content for the corresponding\n#      use.\n# (b)  If a content-signal = no, you may not collect content for the\n#      corresponding use.\n# (c)  If the website operator does not include a content signal for a\n#      corresponding use, the website operator neither grants nor restricts\n#      permission via content signal with respect to the corresponding use.\n\n# The content signals and their meanings are:\n\n# search:   building a search index and providing search results (e.g., returning\n#           hyperlinks and short excerpts from your website's contents). Search does not\n#           include providing AI-generated search summaries.\n# ai-input: inputting content into one or more AI models (e.g., retrieval\n#           augmented generation, grounding, or other real-time taking of content for\n#           generative AI search answers).\n# ai-tr","reachable":true,"status_code":200},"target":{"challenge":{"accepts":[{"amount":"2000000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra_keys":["name","version"],"maxTimeoutSeconds":60,"network":"eip155:8453","payTo":"0x605519164197f8464503950196BdB9a932c90Cdb","scheme":"exact"}],"accepts_count":1,"accepts_missing_required_fields":[],"body_accepts_count":0,"body_accepts_missing":true,"body_valid_json":true,"header_accepts_count":1,"missing_accepts":false,"resource":{"description":"Deterministic static x402 manifest audit (inline JSON only)","mimeType":"application/json","url":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/v1/check"},"resource_missing_required_fields":[],"source":"payment-required-header","x402Version":2},"method":"POST","payment_challenge":true,"payment_headers":{"payment-required":"eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly9yMi14NDAyLW1hbmlmZXN0LWF1ZGl0LmRyYWdvbmZseTI3LndvcmtlcnMuZGV2L3YxL2NoZWNrIiwiZGVzY3JpcHRpb24iOiJEZXRlcm1pbmlzdGljIHN0YXRpYyB4NDAyIG1hbmlmZXN0IGF1ZGl0IChpbmxpbmUgSlNPTiBvbmx5KSIsIm1pbWVUeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LCJhY2NlcHRzIjpbeyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjIwMDAwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHg2MDU1MTkxNjQxOTdmODQ2NDUwMzk1MDE5NkJkQjlhOTMyYzkwQ2RiIiwibWF4VGltZW91dFNlY29uZHMiOjYwLCJleHRyYSI6eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiJ9fV19"},"reachable":true,"status_code":402},"x402_manifest":{"bazaar_metadata":false,"body":{"category":"tools","description":"Paid deterministic static analysis of an inline x402 manifest.","facilitator":"https://facilitator.xpay.sh","generated_at":"2026-08-07T05:46:50.891Z","limitations":["Static JSON inspection only","No runtime enforcement or settlement testing","Not a security certification"],"name":"R2 x402 Manifest Audit API","openapi":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/.well-known/openapi.json","operatorDisclosure":"Operated by an authorized AI agent for R2 Advisory.","owner_url":"https://github.com/ruizmr/x402-api-readiness-review","resources":[{"accepts":[{"amount":"2000000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","maxTimeoutSeconds":60,"network":"eip155:8453","payTo":"0x605519164197f8464503950196BdB9a932c90Cdb","scheme":"exact"}],"method":"POST","mimeType":"application/json","resource":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/v1/check"}],"services":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Structured static binding findings for supplied inline JSON; no URL fetching.","endpoint":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/v1/check","facilitator":"https://facilitator.xpay.sh","maxTimeoutSeconds":60,"method":"POST","name":"Static x402 manifest audit","network":"eip155:8453","payTo":"0x605519164197f8464503950196BdB9a932c90Cdb","price":"2.00","scheme":"exact"}],"source":"https://github.com/ruizmr/x402-api-readiness-review","tags":["x402","manifest","verification","static-analysis"],"version":1},"reachable":true,"service_count":1,"status_code":200,"valid_json":true,"well_formed":true}},"grade":"close","integrity":{"algorithm":"Ed25519","canonical_sha256":"6b6a82f1b83b7463bd53c3ddc4bba9fe3d5f837047c526038507607d5f29c11b","canonicalization":"json-sort-keys-no-integrity-v1","key_id":"ed25519:67e5239d2bfa367d","public_key":"t3nUNaV3/SIMUb0XIBCazNFdToM3hHEQHReQ71v40wU=","signature":"5OPZ1a1sCqsGBsD1Y+f0+3TvbgbgSJ5qqvVtIIaiPS7H4s7NZfqJcxvcYjwxGwcGK4zevKSOQwSv6o2h4FiRBg==","signed_by":"ontario-protocol"},"max_score":100,"normalized_base":"https://r2-x402-manifest-audit.dragonfly27.workers.dev","provider_listing_next_step":{"endpoint":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/v1/check","free_validation":{"charged_now":false,"method":"POST","stores_listing":false,"url":"https://ontarioprotocol.com/api/x402/list-service/validate"},"grade":"close","publication":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","listing_page":"https://ontarioprotocol.com/listings?report_id=vrf_a52fc833ec4c27bd&endpoint=https%3A%2F%2Fr2-x402-manifest-audit.dragonfly27.workers.dev%2Fv1%2Fcheck#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_a52fc833ec4c27bd","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":78,"recommendations":[{"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_a52fc833ec4c27bd","report_url":"https://ontarioprotocol.com/verify/report/vrf_a52fc833ec4c27bd","signals":{"accepts_entries":true,"bazaar_metadata":false,"endpoint_reachable":true,"facilitator_metadata":false,"homepage_reachable":true,"https":true,"manifest_fresh":true,"network_consistent":true,"openapi_schema":true,"payment_challenge":true,"price_format_valid":false,"robots_present":true,"schema_org_present":false,"x402_manifest_present":true,"x402_manifest_well_formed":true},"status":"ok","submitted_url":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/v1/check","target_url":"https://r2-x402-manifest-audit.dragonfly27.workers.dev/v1/check","verified_at":"2026-08-07T05:46:51.696852+00:00","verifier":"ontario.x402-readiness.v1","warning_penalty":15,"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":"Declare price_atomic as a non-negative integer and price_usdc as a decimal string; keep maxAmountRequired consistent with the advertised service price.","docs_url":"https://ontarioprotocol.com/listings","evidence":{"issues":["service.price_atomic must be a non-negative integer","service.price_usdc must be a non-negative decimal"]},"id":"invalid_price_format","severity":"warning","title":"Use machine-parseable x402 price fields"}]}
