Ontario Protocol
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Find live x402 APIs for any task (0.005 USDC, no match no charge); free x402 readiness checks.
| Author | com.ontarioprotocol |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 2248 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Ontario Protocol": {
"url": "https://ontarioprotocol.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (20)
ontario_purchase_routerread-onlyFree deterministic routing of one public task to Ontario's free and paid tools. Returns the matching tool and a decision (free_only, run_free_preflight, or paid_recommended with the tool's price, network and budget check). Natural endpoint-verification tasks route to the free readiness verifier, with the optional 0.002 USDC settlement-backed receipt disclosed. Provider jobs such as publishing, registering, or making an x402 endpoint discoverable route to the self-serve 0.50 USDC publication product and its free validator. Paid reads it can recommend: ontario_find-api (a live-checked paid API for a task), ontario_base-balances (Base wallet balances), ontario_base-tx-check (whether a Base transaction settled) and ontario_base-gas (current Base gas prices). Existing paid profiles route to the 0.10 USDC evidence refresh and its free refresh validator. Empty calls return task examples instead of guessing a purchase. This tool never invokes another tool, signs a payload, or spends funds.
Parameters:
task(required) — string — Public task description only; never include credentials or private customer data.network— string — Wallet policy network; Ontario paid tools currently require Base mainnet.max_usdc— Optional owner-authorized per-call USDC ceiling from 0 to 1000. Send a JSON number or decimal string such as 0.5, '0.50', '$0.50' or '0.50 USDC'. Omit when no budget is authorized; a budget is only a ceiling and does not grant spending authority. The router never increases it.wallet_enabled— boolean — True if the caller can locally sign an x402 PaymentPayload.free_preflight_complete— boolean — True only after the recommended free check has completed for this task.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
ontario_find-apiWhich x402 API should my agent call? Live API finder for any task. Required: task. Returns up to 5 paid APIs that answered a fresh unpaid probe with a valid Base USDC 402, ranked by task fit, price and Bazaar-reported repeat buyers, each with live price, network and a ready-to-call request. Provider calls are paid separately. No live match, no charge. $0.005 USDC on Base. No account, no API key. Recommendations, not a safety guarantee. By Ontario Protocol. [PAID: 0.005 USDC via x402 on Base. Two-step flow: a call without payment returns MCP PaymentRequired; the retry carries the signed PaymentPayload in params._meta['x402/payment']. The legacy _x402_payment base64 argument is also supported. Signing happens in the caller's wallet.]
Parameters:
task(required) — string — Public task text, e.g. 'web search for an AI agent'. Never include credentials or private data.limit— integer — Number of live-verified APIs to return, 1 to 5.max_usdc— string — Optional per-call price ceiling in USDC for returned APIs, e.g. '0.01'._x402_payment— string — base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_base-balancesWhat does this Base wallet hold? ETH, USDC and about 25 widely held Base tokens, plus up to 20 ERC-20 contracts you name, with symbol, decimals, raw and formatted amounts and the block number read, live from Base RPC. Required: address. $0.002 USDC on Base. Failed read, no charge. No account, no API key. Base mainnet only; no prices or USD values; tokens outside the list and your extras are not discovered. By Ontario Protocol. [PAID: 0.002 USDC via x402 on Base. Two-step flow: a call without payment returns MCP PaymentRequired; the retry carries the signed PaymentPayload in params._meta['x402/payment']. The legacy _x402_payment base64 argument is also supported. Signing happens in the caller's wallet.]
Parameters:
address(required) — string — Base wallet or contract address to read.tokens— string — Optional comma-separated ERC-20 contract addresses to read as well, max 20._x402_payment— string — base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_base-tx-checkDid this Base payment settle? Status, block, timestamp and confirmations for one transaction hash, with its ERC-20 Transfers decoded (token, from, to, amount; up to 100 listed, transfers_total gives the full count) and any EIP-3009 authorization used, plus match flags for an optional expected payTo and amount, so an x402 PAYMENT-RESPONSE can be checked. Required: hash. $0.002 USDC on Base. Transaction not found, no charge. No account, no API key. Base mainnet only. By Ontario Protocol. [PAID: 0.002 USDC via x402 on Base. Two-step flow: a call without payment returns MCP PaymentRequired; the retry carries the signed PaymentPayload in params._meta['x402/payment']. The legacy _x402_payment base64 argument is also supported. Signing happens in the caller's wallet.]
Parameters:
hash(required) — string — Base mainnet transaction hash.expected_to— string — Optional payTo address the USDC transfer should reach._x402_payment— string — base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.expected_amount— string — Optional USDC amount in atomic units, for example 500000 for 0.5 USDC.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_base-gasWhat does a Base transaction cost right now? Base fee, priority-fee p25/p50/p90 over the last 20 blocks, suggested maxFeePerGas and maxPriorityFeePerGas for slow, normal and fast inclusion, an L1 data-fee upper bound, and estimated total cost in wei for an ETH transfer and an ERC-20 transfer, read live from Base RPC with the block number. $0.0015 USDC on Base. Failed read, no charge. No account, no API key. Estimates, not inclusion guarantees. By Ontario Protocol. [PAID: 0.0015 USDC via x402 on Base. Two-step flow: a call without payment returns MCP PaymentRequired; the retry carries the signed PaymentPayload in params._meta['x402/payment']. The legacy _x402_payment base64 argument is also supported. Signing happens in the caller's wallet.]
Parameters:
blocks— integer — Optional number of recent blocks the fee percentiles cover, 5 to 50. Default 20._x402_payment— string — base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_task_fitFree task-to-tool matching with an optional Jev second opinion. With allow_typesafe=true, your public task and Ontario's public tool descriptions are sent to TypeSafe for Jev inference. Do not supply secrets, personal data, private URLs, or customer content. Ontario does not persist task text here. TypeSafe processing is subject to its policies; zero retention is not promised. Without consent, only Ontario's deterministic router is used. Returns a callable tool and input schema, or abstains. Never executes tools or authorizes payment. Model quota exhaustion falls back to deterministic routing.
Parameters:
task(required) — string — A public capability request, never private task content.network— string — Network permitted by the caller's wallet policy; Ontario paid tools require Base mainnet (eip155:8453).max_usdc— string — Explicit owner-approved USDC ceiling; never inferred.allow_typesafe— boolean — With allow_typesafe=true, your public task and Ontario's public tool descriptions are sent to TypeSafe for Jev inference. Do not supply secrets, personal data, private URLs, or customer content. Ontario does not persist task text here. TypeSafe processing is subject to its policies; zero retention is not promised. Without consent, only Ontario's deterministic router is used.wallet_enabled— boolean — True if the caller can locally sign an x402 payment; this flag does not authorize spending.free_preflight_complete— boolean — True only after the recommended free check has completed for this task.
Hints: read-only no · destructive no · idempotent no · open-world yes
agent_can_payread-onlyFree pre-payment policy decision: allow, review, or deny for one x402 endpoint under strict, standard, or permissive policy, with reasons and report evidence. require_audit_receipt adds a handoff to the optional settlement-backed receipt.
Parameters:
endpoint(required) — string — Public x402 endpoint to evaluate before payment; never include credentials or private query parameters.max_usdc— string — Caller-approved per-call spending ceiling in decimal USDC, for example 0.01. This check never spends funds.agent_policy— string — Readiness policy to apply. Use strict unless the operator explicitly permits a different policy.require_audit_receipt— boolean — Explicitly request the optional paid receipt handoff after an allow decision. This does not submit payment.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
x402_readiness_verifyFree check for whether a paid endpoint is ready for agent discovery and x402 payment. Returns a readiness grade, a free end-to-end buyer-path diagnostic handoff and a grade-aware provider handoff that states whether the endpoint is ready-grade for the optional 0.50 USDC publication and links the free listing validator.
Parameters:
target_url(required) — string — Public service or x402 endpoint URL to inspect without payment. Do not submit credentials, private hosts, or sensitive query parameters.
Hints: read-only no · destructive no · idempotent no · open-world yes
bazaar_buyer_intent_gapread-onlyFree read-only provider audit that runs Coinbase's indexing preflight and measures one public x402 endpoint across five live CDP Bazaar buyer-search variations. Returns retrieval coverage, observed sample ranks, alternatives, public 30-day call and unique-payer observations, Base USDC price bands, HTTP 402 and metadata readiness, and the activation boundary. Public quality counts may include owner-funded calls and are not revenue. It never signs or settles.
Parameters:
target_url(required) — string — Public x402 paid endpoint whose buyer visibility should be measured.buyer_query(required) — string — Public task phrase a funded agent could use in CDP Bazaar search; never include credentials or private customer text.buyer_queries— array — Optional explicit portfolio of up to five public buyer phrases. When omitted, Ontario generates four deterministic variants from buyer_query.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
find_x402_toolread-onlyFree buyer-side search across Ontario's fresh strict-ready paid profiles, Agentic Market, and Coinbase CDP Bazaar. Returns unverified marketplace candidates ranked by task relevance plus bounded source-reported recent activity, with optional Base/USDC budget filtering; nothing is probed, so listings may be dead or mispriced. ontario_find-api returns live-checked candidates. Paid Ontario publication adds no ranking score. Provider-side publication queries return the free listing validator and the 0.50 USDC publication workflow.
Parameters:
query(required) — string — Public task text only; never include credentials or private customer data.limit— integer — Maximum number of task-matched candidates to return, from 1 to 10.network— string — Optional network filter, for example eip155:8453 or base.max_usdc— string — Optional hard USDC price ceiling for returned candidates.active_only— boolean — When true, require recent source-reported activity or fresh strict-ready Ontario profile evidence.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
x402_launch_kitread-onlyGenerate a validated listing payload, x402 resource draft, MCP descriptor, GitHub readiness workflow, README snippet, and registry copy for one paid endpoint.
Parameters:
name(required) — string — Public name of the provider's service.description(required) — string — Public description of the task the service performs and the result it returns.endpoint(required) — string — Provider-owned public HTTPS x402 endpoint to prepare for listing.price_usdc(required) — string — The provider's per-call price in decimal USDC, not Ontario's publication fee. Kit generation is free.tags— string — Comma-separated public capability tags, for example x402,paid-api,agent-tool.asset— string — USDC token contract on the declared payment network; omit to use the Base USDC default.method— string — HTTP method accepted by the provider endpoint, for example POST.network— string — Payment network accepted by the provider, for example base or eip155:8453.owner_url— string — Public website identifying the service provider.owner_contact— string — Optional public business contact for generated drafts. Omit private addresses; never supply credentials.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
ontario_validate-serviceFree provider listing preflight. Validate public service metadata before buying the 0.50 USDC Ontario launch passport. Returns field errors or a normalized request and publication decision. Set verify_now only to create a public readiness report. Never publishes a listing, signs or spends; a valid payload alone does not establish readiness or Bazaar placement.
Parameters:
name(required) — string — Public service name displayed on the provider profile.description(required) — string — Public buyer task, expected result, and important service limitations; do not include confidential text.endpoint(required) — string — Provider-owned public HTTPS x402 endpoint to list. Never include secrets or sensitive query parameters.price_usdc(required) — string — Provider endpoint price in decimal USDC, at most six decimal places. This is separate from Ontario's 0.50 USDC publication fee.tags— array — Public capability tags for discovery, up to ten relevant labels.asset— string — Payment token contract accepted by the provider on the declared network.method— string — HTTP method used to call the provider's endpoint.source— string — Privacy-safe aggregate acquisition bucket; never a URL or query.network— string — Provider payment network, for example base or eip155:8453. Ontario publication itself uses Base USDC.category— string — Public capability category for the service, not a claim of certification.owner_url— string — Public website identifying the provider; publication does not verify legal identity.verify_now— boolean — Optionally run live readiness checks and save a public signed report. No listing is published and no payment is made.buyer_query— string — Public task phrase used for the point-in-time Bazaar retrieval audit. It may appear in the public profile.price_atomic— integer — Optional provider price in six-decimal USDC units: 10000 equals 0.01 USDC. Must match price_usdc when supplied.owner_contact— string — Optional provider contact retained for operations and omitted from public profiles. Omit when unnecessary; never send wallet credentials.mcp_remote_url— string — Optional public MCP remote for read-only initialize and tools/list checks.mcp_server_name— string — Optional exact MCP Registry server name.mcp_server_json_url— string — Optional public MCP Registry record or exact-search JSON URL.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_list-servicePublish a provider-owned x402 API so AI agents can discover and buy it. After free validation and a Bazaar buyer-intent audit, the 0.50 USDC Launch Passport creates a signed public HTML/JSON profile, readiness and Coinbase indexing evidence, a five-query retrieval snapshot, badge, copy-ready MCP/catalog records, and 30 days of freshness maintenance. It can become eligible for strict Ontario discovery when evidence is ready and fresh. It does not guarantee Coinbase placement, ranking, traffic, purchases, a ready grade, or safety. [PAID: 0.50 USDC via x402 on Base. Two-step flow: a call without payment returns MCP PaymentRequired; the retry carries the signed PaymentPayload in params._meta['x402/payment']. The legacy _x402_payment base64 argument is also supported. Signing happens in the caller's wallet.]
Parameters:
name(required) — string — Public service name displayed on the provider profile.description(required) — string — Public buyer task, expected result, and important service limitations; do not include confidential text.endpoint(required) — string — Provider-owned public HTTPS x402 endpoint to list. Never include secrets or sensitive query parameters.price_usdc(required) — string — Provider endpoint price in decimal USDC, at most six decimal places. This is separate from Ontario's 0.50 USDC publication fee.tags— array — Public capability tags for discovery, up to ten relevant labels.asset— string — Payment token contract accepted by the provider on the declared network.method— string — HTTP method used to call the provider's endpoint.source— string — Privacy-safe aggregate acquisition bucket; never a URL or query.network— string — Provider payment network, for example base or eip155:8453. Ontario publication itself uses Base USDC.category— string — Public capability category for the service, not a claim of certification.owner_url— string — Public website identifying the provider; publication does not verify legal identity.buyer_query— string — Public task phrase used for the point-in-time Bazaar retrieval audit. It may appear in the public profile.price_atomic— integer — Optional provider price in six-decimal USDC units: 10000 equals 0.01 USDC. Must match price_usdc when supplied._x402_payment— string — base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.owner_contact— string — Optional provider contact retained for operations and omitted from public profiles. Omit when unnecessary; never send wallet credentials.mcp_remote_url— string — Optional public MCP remote for read-only initialize and tools/list checks.mcp_server_name— string — Optional exact MCP Registry server name.mcp_server_json_url— string — Optional public MCP Registry record or exact-search JSON URL.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_refresh-listingAttaches a fresh live readiness observation to an existing paid Ontario provider profile's canonical HTML, JSON twin, and badge. This tool cannot edit provider metadata, improve a grade by payment, or buy ranking or traffic. Freshness maintenance is automatic and included during the launch passport's first 30 days. [PAID: 0.10 USDC via x402 on Base. Two-step flow: a call without payment returns MCP PaymentRequired; the retry carries the signed PaymentPayload in params._meta['x402/payment']. The legacy _x402_payment base64 argument is also supported. Signing happens in the caller's wallet.]
Parameters:
listing_id(required) — string — Existing paid provider profile id._x402_payment— string — base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.paid_refresh_tx— string — One-use retry reference for a settled refresh that could not complete.
Hints: read-only no · destructive no · idempotent no · open-world yes
agent_trust_previewread-onlyFree live, rate-limited agent trust preview for one public endpoint. Returns safe signals and issues without the paid evidence bundle or attestation; the paid trust scan adds them.
Parameters:
target_url(required) — string — Public HTTPS agent card or endpoint to preview without payment; never include private hosts or credentials.agent_id— string — Optional stable public agent identifier to associate with the preview.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
github_x402_repo_scanread-onlyFree pre-deployment scan of one public GitHub repository for x402 implementation, HTTP 402 tests, payment configuration, buyer documentation, discovery metadata, CI gates, and sensitive filenames. Returns paths and remediation, never source contents.
Parameters:
repository_url(required) — string — Public https://github.com/owner/repo URL.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
ontario_list-agentSubmits a public directory listing for an agent the caller owns. Payload validation is free; payment does not guarantee approval, traffic, ranking, or safety. [PAID: 0.10 USDC via x402 on Base. Two-step flow: a call without payment returns MCP PaymentRequired; the retry carries the signed PaymentPayload in params._meta['x402/payment']. The legacy _x402_payment base64 argument is also supported. Signing happens in the caller's wallet.]
Parameters:
name(required) — string — Public name of the agent being listed.agent_card_url(required) — string — Public HTTPS agent card URL for the listing.tags— array — Capability tags describing the agent.owner_url— string — Optional public owner website.description— string — Public description of the agent's capabilities._x402_payment— string — base64 x402 PaymentPayload (USDC on Base); obtain the requirements by calling this tool without it first.owner_contact— string — Optional owner contact supplied for the listing; do not include secrets.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_validate-agentValidate an agent listing payload for free before publication. Never publishes, signs or spends.
Parameters:
name(required) — string — Public name of the agent being listed.agent_card_url(required) — string — Public HTTPS agent card URL for the listing.tags— array — Capability tags describing the agent.owner_url— string — Optional public owner website.description— string — Public description of the agent's capabilities.owner_contact— string — Optional owner contact supplied for the listing; do not include secrets.
Hints: read-only no · destructive no · idempotent no · open-world yes
ontario_validate-refreshCheck an existing paid provider profile's refresh eligibility for free, including cooldown. Never refreshes, signs or spends.
Parameters:
listing_id(required) — string — Existing paid provider profile id.paid_refresh_tx— string — One-use retry reference for a settled refresh that could not complete.
Hints: read-only no · destructive no · idempotent no · open-world yes
x402_verification_reportsread-onlyPublic ledger of recent x402 readiness reports.
Parameters:
limit— integer — Maximum recent public readiness reports to request.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.