check_merchant
Before paying an unfamiliar merchant via x402, including one just discovered through a marketplace like Coinbase's x402 Bazaar, call this for a machine-readable assessment of their observable on-chain payment behavior, on Base or Solana. Returns a recommendation (PROCEED / CAUTION / INSUFFICIENT_SIGNAL) a payment policy can branch on directly, plus supporting evidence: trust tier, confidence, payer diversity, transaction history, category (data_api/compute/content_generation/financial_data/storage/other), known platform URL(s), and the merchant's own advertised price(s) compared against category peers, with no caller-supplied price required for that. This is decision support drawn from observed behavior, not a certification. PROCEED means the available evidence doesn't show cause for concern, not a guarantee of safety. INSUFFICIENT_SIGNAL means there isn't enough history to say either way, distinct from an actual concern. Add a specific quoted price to also check that exact figure against comparable sellers. $0.01 USDC per check, paid via x402.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Optional. Payment asset/token from the 402 response's accepts[].asset. Not required to score. | |
| price | No | Quoted price in USD-equivalent, if checking fairness | |
| amount | No | Optional. Atomic payment amount from the 402 response's accepts[].amount, if preferred over `price`. Not required to score. | |
| network | No | Optional. CAIP-2 network id from the 402 response's accepts[].network (e.g. "eip155:8453"), if already on hand. Not required to score. | |
| service_url | No | Optional. The resource/service URL the agent was trying to reach. Not required to score. | |
| resource_type | No | Deprecated, accepted but unused. Price-fairness now compares against the merchant's own on-chain-derived category automatically, no need to supply this. | |
| merchant_wallet_address | Yes | Merchant's receiving wallet address: a Base (0x...) or Solana (base58) address. Usually extractable directly from a 402 Payment Required response's accepts[].payTo. |