402Signal
Server Details
Check paid API offers before your agent spends. Qualifying routes: $0.003 USDC. Normal misses: free.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 64.9% over 45 days
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 3 tools
The three tools have distinct roles: preview discovers candidates for free, validate checks a listed URL for free, check performs a paid live probe with signed evidence. However, check and validate both assess endpoint readiness, and the verbose descriptions explicitly differentiate them, leaving minor potential for confusion.
All tool names are single lowercase action verbs (check, preview, validate), which is a consistent pattern, though it deviates from the more common verb_noun convention. No mixing of styles is present.
Three tools is well-scoped for a focused discovery/pre-flight checking service; each tool covers a distinct phase (discover, validate, paid check) and earns its place.
The surface covers discovery, free validation, and paid pre-flight check with signed receipt. Minor gap: no separate tool for reconciling settlement_state=unknown or verifying a receipt later, but core workflow is complete.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
check2 fields changed- added
Input schema / properties / acceptance_sha256Added value: +{ + "description": "Optional SHA-256 of the buyer's acceptance contract (RFC 8785 canonical JSON), fixed before payment. With require_route_binding=true it is committed unchanged in the signed request, so the receipt covers the requirements the buyer set. The check never reads or evaluates it; the buyer assesses the seller's response locally.", + "maxLength": 64, + "minLength": 64, + "pattern": "^[0-9a-f]{64}$", + "type": "string" +} - added
Input schema / properties / networks / minItemsAdded value: +1
3 tool updates
- Changed
check1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "binding_unavailable", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "authorization_used", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "binding_unavailable", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + "mandate_mismatch", + "unsupported_hop_field", + null +]
- Changed
preview1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "binding_unavailable", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "authorization_used", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "binding_unavailable", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + "mandate_mismatch", + "unsupported_hop_field", + null +]
- Changed
validate1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "binding_unavailable", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "authorization_used", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "binding_unavailable", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + "mandate_mismatch", + "unsupported_hop_field", + null +]
2 tool updates
- Changed
check3 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche", - "tempo" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo", + "sei", + "celo", + "robinhood" +] - changed
Input schema / properties / prefer_network / descriptionPrevious value: -"Weak ranking preference only. Ranks this seller network first but still searches and selects across all supported networks. Not a filter. Use networks for a hard policy lock. Observed networks: base, solana, algorand and the EVM chains polygon, arbitrum, monad, worldchain, xlayer, bnb, hyperevm, ethereum, optimism, avalanche (CAIP-2 ids such as eip155:137 are accepted); the checking fee itself is paid on base, solana or algorand."New value: +"Weak ranking preference only. Ranks this seller network first but still searches and selects across all supported networks. Not a filter. Use networks for a hard policy lock. Observed networks: base, solana, algorand and the EVM chains polygon, arbitrum, monad, worldchain, xlayer, bnb, hyperevm, ethereum, optimism, avalanche, tempo, sei, celo, robinhood (CAIP-2 ids such as eip155:137 are accepted); the checking fee itself is paid on base, solana or algorand." - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche", - "tempo" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo", + "sei", + "celo", + "robinhood" +]
- Changed
preview3 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche", - "tempo" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo", + "sei", + "celo", + "robinhood" +] - changed
Input schema / properties / prefer_network / descriptionPrevious value: -"Weak ranking preference only. Ranks this seller network first but still searches and selects across all supported networks. Not a filter. Use networks for a hard policy lock. Observed networks: base, solana, algorand and the EVM chains polygon, arbitrum, monad, worldchain, xlayer, bnb, hyperevm, ethereum, optimism, avalanche (CAIP-2 ids such as eip155:137 are accepted); the checking fee itself is paid on base, solana or algorand."New value: +"Weak ranking preference only. Ranks this seller network first but still searches and selects across all supported networks. Not a filter. Use networks for a hard policy lock. Observed networks: base, solana, algorand and the EVM chains polygon, arbitrum, monad, worldchain, xlayer, bnb, hyperevm, ethereum, optimism, avalanche, tempo, sei, celo, robinhood (CAIP-2 ids such as eip155:137 are accepted); the checking fee itself is paid on base, solana or algorand." - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche", - "tempo" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo", + "sei", + "celo", + "robinhood" +]
2 tool updates
- Changed
check16 fields changed- added
Output schema / properties / claimed / properties / amount / descriptionAdded value: +"The price the catalog listing claimed, as of claimed_at." - added
Output schema / properties / claimed / properties / claimed_atAdded value: +{ + "description": "When the discovery feed last presented these claimed values for this URL.", + "type": [ + "string", + "integer", + "null" + ] +} - added
Output schema / properties / claimed / properties / facilitatorAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / claimed / properties / payTo / descriptionAdded value: +"The recipient the catalog listing claimed, as of claimed_at. Compare with observed.payTo." - added
Output schema / properties / claimed_payTo_matchAdded value: +{ + "description": "Whether observed.payTo equals claimed.payTo, compared per rail (case-insensitive on EVM). False on a mismatch; null when either side is unknown. Independent of payTo_pending, which judges against 402Signal's own observation history.", + "type": [ + "boolean", + "null" + ] +} - added
Output schema / properties / observedAdded value: +{ + "description": "What 402Signal itself observed in the seller's live 402 challenge at verified_at (402signal_observed rows, trusted classes only). This side, not the catalog claim, is what a buyer pays.", + "properties": { + "amount": { + "description": "Price in the observed challenge at verified_at.", + "type": [ + "string", + "null" + ] + }, + "http_status": { + "type": [ + "integer", + "null" + ] + }, + "invocable": { + "type": [ + "boolean", + "integer", + "null" + ] + }, + "latency_ms": { + "type": [ + "integer", + "null" + ] + }, + "observed_at": { + "description": "When that observation was made.", + "type": [ + "string", + "integer", + "null" + ] + }, + "payTo": { + "description": "Recipient in the observed challenge at verified_at.", + "type": [ + "string", + "null" + ] + }, + "payable": { + "type": [ + "boolean", + "integer", + "null" + ] + }, + "schema_present": { + "type": [ + "boolean", + "integer", + "null" + ] + } + }, + "type": "object" +} - added
Output schema / properties / observed_age_sAdded value: +{ + "description": "Seconds since observed.observed_at.", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / payToAdded value: +{ + "description": "Recipient of the selected offer as observed in the live challenge.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / payTo_age_sAdded value: +{ + "description": "Seconds since the last observed recipient change for this URL, when one is recorded.", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / payTo_changedAdded value: +{ + "description": "True when the observed payTo (the live challenge at verified_at) differs from the catalog claim (claimed.payTo at claimed_at) or from the last trusted destination 402Signal itself observed for this URL. Compare claimed.payTo with observed.payTo; the observed side is the one a buyer would pay.", + "type": "boolean" +} - added
Output schema / properties / payTo_pendingAdded value: +{ + "description": "First unexpected rotation of the observed payTo against 402Signal's own previous trusted observation of this URL, judged on that history alone (an updated catalog claim does not clear it). Not selectable unless accept_payTo_change is true; a second independent observation of the same destination establishes it.", + "type": "boolean" +} - added
Output schema / properties / readinessAdded value: +{ + "enum": [ + "discovered", + "payable", + "invocable", + "recently_verified" + ], + "type": "string" +} - added
Output schema / properties / reputation / descriptionAdded value: +"Transparent components first (observed, usage, tenure, stability, source_count), then V2 reputation_score, reputation_confidence, and scoring_model_id/hash. Score is never returned without components. No public 0-100 catalog badge. Unique payer addresses are never listed." - added
Output schema / properties / reputation / propertiesAdded value: +{ + "stability": { + "description": "Observed changes to this URL's terms (402signal_observed, not catalog claims): a change is a live challenge whose recipient, price, schema or rail differed from the previous trusted observation of the same URL.", + "properties": { + "payTo_changes": { + "properties": { + "changed_at": { + "description": "RFC3339 time of the last observed change, or null.", + "type": [ + "string", + "null" + ] + }, + "count": { + "description": "Observed changes in the window; null when unknown.", + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" + }, + "price_changes": { + "properties": { + "changed_at": { + "description": "RFC3339 time of the last observed change, or null.", + "type": [ + "string", + "null" + ] + }, + "count": { + "description": "Observed changes in the window; null when unknown.", + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" + }, + "rail_changes": { + "properties": { + "changed_at": { + "description": "RFC3339 time of the last observed change, or null.", + "type": [ + "string", + "null" + ] + }, + "count": { + "description": "Observed changes in the window; null when unknown.", + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" + }, + "schema_changes": { + "properties": { + "changed_at": { + "description": "RFC3339 time of the last observed change, or null.", + "type": [ + "string", + "null" + ] + }, + "count": { + "description": "Observed changes in the window; null when unknown.", + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" + } + }, + "type": "object" + } +} - added
Output schema / properties / riskAdded value: +{ + "description": "Omitted or empty when none. [\"payTo_changed\"] whenever payTo_changed is true.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / verified_atAdded value: +{ + "description": "When the observed live challenge was taken.", + "type": [ + "string", + "null" + ] +}
- Changed
validate4 fields changed- added
Output schema / properties / claimed / properties / amount / descriptionAdded value: +"The price the catalog listing claimed, as of claimed_at." - added
Output schema / properties / claimed / properties / claimed_atAdded value: +{ + "description": "When the discovery feed last presented these claimed values for this URL.", + "type": [ + "string", + "integer", + "null" + ] +} - added
Output schema / properties / claimed / properties / facilitatorAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / claimed / properties / payTo / descriptionAdded value: +"The recipient the catalog listing claimed, as of claimed_at. Compare with observed.payTo."
1 tool update
- Removed
route
4 tool updates
- Changed
check1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "authorization_used", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "binding_unavailable", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
preview1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "authorization_used", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "binding_unavailable", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
route1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "authorization_used", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "binding_unavailable", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
validate1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "authorization_used", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "binding_unavailable", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
2 tool updates
- Changed
check1 field changed- changed
Output schema / properties / billing / descriptionPrevious value: -"402Signal routing-fee outcome. Seller payment is separate."New value: +"402Signal checking-fee outcome. Seller payment is separate."
- Changed
route1 field changed- changed
Output schema / properties / billing / descriptionPrevious value: -"402Signal routing-fee outcome. Seller payment is separate."New value: +"402Signal checking-fee outcome. Seller payment is separate."
4 tool updates
- Changed
check3 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo" +] - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo" +] - changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
preview3 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo" +] - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo" +] - changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
route3 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo" +] - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand", - "polygon", - "arbitrum", - "monad", - "worldchain", - "xlayer", - "bnb", - "hyperevm", - "ethereum", - "optimism", - "avalanche" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche", + "tempo" +] - changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
validate1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - "invalid_session_shape", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "authorization_used", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
3 tool updates
- Changed
check5 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche" +] - changed
Input schema / properties / prefer_network / descriptionPrevious value: -"Weak ranking preference only. Ranks this pay-in rail first but still searches and selects across all supported rails. Not a filter. Use networks for a hard policy lock."New value: +"Weak ranking preference only. Ranks this seller network first but still searches and selects across all supported networks. Not a filter. Use networks for a hard policy lock. Observed networks: base, solana, algorand and the EVM chains polygon, arbitrum, monad, worldchain, xlayer, bnb, hyperevm, ethereum, optimism, avalanche (CAIP-2 ids such as eip155:137 are accepted); the checking fee itself is paid on base, solana or algorand." - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche" +] - changed
Output schema / properties / pq_trust / properties / transparency / properties / state / enumPrevious value: -[ - "logged_uncheckpointed", - "checkpoint_signed", - "authorized", - "submitted", - "confirmed", - "unavailable" -]New value: +[ + "outbox_queued", + "logged_uncheckpointed", + "checkpoint_signed", + "authorized", + "submitted", + "confirmed", + "unavailable" +] - changed
Output schema / properties / pq_trust / properties / transparency / properties / status / enumPrevious value: -[ - "pending", - "logged_uncheckpointed", - "unavailable" -]New value: +[ + "pending", + "queued", + "logged_uncheckpointed", + "unavailable" +]
- Changed
preview3 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche" +] - changed
Input schema / properties / prefer_network / descriptionPrevious value: -"Weak ranking preference only. Ranks this pay-in rail first but still searches and selects across all supported rails. Not a filter. Use networks for a hard policy lock."New value: +"Weak ranking preference only. Ranks this seller network first but still searches and selects across all supported networks. Not a filter. Use networks for a hard policy lock. Observed networks: base, solana, algorand and the EVM chains polygon, arbitrum, monad, worldchain, xlayer, bnb, hyperevm, ethereum, optimism, avalanche (CAIP-2 ids such as eip155:137 are accepted); the checking fee itself is paid on base, solana or algorand." - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche" +]
- Changed
route5 fields changed- changed
Input schema / properties / networks / items / enumPrevious value: -[ - "base", - "solana", - "algorand" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche" +] - changed
Input schema / properties / prefer_network / descriptionPrevious value: -"Weak ranking preference only. Ranks this pay-in rail first but still searches and selects across all supported rails. Not a filter. Use networks for a hard policy lock."New value: +"Weak ranking preference only. Ranks this seller network first but still searches and selects across all supported networks. Not a filter. Use networks for a hard policy lock. Observed networks: base, solana, algorand and the EVM chains polygon, arbitrum, monad, worldchain, xlayer, bnb, hyperevm, ethereum, optimism, avalanche (CAIP-2 ids such as eip155:137 are accepted); the checking fee itself is paid on base, solana or algorand." - changed
Input schema / properties / prefer_network / enumPrevious value: -[ - "base", - "solana", - "algorand" -]New value: +[ + "base", + "solana", + "algorand", + "polygon", + "arbitrum", + "monad", + "worldchain", + "xlayer", + "bnb", + "hyperevm", + "ethereum", + "optimism", + "avalanche" +] - changed
Output schema / properties / pq_trust / properties / transparency / properties / state / enumPrevious value: -[ - "logged_uncheckpointed", - "checkpoint_signed", - "authorized", - "submitted", - "confirmed", - "unavailable" -]New value: +[ + "outbox_queued", + "logged_uncheckpointed", + "checkpoint_signed", + "authorized", + "submitted", + "confirmed", + "unavailable" +] - changed
Output schema / properties / pq_trust / properties / transparency / properties / status / enumPrevious value: -[ - "pending", - "logged_uncheckpointed", - "unavailable" -]New value: +[ + "pending", + "queued", + "logged_uncheckpointed", + "unavailable" +]
1 tool update
- Added
check
1 tool update
- Changed
route4 fields changed- removed
Output schema / properties / billing / properties / amount_atomic / constRemoved value: -"3000" - added
Output schema / properties / billing / properties / amount_atomic / enumAdded value: +[ + "3000", + "5000" +] - removed
Output schema / properties / billing / properties / display_amount / constRemoved value: -"$0.003" - added
Output schema / properties / billing / properties / display_amount / enumAdded value: +[ + "$0.003", + "$0.005" +]
3 tool updates
- Changed
preview1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
route1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
- Changed
validate1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - "window_spent", - "fingerprint_miss", - "scheme_mismatch", - "network_mismatch", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + "invalid_session_shape", + null +]
3 tool updates
- Changed
preview1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + null +]
- Changed
route1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + null +]
- Changed
validate1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "unlisted", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + "window_spent", + "fingerprint_miss", + "scheme_mismatch", + "network_mismatch", + null +]
3 tool updates
- Changed
preview1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + null +]
- Changed
route1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + null +]
- Changed
validate1 field changed- changed
Output schema / properties / miss_reason / enumPrevious value: -[ - "no_candidates", - "no_402_envelope", - "no_payto", - "reachable_200", - "probe_timeout", - "quote_expired", - "invalid_need", - "upstream_5xx", - "ssrf", - "no_input_schema", - "constraints_unmet", - "probe_budget_exhausted", - "probe_limit_reached", - "unsafe_to_probe", - "settlement_unknown", - "probe_capacity", - null -]New value: +[ + "no_candidates", + "no_402_envelope", + "no_payto", + "reachable_200", + "probe_timeout", + "quote_expired", + "invalid_need", + "upstream_5xx", + "ssrf", + "unlisted", + "no_input_schema", + "constraints_unmet", + "probe_budget_exhausted", + "probe_limit_reached", + "unsafe_to_probe", + "settlement_unknown", + "probe_capacity", + null +]
1 tool update
- Changed
route3 fields changed- changed
Input schema / properties / require_route_binding / descriptionPrevious value: -"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. If the ranked winner cannot bind, the router may fall through to the next already-probed selectable candidate that can; there is no unguarded settle. HTTP 503 route_binding_unavailable only when none remain bindable (a free typed miss). Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding"New value: +"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. If the ranked winner cannot bind, the router may fall through to the next already-probed selectable candidate that can; there is no unguarded settle. HTTP 503 route_binding_unavailable only when none remain bindable (a free typed miss). wrapExactAuthorize reports state=binding_unavailable with keep_calling_route true; that is policy working, not a crash. Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding" - changed
Output schema / properties / binding_error / descriptionPrevious value: -"HTTP 503 when require_route_binding is true and no remaining already-probed selectable candidate could bind."New value: +"HTTP 503 when require_route_binding is true and no remaining already-probed selectable candidate could bind. Policy working, not a crash; wrapExactAuthorize reports state=binding_unavailable with keep_calling_route true." - changed
Output schema / properties / decision_binding / descriptionPrevious value: -"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. If the ranked winner cannot bind, the router may fall through to the next already-probed selectable candidate that can; there is no unguarded settle. HTTP 503 route_binding_unavailable only when none remain bindable (a free typed miss). Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding"New value: +"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. If the ranked winner cannot bind, the router may fall through to the next already-probed selectable candidate that can; there is no unguarded settle. HTTP 503 route_binding_unavailable only when none remain bindable (a free typed miss). wrapExactAuthorize reports state=binding_unavailable with keep_calling_route true; that is policy working, not a crash. Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding"
1 tool update
- Changed
route4 fields changed- changed
Input schema / properties / require_route_binding / descriptionPrevious value: -"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. Unprovable binding is a free typed miss. Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding"New value: +"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. If the ranked winner cannot bind, the router may fall through to the next already-probed selectable candidate that can; there is no unguarded settle. HTTP 503 route_binding_unavailable only when none remain bindable (a free typed miss). Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding" - added
Output schema / properties / binding_error / descriptionAdded value: +"HTTP 503 when require_route_binding is true and no remaining already-probed selectable candidate could bind." - added
Output schema / properties / compared / descriptionAdded value: +"Slim probe rows. selectable, payTo_pending, payTo_changed, risk and excluded_reason show why a live row was not eligible. excluded_reason binding_unavailable marks a skipped binding failure." - changed
Output schema / properties / decision_binding / descriptionPrevious value: -"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. Unprovable binding is a free typed miss. Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding"New value: +"Opt in to proof_carrying_route_v1 and a signed v4 receipt. Requires exact x402 v2 terms observed on the same HTTPS URL, method and probe body, without redirects or unresolved policy. If the ranked winner cannot bind, the router may fall through to the next already-probed selectable candidate that can; there is no unguarded settle. HTTP 503 route_binding_unavailable only when none remain bindable (a free typed miss). Implies require_transparency; a receipt failure after settlement still reports settled=true. Buyer must verify with a pinned log key and recheck the actual seller challenge immediately before signing. Preserve raw response JSON. The default 60-second freshness window starts at observation, not receipt issuance. Expiry or a changed seller challenge does not undo a settled routing fee. Default false; existing requests keep the v3 receipt path. This is not a payment authorization. Guide: https://402signal.com/developers#route-binding"
1 tool update
- Changed
route1 field changed- changed
Input schema / properties / require_invocable / descriptionPrevious value: -"If true, drop live hits without an input schema."New value: +"If true, drop live hits without an input schema. An explicit empty-object schema (type object, no properties or required fields) advertises no required inputs and counts as present. A bazaar HTTP GET with empty queryParams and no required body is the same signal. It does not guarantee the seller call succeeds. Absent or refused schema is not invocable."
2 tool updates
- Changed
route3 fields changed- changed
Output schema / properties / claimed / properties / contract / properties / client_warning / descriptionPrevious value: -"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref."New value: +"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref. Unsafe remote schema material is refused, not rewritten as a different offer." - changed
Output schema / properties / target / properties / inputSchema / descriptionPrevious value: -"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref."New value: +"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref. Unsafe remote schema material is refused, not rewritten as a different offer." - changed
Output schema / properties / target / properties / outputSchema / descriptionPrevious value: -"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref."New value: +"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref. Unsafe remote schema material is refused, not rewritten as a different offer."
- Changed
validate1 field changed- changed
Output schema / properties / claimed / properties / contract / properties / client_warning / descriptionPrevious value: -"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref."New value: +"Seller inputSchema/outputSchema values are catalog_claimed and untrusted. Do not concatenate them into system prompts. Do not fetch remote $ref. Unsafe remote schema material is refused, not rewritten as a different offer."
Related MCP Connectors
Paid OpenAPI audit and API change detection for agents. $0.10 USDC per analysis via x402 on Base.
Find live x402 APIs for any task (0.005 USDC, no match no charge); free x402 readiness checks.
Outcome-first agent fallback: free discovery, minimal routing, declared costs, verified execution.
Find paid APIs, check access policy and price, and route x402 requests. No autonomous spending.
Related MCP Servers
AlicenseAqualityDmaintenancePre-trade DeFi intelligence for AI agents. 20 paid x402 endpoints, USDC on Base.2390 npm1MIT- AlicenseNot gradedqualityCmaintenanceLets AI agents fetch live gas prices across multiple EVM chains, compare USD transfer costs, and find the cheapest chain in a single call, with pay-per-call billing via x402.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to run a free fail-closed preflight gate on x402 payment challenges and transactions before signing, plus five USDC-paid on-chain truth checks covering arbitrage profitability, token safety, swap routing, quote validation, and trade sizing. Each check returns a verdict with pinned-block evidence and a verifiable receipt.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceSwitchBord is a free, live router for paid agent APIs on x402 and MPP. Your agent asks for a task in plain words ("search the web", "ETH price"); SwitchBord answers with the sellers that are working, cheapest and fastest right now, checked live just before it answers, plus backups. One inventory of 33,000+ paid endpoints from Coinbase Bazaar and mpp.dev, rebuilt daily. No signup, no keys.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.