Build & verify
x402 Service Conformance
Help your agent inspect an x402 service’s protocol and discovery setup, with specific findings and measured limits.
You choose the task. Your agent calls Mekler and brings the result back to your conversation or workflow.
No Mekler workspace account required. Follow the setup guide for your assistant.
Browse scanned services and grade history →
Catalog search and listing details are free. Domain proof lets an operator hide a listing or suppress branding; it never changes a grade.
What your agent can do
Inspect an x402 service
Diagnose x402 protocol, request-example schemas and discovery consistency with an asynchronous conformance scan
0.05 USDC per completed scan
Paid only. No free trial for this operation.
This operation needs paid setup. New to Mekler? Start with a free sample task →
Know before you use it
- Paid delivery verification
- Safety or quality certification
- Private networks, login, arbitrary request bodies or target credentials
- Independent chain indexing, universal adoption coverage and automatic publication of unreviewed target identities
Data handling
- Storage
Encrypted job state and artifacts. No raw target responses, customer inputs, payment proofs or private identifiers in logs or public projections.
- Retention
Reports are public for 24 hours; encrypted report artifacts expire after two days. The active encrypted catalog snapshot has no expiry. Replaced snapshots are marked retired and expire after two days; recovery prunes old events and sweeps abandoned snapshots. Paid catalog results expire after 31 days with 30 day recovery. Grade events retain 30 days or 50000 events; per-listing history retains the latest 100 observations. Job/idempotency records retain 90 days; payment replay ledger remains separate.
- Public
Fixed diagnostic reports and opaque catalog identities by default; business attribution only after identity review. Origin-derived branding claims are labeled unverified and can be suppressed by a verified owner. No raw target bodies, contacts, payout addresses or private ownership credentials.
- Directory
Only reviewed business wording and reviewed route paths are public. Unreviewed imports remain private. Raw source responses, target bodies, contacts, payout addresses and owner credentials stay private. Free history follows current suppression.
- Owner workflows
Private contacts are stored separately from public catalog snapshots and scanner access. Verified contacts retain for the original grant plus 30 days; correction requests 90 days; email outbox 30 days. Email acceptance is not delivery; ambiguous sends are retained without blind replay. No contact/code/credential in URLs or logs.
Input example and exact contract
{
"origin": "https://api.mekler.ai",
"quote_mode": "fast"
}Example output
{
"checks_version": "mekler-2026-10-07.1",
"linter": {
"score": 89,
"grade": "B",
"categories": {
"protocol": 100,
"docs": 68,
"directory": 100
},
"evaluated": 20,
"total": 25,
"provisional": true,
"rules_version": "mekler-2026-10-07.1"
},
"compliance": {
"score": 100,
"grade": "A",
"evaluated": 14,
"total": 14,
"provisional": false,
"rules_version": "mekler-2026-10-07.1"
},
"findings": [
{
"id": "P1",
"title": "http-reachable",
"severity": "critical",
"category": "protocol",
"status": "pass",
"evidence": "criterion_satisfied",
"fix": "Serve a reachable public HTTP endpoint."
}
],
"coverage": {
"paid_routes_probed": 1,
"head_observations": 1,
"chain_checks": "not_evaluated",
"delivery_verified": false,
"raw_content_published": false
},
"report_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"scanned_at": 1791331200,
"expires_at": 1791417600,
"diagnostics": {
"version": "mekler-inputs-2026-10-19.1",
"summary": {
"pass": 1,
"fail": 0,
"warn": 0,
"unknown": 0,
"skip": 0
},
"findings": [
{
"id": "E1",
"subject": "operation_01",
"title": "Request example satisfies its schema",
"status": "pass",
"evidence": "example_matches_supported_schema",
"fix": "Publish an application/json example that satisfies the declared request schema, including every required field."
}
],
"examples_replayed": false,
"paid_delivery_verified": false
}
}Calling, result interpretation and recovery
Calling
- Endpoint
POST /v1/services/conformance/scan-origin
- Content type
application/json
- Input
Public origin and optional paths. With quote_mode fast, unsigned input returns 402 without starting work. Resend the unchanged body with PAYMENT-SIGNATURE; save the returned job_id and recovery_capability, then poll GET retrieve-scan-status using X-Mekler-Scan-Capability. Fast mode may omit idempotency_key; the original proof identifies retries. Without fast mode, supply a random idempotency_key, retain the initial 202 capability, poll until result-ready, then request a quote and pay using the same body and capability.
- Free reads
GET /v1/services/conformance/retrieve-scan-status
GET /v1/services/conformance/retrieve-scan-report
GET /v1/services/conformance/list-conformance-checks
GET /v1/services/listings/search-listings
GET /v1/services/listings/retrieve-listing
GET /v1/services/listings/list-categories
GET /v1/services/listings/list-networks
GET /v1/services/listings/list-offer-changes
GET /v1/services/health/retrieve-listing-history
GET /v1/services/health/retrieve-health-checks
GET /v1/services/health/summarize-directory-status
Interpret the result
- Linter
50/35/15 protocol/docs/ecosystem weighting, Mekler bands and critical failure cap.
- Compliance
Percent of evaluated applicable checks; fewer than 10 is ungraded, EVM signing-domain failure caps at C.
- Coverage
Unknown evidence is not failure or measured zero. D1-D4 use one observed resource and label directory/Bazaar source, observation time and 30 day external activity coverage; they do not independently establish finalized chain history. D5 stays unknown while the former official registry is not published.
- Billing
Successful reports are stored before settlement and withheld until finalized payment. 202 is pending, not fulfillment. Recovery never buys a replacement.
- Privacy
Opaque report IDs; target attribution withheld pending identity review.
- Diagnostics
E1-E6 are additive offline schema and unsigned-observation diagnostics, with version, fixed reasons, opaque subject numbering, bounds and pass/fail/warn/unknown/skip summary. Patterns, formats, external references, recursive schemas and unsupported keywords remain unknown; examples are never replayed. A pass is not paid-delivery, semantic or safety verification. Older reports can omit this field.
- Directory
Imported entries start ungraded and unverified; source claims are labeled. Health uses rolling 1/7/30/90-day completed-cycle windows and excludes unknown observations. Daily rollups persist; raw observations retain 30 days. No independent chain index or paid delivery certificate is supplied in this release.
Limits
- Request bytes
65536
- Max paths
50
- Scan seconds
75
- Queue start seconds
30
- Response capture bytes
65536
- Per origin concurrency
2
- Unpaid admission
20 scans per client and origin per UTC day; 1000 globally. Default in-flight identical scans share work. Fast jobs bind one payment identity; unsigned fast probes create no work.
- Semantics
Public IPs and standard HTTP(S) ports only. No payment or credentials sent to targets.
Cached reports expire 24 hours after the scan; idempotency survives at least 90 days.
- Openapi document bytes
4194304
- Catalog
- Read requests per ip per minute
30
- Ownership requests per ip per minute
10
- Catalog capacity
20000
- Export records
10000
- Grade events per page
1000
- Search cursor seconds
86400
- Event retention days
30
- Event retention cap
50000
- Grade history per listing
100
- Ownership seconds
3600
- Control days
90
- Recheck days
7
Payment and recovery
- Network
Solana mainnet or Base mainnet
- Networks
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
eip155:8453
- Protocol
x402 v2
- Price usdc
0.05
- Flow
Optional quote-first-async; default compute-then-pay. Both settle only after durable successful output.
- Retry
Retain the original body, capability and payment proof; never sign a second payment for the same job.
- Quote
Fast mode returns a payable first 402 for any valid input; default quotes require result-ready and capability. Empty input remains nonpayable preflight.
- Authentication
No API key. Recovery capability protects a private job; the buyer signs its chosen payment offer.
- Expiry
Queue starts within 30 seconds and scanning takes at most 75 seconds. Quotes last 120 seconds; Base authorization and Solana blockhash can expire sooner. Recheck before initiation; terminal expired-uncharged jobs never replace their proof. A new scan requires a fresh purchase only after an explicit terminal uncharged outcome. Once settlement may have started, retain the same proof through finality, including after expiry.
- Operation prices usdc
- Scanorigin
0.05
- Exportlistings
0.25
- Listgradechanges
0.01
- Catalog recovery
A genuine first quote creates no work. After proof verification, a fresh idempotency key pins one result before settlement; retain it and the exact original proof for 30 day recovery. Do not pay again on 202, timeout or uncertain settlement.
- Price scope
Selected operation: scanOrigin
What your agent can do
Export listings
Export the scanned x402 service catalog with grades, history and provenance
0.25 USDC per catalog export
Paid only. No free trial for this operation.
This operation needs paid setup. New to Mekler? Start with a free sample task →
Know before you use it
- Paid delivery verification
- Safety or quality certification
- Private networks, login, arbitrary request bodies or target credentials
- Independent chain indexing, universal adoption coverage and automatic publication of unreviewed target identities
Data handling
- Storage
Encrypted job state and artifacts. No raw target responses, customer inputs, payment proofs or private identifiers in logs or public projections.
- Retention
Reports are public for 24 hours; encrypted report artifacts expire after two days. The active encrypted catalog snapshot has no expiry. Replaced snapshots are marked retired and expire after two days; recovery prunes old events and sweeps abandoned snapshots. Paid catalog results expire after 31 days with 30 day recovery. Grade events retain 30 days or 50000 events; per-listing history retains the latest 100 observations. Job/idempotency records retain 90 days; payment replay ledger remains separate.
- Public
Fixed diagnostic reports and opaque catalog identities by default; business attribution only after identity review. Origin-derived branding claims are labeled unverified and can be suppressed by a verified owner. No raw target bodies, contacts, payout addresses or private ownership credentials.
- Directory
Only reviewed business wording and reviewed route paths are public. Unreviewed imports remain private. Raw source responses, target bodies, contacts, payout addresses and owner credentials stay private. Free history follows current suppression.
- Owner workflows
Private contacts are stored separately from public catalog snapshots and scanner access. Verified contacts retain for the original grant plus 30 days; correction requests 90 days; email outbox 30 days. Email acceptance is not delivery; ambiguous sends are retained without blind replay. No contact/code/credential in URLs or logs.
Input example and exact contract
{
"idempotency_key": "example-export-request-0001"
}Example output
{
"status": "ok",
"content_encoding": "gzip+base64",
"content_type": "application/json",
"content": "H4sIAAAAAAAA/01QXU7DMAy+ipXnboLXcgQEF0CochNvDcvsKHaGKsTdcTskyEsU+/vL9xUi1jA+PvgZwrlhomnJatLWKUrpV9YwvgWZldqN0oQWfmF+a5RG4X0IxRmZzxvUX7XJjRg5UhjDC10KtUOUa+1GCe5KaFlYnwDrDk4wd81MqpATsWVbwRcfFHccCJfV/Rp13TSfiSrYQpA5lp6cfnf5Lw5/KeBzIYaN7BnhhNE6Ftg/oUd4FZfKLR0qNrdNaKhkA0Rh8yggDeaGnDZuyZFY3VdBe60lUzpuPTBWXcS2dkavUQ2texlBLr41MSz73FrniN5CGE9YlL5/ANbTOd9+AQAA",
"sha256": "1b14bb641af5ff6e993a76f10685f0364b208aac7a9515e4449468f420de3bd3",
"records": 0,
"total": 0,
"cap": 10000,
"truncated": false,
"snapshot_at": 0
}Calling, result interpretation and recovery
Calling
- Endpoint
POST /v1/services/conformance/scan-origin
- Content type
application/json
- Input
Public origin and optional paths. With quote_mode fast, unsigned input returns 402 without starting work. Resend the unchanged body with PAYMENT-SIGNATURE; save the returned job_id and recovery_capability, then poll GET retrieve-scan-status using X-Mekler-Scan-Capability. Fast mode may omit idempotency_key; the original proof identifies retries. Without fast mode, supply a random idempotency_key, retain the initial 202 capability, poll until result-ready, then request a quote and pay using the same body and capability.
- Free reads
GET /v1/services/conformance/retrieve-scan-status
GET /v1/services/conformance/retrieve-scan-report
GET /v1/services/conformance/list-conformance-checks
GET /v1/services/listings/search-listings
GET /v1/services/listings/retrieve-listing
GET /v1/services/listings/list-categories
GET /v1/services/listings/list-networks
GET /v1/services/listings/list-offer-changes
GET /v1/services/health/retrieve-listing-history
GET /v1/services/health/retrieve-health-checks
GET /v1/services/health/summarize-directory-status
Interpret the result
- Linter
50/35/15 protocol/docs/ecosystem weighting, Mekler bands and critical failure cap.
- Compliance
Percent of evaluated applicable checks; fewer than 10 is ungraded, EVM signing-domain failure caps at C.
- Coverage
Unknown evidence is not failure or measured zero. D1-D4 use one observed resource and label directory/Bazaar source, observation time and 30 day external activity coverage; they do not independently establish finalized chain history. D5 stays unknown while the former official registry is not published.
- Billing
Successful reports are stored before settlement and withheld until finalized payment. 202 is pending, not fulfillment. Recovery never buys a replacement.
- Privacy
Opaque report IDs; target attribution withheld pending identity review.
- Diagnostics
E1-E6 are additive offline schema and unsigned-observation diagnostics, with version, fixed reasons, opaque subject numbering, bounds and pass/fail/warn/unknown/skip summary. Patterns, formats, external references, recursive schemas and unsupported keywords remain unknown; examples are never replayed. A pass is not paid-delivery, semantic or safety verification. Older reports can omit this field.
- Directory
Imported entries start ungraded and unverified; source claims are labeled. Health uses rolling 1/7/30/90-day completed-cycle windows and excludes unknown observations. Daily rollups persist; raw observations retain 30 days. No independent chain index or paid delivery certificate is supplied in this release.
Limits
- Request bytes
65536
- Max paths
50
- Scan seconds
75
- Queue start seconds
30
- Response capture bytes
65536
- Per origin concurrency
2
- Unpaid admission
20 scans per client and origin per UTC day; 1000 globally. Default in-flight identical scans share work. Fast jobs bind one payment identity; unsigned fast probes create no work.
- Semantics
Public IPs and standard HTTP(S) ports only. No payment or credentials sent to targets.
Cached reports expire 24 hours after the scan; idempotency survives at least 90 days.
- Openapi document bytes
4194304
- Catalog
- Read requests per ip per minute
30
- Ownership requests per ip per minute
10
- Catalog capacity
20000
- Export records
10000
- Grade events per page
1000
- Search cursor seconds
86400
- Event retention days
30
- Event retention cap
50000
- Grade history per listing
100
- Ownership seconds
3600
- Control days
90
- Recheck days
7
Payment and recovery
- Network
Solana mainnet or Base mainnet
- Networks
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
eip155:8453
- Protocol
x402 v2
- Price usdc
0.25
- Flow
Optional quote-first-async; default compute-then-pay. Both settle only after durable successful output.
- Retry
Retain the original body, capability and payment proof; never sign a second payment for the same job.
- Quote
Fast mode returns a payable first 402 for any valid input; default quotes require result-ready and capability. Empty input remains nonpayable preflight.
- Authentication
No API key. Recovery capability protects a private job; the buyer signs its chosen payment offer.
- Expiry
Queue starts within 30 seconds and scanning takes at most 75 seconds. Quotes last 120 seconds; Base authorization and Solana blockhash can expire sooner. Recheck before initiation; terminal expired-uncharged jobs never replace their proof. A new scan requires a fresh purchase only after an explicit terminal uncharged outcome. Once settlement may have started, retain the same proof through finality, including after expiry.
- Operation prices usdc
- Scanorigin
0.05
- Exportlistings
0.25
- Listgradechanges
0.01
- Catalog recovery
A genuine first quote creates no work. After proof verification, a fresh idempotency key pins one result before settlement; retain it and the exact original proof for 30 day recovery. Do not pay again on 202, timeout or uncertain settlement.
- Price scope
Selected operation: exportListings
What your agent can do
List grade changes
Read incremental x402 service grade changes with stable cursors
0.01 USDC per grade-change page
Paid only. No free trial for this operation.
This operation needs paid setup. New to Mekler? Start with a free sample task →
Know before you use it
- Paid delivery verification
- Safety or quality certification
- Private networks, login, arbitrary request bodies or target credentials
- Independent chain indexing, universal adoption coverage and automatic publication of unreviewed target identities
Data handling
- Storage
Encrypted job state and artifacts. No raw target responses, customer inputs, payment proofs or private identifiers in logs or public projections.
- Retention
Reports are public for 24 hours; encrypted report artifacts expire after two days. The active encrypted catalog snapshot has no expiry. Replaced snapshots are marked retired and expire after two days; recovery prunes old events and sweeps abandoned snapshots. Paid catalog results expire after 31 days with 30 day recovery. Grade events retain 30 days or 50000 events; per-listing history retains the latest 100 observations. Job/idempotency records retain 90 days; payment replay ledger remains separate.
- Public
Fixed diagnostic reports and opaque catalog identities by default; business attribution only after identity review. Origin-derived branding claims are labeled unverified and can be suppressed by a verified owner. No raw target bodies, contacts, payout addresses or private ownership credentials.
- Directory
Only reviewed business wording and reviewed route paths are public. Unreviewed imports remain private. Raw source responses, target bodies, contacts, payout addresses and owner credentials stay private. Free history follows current suppression.
- Owner workflows
Private contacts are stored separately from public catalog snapshots and scanner access. Verified contacts retain for the original grant plus 30 days; correction requests 90 days; email outbox 30 days. Email acceptance is not delivery; ambiguous sends are retained without blind replay. No contact/code/credential in URLs or logs.
Input example and exact contract
{
"idempotency_key": "example-grade-request-0001",
"limit": 200
}Example output
{
"status": "ok",
"events": [],
"has_more": false,
"next_cursor": "synthetic-cursor-replace-with-actual-response",
"watermark": 0,
"retention_days": 30,
"event_cap": 50000,
"history_floor": 0
}Calling, result interpretation and recovery
Calling
- Endpoint
POST /v1/services/conformance/scan-origin
- Content type
application/json
- Input
Public origin and optional paths. With quote_mode fast, unsigned input returns 402 without starting work. Resend the unchanged body with PAYMENT-SIGNATURE; save the returned job_id and recovery_capability, then poll GET retrieve-scan-status using X-Mekler-Scan-Capability. Fast mode may omit idempotency_key; the original proof identifies retries. Without fast mode, supply a random idempotency_key, retain the initial 202 capability, poll until result-ready, then request a quote and pay using the same body and capability.
- Free reads
GET /v1/services/conformance/retrieve-scan-status
GET /v1/services/conformance/retrieve-scan-report
GET /v1/services/conformance/list-conformance-checks
GET /v1/services/listings/search-listings
GET /v1/services/listings/retrieve-listing
GET /v1/services/listings/list-categories
GET /v1/services/listings/list-networks
GET /v1/services/listings/list-offer-changes
GET /v1/services/health/retrieve-listing-history
GET /v1/services/health/retrieve-health-checks
GET /v1/services/health/summarize-directory-status
Interpret the result
- Linter
50/35/15 protocol/docs/ecosystem weighting, Mekler bands and critical failure cap.
- Compliance
Percent of evaluated applicable checks; fewer than 10 is ungraded, EVM signing-domain failure caps at C.
- Coverage
Unknown evidence is not failure or measured zero. D1-D4 use one observed resource and label directory/Bazaar source, observation time and 30 day external activity coverage; they do not independently establish finalized chain history. D5 stays unknown while the former official registry is not published.
- Billing
Successful reports are stored before settlement and withheld until finalized payment. 202 is pending, not fulfillment. Recovery never buys a replacement.
- Privacy
Opaque report IDs; target attribution withheld pending identity review.
- Diagnostics
E1-E6 are additive offline schema and unsigned-observation diagnostics, with version, fixed reasons, opaque subject numbering, bounds and pass/fail/warn/unknown/skip summary. Patterns, formats, external references, recursive schemas and unsupported keywords remain unknown; examples are never replayed. A pass is not paid-delivery, semantic or safety verification. Older reports can omit this field.
- Directory
Imported entries start ungraded and unverified; source claims are labeled. Health uses rolling 1/7/30/90-day completed-cycle windows and excludes unknown observations. Daily rollups persist; raw observations retain 30 days. No independent chain index or paid delivery certificate is supplied in this release.
Limits
- Request bytes
65536
- Max paths
50
- Scan seconds
75
- Queue start seconds
30
- Response capture bytes
65536
- Per origin concurrency
2
- Unpaid admission
20 scans per client and origin per UTC day; 1000 globally. Default in-flight identical scans share work. Fast jobs bind one payment identity; unsigned fast probes create no work.
- Semantics
Public IPs and standard HTTP(S) ports only. No payment or credentials sent to targets.
Cached reports expire 24 hours after the scan; idempotency survives at least 90 days.
- Openapi document bytes
4194304
- Catalog
- Read requests per ip per minute
30
- Ownership requests per ip per minute
10
- Catalog capacity
20000
- Export records
10000
- Grade events per page
1000
- Search cursor seconds
86400
- Event retention days
30
- Event retention cap
50000
- Grade history per listing
100
- Ownership seconds
3600
- Control days
90
- Recheck days
7
Payment and recovery
- Network
Solana mainnet or Base mainnet
- Networks
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
eip155:8453
- Protocol
x402 v2
- Price usdc
0.01
- Flow
Optional quote-first-async; default compute-then-pay. Both settle only after durable successful output.
- Retry
Retain the original body, capability and payment proof; never sign a second payment for the same job.
- Quote
Fast mode returns a payable first 402 for any valid input; default quotes require result-ready and capability. Empty input remains nonpayable preflight.
- Authentication
No API key. Recovery capability protects a private job; the buyer signs its chosen payment offer.
- Expiry
Queue starts within 30 seconds and scanning takes at most 75 seconds. Quotes last 120 seconds; Base authorization and Solana blockhash can expire sooner. Recheck before initiation; terminal expired-uncharged jobs never replace their proof. A new scan requires a fresh purchase only after an explicit terminal uncharged outcome. Once settlement may have started, retain the same proof through finality, including after expiry.
- Operation prices usdc
- Scanorigin
0.05
- Exportlistings
0.25
- Listgradechanges
0.01
- Catalog recovery
A genuine first quote creates no work. After proof verification, a fresh idempotency key pins one result before settlement; retain it and the exact original proof for 30 day recovery. Do not pay again on 202, timeout or uncertain settlement.
- Price scope
Selected operation: listGradeChanges