{"x402Version":2,"kind":"resource-server","name":"Agent Mercantile","description":"Pay-per-call machine services for web context, webpage change detection, x402 service-change snapshot, allowance exposure, portfolio preflight, factual DeFi venue snapshots, Bazaar visibility snapshots, Bazaar visibility-change comparison, and transaction-gas preflight.","docs":"https://agentmercantile.com/developers/","catalog":"https://api.agentmercantile.com/v1/catalog","openapi":"https://api.agentmercantile.com/openapi.json","payment":{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","note":"x402 v2 exact on Base USDC. A syntactically valid unpaid POST returns HTTP 402. Malformed or unsupported input returns HTTP 400 HOLD without a payable contract. Provider work occurs only after payment."},"families":[{"family":"WEB_INTELLIGENCE","label":"Web Intelligence","machines":["VM01","VM07"]},{"family":"ONCHAIN_PREFLIGHT","label":"Onchain Preflight","machines":["VM02","VM03","VM04","VM06"]},{"family":"AGENT_COMMERCE","label":"Agent Commerce","machines":["VM05","VM08","VM09","VM10","VM11"]}],"resources":[{"machine":"VM01","family":"WEB_INTELLIGENCE","name":"URL Context Pack","purpose":"Fetch one public HTTPS webpage into deterministic structured JSON context: canonical URL, title/description, headings, main text, JSON-LD types, freshness observations, size, evidence, and limitations.","description":"Fetch deterministic, token-efficient context from one public HTTPS URL: canonical URL, title/description, headings, clean main content, structured-data types, freshness observations, evidence, and limitations. Call when you need a bounded JSON reading of one public page without a browser, login, crawl, or LLM.","url":"https://api.agentmercantile.com/v1/url-context","operationId":"postVm01UrlContext","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.01","price_atomic":10000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"One absolute public HTTPS URL on port 443. No credentials in the URL. http, non-443 ports, and private/non-public targets are rejected without fetch."}}},"input_example":{"url":"https://example.com/"},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/UrlContextResponse","methodology_version":"url-context-0.1.0","tags":["url-context","webpage-context","web-extraction","page-evidence","structured-webpage"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://example.com/"},"method":"POST"},"output":{"type":"json","example":{"status":"OK","methodology_version":"url-context-0.1.0","checked_at":"2026-08-19T00:00:00.000Z","requested_url":"https://example.com/","final_url":"https://example.com/","http":{"status":200,"content_type":"text/html; charset=UTF-8","redirect_count":0},"metadata":{"title":"Example Domain","description":null,"canonical":"https://example.com/"},"outline":[{"level":1,"text":"Example Domain"}],"content":{"text":"This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.","extraction_basis":"body-heuristic","characters":155,"approx_tokens":39,"token_estimate_method":"ceil(characters/4)","truncated":false},"structured_data":{"json_ld_types":[]},"freshness":{"observations":[]},"size":{"source_bytes_read":1256,"output_json_bytes":1400,"normalized_content_characters":155},"evidence":{"final_response_headers":{"content-type":"text/html; charset=UTF-8"},"notes":[]},"limitations":[]}},"description":"Fetch deterministic, token-efficient context from one public HTTPS URL: canonical URL, title/description, headings, clean main content, structured-data types, freshness observations, evidence, and limitations. Call when you need a bounded JSON reading of one public page without a browser, login, crawl, or LLM."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"One absolute public HTTPS URL on port 443. No credentials in the URL. http, non-443 ports, and private/non-public targets are rejected without fetch."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","methodology_version","requested_url","content","limitations"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"methodology_version":{"type":"string","enum":["url-context-0.1.0"]},"checked_at":{"type":"string","description":"ISO-8601 timestamp when extraction ran."},"requested_url":{"type":"string","description":"The buyer-supplied URL after request validation."},"final_url":{"type":["string","null"],"description":"Final URL after bounded redirects, or null on HOLD."},"http":{"type":"object","properties":{"status":{"type":["integer","null"]},"content_type":{"type":["string","null"]},"redirect_count":{"type":"integer"}}},"metadata":{"type":"object","properties":{"title":{"type":["string","null"]},"description":{"type":["string","null"]},"canonical":{"type":["string","null"]}}},"outline":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer"},"text":{"type":"string"}}}},"content":{"type":"object","properties":{"text":{"type":"string"},"extraction_basis":{"type":"string","enum":["main","article","body-heuristic","none"]},"characters":{"type":"integer"},"approx_tokens":{"type":"integer"},"token_estimate_method":{"type":"string"},"truncated":{"type":"boolean"}}},"structured_data":{"type":"object","properties":{"json_ld_types":{"type":"array","items":{"type":"string"}}}},"freshness":{"type":"object","properties":{"observations":{"type":"array"}}},"size":{"type":"object"},"evidence":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM02","family":"ONCHAIN_PREFLIGHT","name":"Allowance Exposure Preflight","purpose":"Read one Base ERC-20 owner/token/spender direct allowance at one block, compare it with the owner's current token balance, and return factual exposure flags including max-uint256 and effectively-unlimited approvals.","description":"Inspect one Base ERC-20 owner/token/spender allowance with same-block balance and token metadata plus factual exposure flags. No wallet access, signing, or transaction execution. Call when you need a same-block Base allowance-versus-balance snapshot for one owner/token/spender triple.","url":"https://api.agentmercantile.com/v1/allowance-exposure","operationId":"postVm02AllowanceExposure","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.01","price_atomic":10000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["owner","token","spender"],"additionalProperties":false,"properties":{"owner":{"type":"string","description":"ERC-20 token owner address. 0x-prefixed 20-byte EVM address."},"token":{"type":"string","description":"ERC-20 token contract. 0x-prefixed 20-byte EVM address. Zero address is rejected."},"spender":{"type":"string","description":"Spender address. 0x-prefixed 20-byte EVM address."}}},"input_example":{"owner":"0x0000000000000000000000000000000000000001","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","spender":"0x0000000000000000000000000000000000000002"},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/AllowanceExposureResponse","methodology_version":"allowance-exposure-0.1.0","tags":["erc20-allowance","spender-allowance","token-approval","allowance-exposure","unlimited-approval"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"owner":"0x0000000000000000000000000000000000000001","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","spender":"0x0000000000000000000000000000000000000002"},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM02","methodology_version":"allowance-exposure-0.1.0","network":"eip155:8453","block_number":"12345678","owner":"0x0000000000000000000000000000000000000001","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","spender":"0x0000000000000000000000000000000000000002","token_metadata":{"symbol":"USDC","decimals":6},"allowance_raw":"1000000","allowance_adjusted":"1","balance_raw":"500000","balance_adjusted":"0.5","allowance_balance_exposure_raw":"500000","allowance_balance_exposure_adjusted":"0.5","allowance_covers_current_balance":true,"max_uint256_approval":false,"effectively_unlimited":false,"evidence":{"block_number":"12345678","same_block_reads":true,"token_code_present":true},"limitations":["Base Mainnet only (eip155:8453)."]}},"description":"Inspect one Base ERC-20 owner/token/spender allowance with same-block balance and token metadata plus factual exposure flags. No wallet access, signing, or transaction execution. Call when you need a same-block Base allowance-versus-balance snapshot for one owner/token/spender triple."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["owner","token","spender"],"additionalProperties":false,"properties":{"owner":{"type":"string","description":"ERC-20 token owner address. 0x-prefixed 20-byte EVM address."},"token":{"type":"string","description":"ERC-20 token contract. 0x-prefixed 20-byte EVM address. Zero address is rejected."},"spender":{"type":"string","description":"Spender address. 0x-prefixed 20-byte EVM address."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","network","block_number","owner","token","spender","token_metadata","allowance_raw","allowance_adjusted","balance_raw","balance_adjusted","allowance_balance_exposure_raw","allowance_balance_exposure_adjusted","allowance_covers_current_balance","max_uint256_approval","effectively_unlimited","evidence","limitations"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","HOLD"]},"machine":{"type":"string","enum":["VM02"]},"methodology_version":{"type":"string","enum":["allowance-exposure-0.1.0"]},"network":{"type":"string","enum":["eip155:8453"]},"block_number":{"type":["string","null"]},"owner":{"type":"string"},"token":{"type":"string"},"spender":{"type":"string"},"token_metadata":{"type":"object","properties":{"symbol":{"type":["string","null"]},"decimals":{"type":["integer","null"]}}},"allowance_raw":{"type":["string","null"],"description":"uint256 as a decimal integer string"},"allowance_adjusted":{"type":["string","null"]},"balance_raw":{"type":["string","null"]},"balance_adjusted":{"type":["string","null"]},"allowance_balance_exposure_raw":{"type":["string","null"]},"allowance_balance_exposure_adjusted":{"type":["string","null"]},"allowance_covers_current_balance":{"type":"boolean"},"max_uint256_approval":{"type":"boolean"},"effectively_unlimited":{"type":"boolean"},"evidence":{"type":"object","properties":{"block_number":{"type":["string","null"]},"same_block_reads":{"type":"boolean"},"token_code_present":{"type":["boolean","null"]}}},"limitations":{"type":"array","items":{"type":"string"}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM03","family":"ONCHAIN_PREFLIGHT","name":"Portfolio Preflight","purpose":"Return a bounded Ethereum/Base discovery snapshot of at most 40 holdings, plus overflow_holding_count, overflow_count_complete, and a pre-action evidence-readiness summary. Not complete portfolio enumeration.","description":"Bounded Ethereum/Base wallet/portfolio holdings evidence: inventory, partial DEX pricing coverage, concentration, and evidence gaps. Pre-action evidence-readiness check for whether that evidence is sufficiently complete for downstream factual reasoning. Not guaranteed net worth, investment advice, transaction approval, or execution.","url":"https://api.agentmercantile.com/v1/portfolio-preflight","operationId":"postVm03PortfolioPreflight","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.01","price_atomic":10000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["address"],"additionalProperties":false,"properties":{"address":{"type":"string","description":"One public 0x-prefixed 20-byte EVM address."},"chains":{"type":"array","minItems":1,"maxItems":2,"uniqueItems":true,"items":{"type":"string","enum":["eip155:1","eip155:8453"]},"description":"Optional. Defaults to Ethereum and Base."},"declared_holdings":{"type":"array","maxItems":10,"items":{"type":"object","required":["chain","token","quantity_raw"],"additionalProperties":false,"properties":{"chain":{"type":"string","enum":["eip155:1","eip155:8453"]},"token":{"type":"string","description":"Nonzero ERC-20 contract."},"quantity_raw":{"type":"string","description":"uint256 decimal integer string. Hint only."}}}}}},"input_example":{"address":"0x0000000000000000000000000000000000000001","chains":["eip155:1","eip155:8453"]},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/PortfolioPreflightResponse","methodology_version":"portfolio-preflight-0.2.0","tags":["wallet-holdings","portfolio-holdings","erc20-holdings","portfolio-composition","wallet-inventory"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"address":"0x0000000000000000000000000000000000000001","chains":["eip155:1","eip155:8453"]},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM03","methodology_version":"portfolio-preflight-0.2.0","checked_at":"2026-08-21T00:00:00.000Z","address":"0x0000000000000000000000000000000000000001","requested_chains":["eip155:1","eip155:8453"],"chains_run":["eip155:1","eip155:8453"],"chain_results":[{"chain":"eip155:1","inventory_status":"OK","block_number_observed":"1","inventory_complete":true,"provider_response_complete":true,"discovery_capped":false,"pages_read":1}],"valuation":{"quote_basis":"PARTIAL_DEX_QUOTED_COMPOSITION","priced_usd":null,"priced_holding_count":0,"unpriced_holding_count":2,"as_of":"2026-08-21T00:00:00.000Z"},"concentration":{"concentrated":false,"basis":"PRICED_HOLDINGS_ONLY","threshold":"0.40","largest_priced_share":null,"largest_priced_holding":null},"holdings":[{"chain":"eip155:1","asset_kind":"native","token":null,"symbol":"ETH","decimals":18,"balance_raw":"0","balance_adjusted":"0","price_usd":null,"priced_usd":null,"liquidity_usd":null,"volume_h24_usd":null,"pair_address":null,"pair_url":null,"pair_created_at":null,"observations":["NO_DEX_MARKET"],"confidence":"MEDIUM","evidence_ids":["e-inv-eip155:1"]}],"returned_holding_count":1,"overflow_holding_count":0,"overflow_count_complete":true,"sources":[{"id":"src-inv-eip155:1","role":"inventory","provider":"alchemy","chain":"eip155:1","retrieved_at":"2026-08-21T00:00:00.000Z","block_number":"1","request_scope":"native+erc20_unknown","pagination_complete":true,"provider_response_complete":true,"discovery_capped":false,"limitations":[]}],"evidence":[{"id":"e-inv-eip155:1","kind":"inventory","summary":"Bounded native and ERC-20 discovery."}],"limitations":["This is a bounded DEX-quoted composition, not guaranteed net worth.","Discovery returns at most 40 holdings. This example returns 1 holding, overflow_holding_count=0, and overflow_count_complete=true. overflow_holding_count>0 means additional holdings were omitted. overflow_count_complete=false means that omitted-count total is not guaranteed complete. status=PARTIAL can be the expected truthful state when the 40-holding cap is reached and does not necessarily mean the request failed. Not complete portfolio enumeration."],"confidence":"MEDIUM","readiness":{"purpose":"PRE_ACTION_EVIDENCE_READINESS","status":"PARTIAL","evidence_sufficient_for_reasoning":false,"inventory_complete":true,"pricing_coverage":{"priced_holding_count":0,"unpriced_holding_count":1,"priced_share_of_returned_holdings":"0"},"concentration_flag":false,"factual_flags":["NO_DEX_MARKET"],"evidence_gaps":["INCOMPLETE_PRICING_COVERAGE","UNPRICED_HOLDINGS"]}}},"description":"Bounded Ethereum/Base discovery snapshot: at most 40 holdings returned. overflow_holding_count>0 means additional holdings were omitted. overflow_count_complete=false means that omitted-count total is not guaranteed complete. status=PARTIAL can be the expected truthful state when the 40-holding cap is reached and does not necessarily mean the request failed. Not complete portfolio enumeration, net worth, investment advice, or execution."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["address"],"additionalProperties":false,"properties":{"address":{"type":"string","description":"One public 0x-prefixed 20-byte EVM address."},"chains":{"type":"array","minItems":1,"maxItems":2,"uniqueItems":true,"items":{"type":"string","enum":["eip155:1","eip155:8453"]},"description":"Optional. Defaults to Ethereum and Base."},"declared_holdings":{"type":"array","maxItems":10,"items":{"type":"object","required":["chain","token","quantity_raw"],"additionalProperties":false,"properties":{"chain":{"type":"string","enum":["eip155:1","eip155:8453"]},"token":{"type":"string","description":"Nonzero ERC-20 contract."},"quantity_raw":{"type":"string","description":"uint256 decimal integer string. Hint only."}}}}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","checked_at","address","requested_chains","chains_run","chain_results","valuation","concentration","holdings","returned_holding_count","overflow_holding_count","overflow_count_complete","sources","evidence","limitations","confidence","readiness"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"],"description":"OK, PARTIAL, or HOLD. PARTIAL can be the expected truthful state for a large wallet when discovery reaches the 40-holding cap. PARTIAL does not necessarily mean the request failed."},"machine":{"type":"string","enum":["VM03"]},"methodology_version":{"type":"string","enum":["portfolio-preflight-0.2.0"]},"checked_at":{"type":"string"},"address":{"type":"string"},"requested_chains":{"type":"array","items":{"type":"string"}},"chains_run":{"type":"array","items":{"type":"string"}},"chain_results":{"type":"array"},"valuation":{"type":"object"},"concentration":{"type":"object"},"holdings":{"type":"array","description":"Bounded discovery snapshot. At most 40 holdings are returned. Not complete portfolio enumeration."},"returned_holding_count":{"type":"integer","description":"Number of holdings included in holdings. Maximum 40."},"overflow_holding_count":{"type":"integer","description":"Discovered holdings omitted from holdings. Greater than 0 means additional holdings exist beyond the returned snapshot."},"overflow_count_complete":{"type":"boolean","description":"Whether overflow_holding_count is a complete omitted total. false means that omitted-count total is not guaranteed complete. Treat false as an explicit limitation rather than an exhaustive count."},"sources":{"type":"array"},"evidence":{"type":"array"},"limitations":{"type":"array","items":{"type":"string"}},"confidence":{"type":"string","enum":["HIGH","MEDIUM","LOW"]},"readiness":{"type":"object","required":["purpose","status","evidence_sufficient_for_reasoning","inventory_complete","pricing_coverage","concentration_flag","factual_flags","evidence_gaps"],"properties":{"purpose":{"type":"string","enum":["PRE_ACTION_EVIDENCE_READINESS"]},"status":{"type":"string","enum":["READY","PARTIAL","HOLD"]},"evidence_sufficient_for_reasoning":{"type":"boolean"},"inventory_complete":{"type":"boolean"},"pricing_coverage":{"type":"object"},"concentration_flag":{"type":"boolean"},"factual_flags":{"type":"array","items":{"type":"string"}},"evidence_gaps":{"type":"array","items":{"type":"string"}}}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM04","family":"ONCHAIN_PREFLIGHT","name":"Productive Venue Snapshot","purpose":"Observe currently factual Aave V3 lending supply APR and Lido staking APR for one supported Ethereum or Base asset from a frozen protocol set, with timestamps, evidence, explicit rate labels, optional filters/sort, and limitations.","description":"Observe factual Aave V3 lending supply APR and Lido staking APR for one Ethereum/Base asset, with timestamps, evidence, explicit rate labels, optional filters/sort, and limitations. No ranking or investment recommendation. Call when you need currently observed supported-venue rates for one asset, not a ranking.","url":"https://api.agentmercantile.com/v1/productive-venue-snapshot","operationId":"postVm04ProductiveVenueSnapshot","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.01","price_atomic":10000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["chain_id","asset"],"additionalProperties":false,"properties":{"chain_id":{"type":"integer","enum":[1,8453],"description":"Ethereum 1 or Base 8453 only."},"asset":{"type":"object","description":"native, erc20, or allowlisted symbol asset object","additionalProperties":false,"required":["kind"],"properties":{"kind":{"type":"string","enum":["native","erc20","symbol"]},"address":{"type":"string","description":"Required for erc20. Exact nonzero 20-byte EVM address."},"symbol":{"type":"string","description":"Required for kind=symbol. Allowlist ETH, WETH, USDC, stETH, wstETH. Chain-specific."}}},"venue_types":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["lending","liquid_staking"]}},"protocols":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["aave_v3","lido"]}},"sort":{"type":"string","enum":["protocol","rate_desc","rate_asc"],"description":"Objective sort only. rate_* uses primary_apr. Null rates sort last. Not a recommendation."},"limit":{"type":"integer","minimum":1,"maximum":20,"description":"Default 20. Applied after filters and sort."}}},"input_example":{"chain_id":1,"asset":{"kind":"native"}},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/ProductiveVenueResponse","methodology_version":"productive-venue-0.2.0","tags":["yield","productive-venue","lending-rate","supply-apr","staking-apr"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"chain_id":1,"asset":{"kind":"native"}},"method":"POST"},"output":{"type":"json","example":{"status":"OK","classification":"OBSERVED_COMPLETE","machine":"VM04","methodology_version":"productive-venue-0.2.0","protocol_set_version":"aave-v3-lido-eth-base-2026-08-22-v1","chain_id":1,"asset":{"kind":"native"},"request":{"chain_id":1,"asset":{"kind":"native"},"venue_types":null,"protocols":null,"sort":"protocol","limit":20},"resolved":{"chain_id":1,"asset":{"kind":"native"},"symbol":"ETH"},"sort":{"order":"protocol","field":"protocol","label":"objective_sort_not_a_recommendation"},"result_count":0,"truncated":false,"omissions":[],"retrieved_at":"2026-08-22T00:00:00.000Z","block_number":"1","cached":false,"observation_age_ms":0,"venues":[],"limitations":["This is a factual snapshot of supported protocol state. It is not investment advice, not a recommendation, and not a complete map of DeFi."],"errors":[],"evidence":[]}},"description":"Observe factual Aave V3 lending supply APR and Lido staking APR for one Ethereum/Base asset, with timestamps, evidence, explicit rate labels, optional filters/sort, and limitations. No ranking or investment recommendation. Call when you need currently observed supported-venue rates for one asset, not a ranking."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["chain_id","asset"],"additionalProperties":false,"properties":{"chain_id":{"type":"integer","enum":[1,8453],"description":"Ethereum 1 or Base 8453 only."},"asset":{"type":"object","description":"native, erc20, or allowlisted symbol asset object","additionalProperties":false,"required":["kind"],"properties":{"kind":{"type":"string","enum":["native","erc20","symbol"]},"address":{"type":"string","description":"Required for erc20. Exact nonzero 20-byte EVM address."},"symbol":{"type":"string","description":"Required for kind=symbol. Allowlist ETH, WETH, USDC, stETH, wstETH. Chain-specific."}}},"venue_types":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["lending","liquid_staking"]}},"protocols":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["aave_v3","lido"]}},"sort":{"type":"string","enum":["protocol","rate_desc","rate_asc"],"description":"Objective sort only. rate_* uses primary_apr. Null rates sort last. Not a recommendation."},"limit":{"type":"integer","minimum":1,"maximum":20,"description":"Default 20. Applied after filters and sort."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","classification","machine","methodology_version","protocol_set_version","chain_id","asset","request","resolved","sort","result_count","truncated","omissions","retrieved_at","venues","limitations","errors","evidence"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"classification":{"type":"string","enum":["OBSERVED_COMPLETE","OBSERVED_PARTIAL","OBSERVED_EMPTY_SUPPORTED_SET","HOLD_UPSTREAM","HOLD_OUTPUT_REFUSED"]},"machine":{"type":"string","enum":["VM04"]},"methodology_version":{"type":"string","enum":["productive-venue-0.2.0"]},"protocol_set_version":{"type":"string"},"chain_id":{"type":"integer","enum":[1,8453]},"asset":{"type":"object"},"retrieved_at":{"type":"string"},"request":{"type":"object"},"resolved":{"type":"object"},"sort":{"type":"object"},"result_count":{"type":"integer"},"truncated":{"type":"boolean"},"omissions":{"type":"array","items":{"type":"string"}},"block_number":{"type":"string"},"cached":{"type":"boolean"},"observation_age_ms":{"type":"integer"},"venues":{"type":"array"},"limitations":{"type":"array","items":{"type":"string"}},"errors":{"type":"array"},"evidence":{"type":"array"}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM05","family":"AGENT_COMMERCE","name":"Bazaar Visibility Snapshot","purpose":"Observe, for one x402 seller resource, whether Coinbase Bazaar merchant discovery currently lists that exact resource, what public Bazaar metadata describes it, and where (if anywhere) it appears in the first 20 results for 1–3 buyer-supplied job-language searches.","description":"Observe whether one x402 seller resource appears in Coinbase Bazaar merchant discovery and where the exact resource sits in the first 20 results for 1–3 buyer-supplied job-language searches. Factual evidence only. Call when you need a point-in-time Bazaar presence and top-20 search observation, not a trust, SEO, or remediation score.","url":"https://api.agentmercantile.com/v1/bazaar-visibility","operationId":"postVm05BazaarVisibilitySnapshot","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.01","price_atomic":10000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["resource","pay_to","queries"],"additionalProperties":false,"properties":{"resource":{"type":"string","format":"uri","description":"Exactly one absolute HTTPS x402 resource URL identifier. Treated as an identifier only; never fetched or proxied. Fragments, credentials, non-HTTPS, and non-443 ports are rejected."},"pay_to":{"type":"string","description":"Merchant payTo address. 0x-prefixed 20-byte EVM address."},"queries":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","minLength":2,"maxLength":400,"description":"Buyer-job search string. Coinbase search maximum is 400 characters."},"description":"1 to 3 buyer-supplied job-language searches. No hidden default query."}}},"input_example":{"resource":"https://api.example.com/v1/paid","pay_to":"0x0000000000000000000000000000000000000001","queries":["example paid json api"]},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/BazaarVisibilityResponse","methodology_version":"bazaar-visibility-0.1.0","tags":["bazaar-visibility","x402-discovery","merchant-lookup","search-position","seller-preflight"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource":"https://api.example.com/v1/paid","pay_to":"0x0000000000000000000000000000000000000001","queries":["example paid json api"]},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM05","methodology_version":"bazaar-visibility-0.1.0","checked_at":"2026-08-28T00:00:00.000Z","resource":"https://api.example.com/v1/paid","pay_to":"0x0000000000000000000000000000000000000001","merchant":{"presence":"FOUND","pagination":{"limit":20,"offset":0,"total":1,"returned":1},"match":{"resource":"https://api.example.com/v1/paid","type":"http","x402_version":2,"description":"Example paid resource","last_updated":"2026-08-28T00:00:00.000Z","accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"10000","pay_to":"0x0000000000000000000000000000000000000001","max_timeout_seconds":60}],"extensions_summary":{"names":["bazaar"],"bazaar_info_present":true,"bazaar_schema_present":true},"quality":{"l30_days_total_calls":3,"l30_days_unique_payers":2,"last_called_at":"2026-08-28T00:00:00.000Z"},"service_name":"Example API","tags":["example"],"icon_url":null,"curated":null,"skill_url":null},"retrieved_at":"2026-08-28T00:00:00.000Z","provider":{"host":"api.cdp.coinbase.com","path":"/platform/v2/x402/discovery/merchant","method":"GET"},"error":null},"searches":[{"query":"example paid json api","visibility":"IN_TOP_20","position":1,"returned_count":1,"search_method":"hybrid","partial_results":false,"retrieved_at":"2026-08-28T00:00:00.000Z","provider":{"host":"api.cdp.coinbase.com","path":"/platform/v2/x402/discovery/search","method":"GET"},"error":null}],"evidence":{"provider":"coinbase-cdp-bazaar-discovery","origin":"https://api.cdp.coinbase.com","path_prefix":"/platform/v2/x402/discovery/","outbound_requests":2,"merchant_requests":1,"search_requests":1,"auth_header_sent":false,"submitted_resource_fetched":false,"url_equality":"https host-lowercase default-port-443 pathname+search exact; fragments and userinfo rejected; query-string order is significant"},"limitations":["This is a point-in-time Coinbase Bazaar observation, not proof of future visibility.","Coinbase search ranking formula is external and may change.","Observed position is only within the returned top 20.","partialResults=true means additional results may exist beyond the returned page.","Merchant pagination is intentionally bounded to one page (limit=20, offset=0).","quality, call, and payer fields are Coinbase-reported observations, not Agent Mercantile verification of buyer independence.","No resource endpoint was fetched or functionally tested.","No recommendation, remediation, trust, quality, or SEO score is produced."]}},"description":"Observe whether one x402 seller resource appears in Coinbase Bazaar merchant discovery and where the exact resource sits in the first 20 results for 1–3 buyer-supplied job-language searches. Factual evidence only. Call when you need a point-in-time Bazaar presence and top-20 search observation, not a trust, SEO, or remediation score."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["resource","pay_to","queries"],"additionalProperties":false,"properties":{"resource":{"type":"string","format":"uri","description":"Exactly one absolute HTTPS x402 resource URL identifier. Treated as an identifier only; never fetched or proxied. Fragments, credentials, non-HTTPS, and non-443 ports are rejected."},"pay_to":{"type":"string","description":"Merchant payTo address. 0x-prefixed 20-byte EVM address."},"queries":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","minLength":2,"maxLength":400,"description":"Buyer-job search string. Coinbase search maximum is 400 characters."},"description":"1 to 3 buyer-supplied job-language searches. No hidden default query."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","checked_at","resource","pay_to","merchant","searches","evidence","limitations"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"machine":{"type":"string","enum":["VM05"]},"methodology_version":{"type":"string","enum":["bazaar-visibility-0.1.0"]},"checked_at":{"type":"string"},"resource":{"type":"string"},"pay_to":{"type":"string"},"merchant":{"type":"object"},"searches":{"type":"array"},"evidence":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM06","family":"ONCHAIN_PREFLIGHT","name":"Transaction Gas Preflight","purpose":"Before an agent signs or submits an Ethereum or Base transaction, return bounded factual eth_estimateGas units and recent eth_feeHistory execution-fee evidence for the exact unsigned transaction facts supplied.","description":"Return bounded factual eth_estimateGas units and recent eth_feeHistory execution-fee evidence for one unsigned Ethereum or Base transaction. Not execution, signing, custody, trading, or a guaranteed final cost. Call when you need point-in-time gas units and recent execution-fee context before signing or submitting.","url":"https://api.agentmercantile.com/v1/transaction-gas-preflight","operationId":"postVm06TransactionGasPreflight","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.005","price_atomic":5000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["chain","to"],"additionalProperties":false,"properties":{"chain":{"type":"string","enum":["eip155:1","eip155:8453"],"description":"Analysis chain only. Payment remains Base eip155:8453."},"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Required 0x-prefixed 20-byte destination. Contract creation is not supported."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional 0x-prefixed 20-byte sender used only as an eth_estimateGas field. No ownership is implied."},"data":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})*$","maxLength":16386,"description":"Optional 0x-prefixed even-length hex calldata. Default 0x. Maximum 8192 bytes. Request body maximum 20480 bytes."},"value_wei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Optional unsigned base-10 integer string in the uint256 range. Default 0. JSON Schema cannot express the full uint256 upper bound; runtime validation rejects values above 2^256-1."}}},"input_example":{"chain":"eip155:8453","to":"0x0000000000000000000000000000000000000001","data":"0x","value_wei":"0"},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/TransactionGasResponse","methodology_version":"transaction-gas-preflight-0.1.0","tags":["transaction-gas","gas-estimate","fee-history","unsigned-preflight","evm-gas"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"chain":"eip155:8453","to":"0x0000000000000000000000000000000000000001","data":"0x","value_wei":"0"},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM06","methodology_version":"transaction-gas-preflight-0.1.0","checked_at":"2026-08-29T00:00:00.000Z","chain":{"caip2":"eip155:8453","chain_id":8453,"name":"base"},"request_shape":{"has_from":false,"calldata_bytes":0,"value_nonzero":false},"gas_estimate":{"gas_units":"21000"},"fee_history":{"block_count":5,"newest_block":"latest","reward_percentiles":[10,50,90],"oldest_block":"0x1","base_fee_per_gas":["100","110","120","130","140"],"gas_used_ratio":["0.1","0.2","0.3","0.4","0.5"],"priority_fee_rewards":[["1","2","3"],["1","2","3"],["1","2","3"],["1","2","3"],["1","2","3"]]},"illustrative_execution_fees":{"kind":"illustrative_execution_fee_observations","recommendation":false,"guaranteed_final_cost":false,"covers":"l2_execution_fee_only","l1_security_or_data_fee_included":false,"labeled_as_total_transaction_cost":false,"scenarios":[{"label":"recent_base_plus_p50_priority","base_fee_per_gas_wei":"140","priority_fee_per_gas_wei":"2","execution_fee_wei":"2982000","execution_fee_eth":"0.000000000002982"}]},"provider":{"name":"alchemy","host":"base-mainnet.g.alchemy.com","methods":["eth_estimateGas","eth_feeHistory"],"url":"https://base-mainnet.g.alchemy.com","credential_material":false},"limitations":["This is a point-in-time gas-estimation and fee-history observation, not a guaranteed final cost.","Base results cover L2 execution-fee evidence only and do not include the separate Base L1 security/data fee.","VM06 Base arithmetic is not a total transaction cost."]}},"description":"Return bounded factual eth_estimateGas units and recent eth_feeHistory execution-fee evidence for one unsigned Ethereum or Base transaction. Not execution, signing, custody, trading, or a guaranteed final cost. Call when you need point-in-time gas units and recent execution-fee context before signing or submitting."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["chain","to"],"additionalProperties":false,"properties":{"chain":{"type":"string","enum":["eip155:1","eip155:8453"],"description":"Analysis chain only. Payment remains Base eip155:8453."},"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Required 0x-prefixed 20-byte destination. Contract creation is not supported."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional 0x-prefixed 20-byte sender used only as an eth_estimateGas field. No ownership is implied."},"data":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})*$","maxLength":16386,"description":"Optional 0x-prefixed even-length hex calldata. Default 0x. Maximum 8192 bytes. Request body maximum 20480 bytes."},"value_wei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Optional unsigned base-10 integer string in the uint256 range. Default 0. JSON Schema cannot express the full uint256 upper bound; runtime validation rejects values above 2^256-1."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","checked_at","chain","gas_estimate","fee_history","illustrative_execution_fees","provider","limitations"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","UNESTIMABLE","HOLD"]},"machine":{"type":"string","enum":["VM06"]},"methodology_version":{"type":"string","enum":["transaction-gas-preflight-0.1.0"]},"checked_at":{"type":"string"},"chain":{"type":"object"},"request_shape":{"type":"object"},"gas_estimate":{"type":["object","null"]},"fee_history":{"type":["object","null"]},"illustrative_execution_fees":{"type":["object","null"]},"provider":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM07","family":"WEB_INTELLIGENCE","name":"Web Change Snapshot","purpose":"Let an AI agent cheaply determine whether the bounded normalized representation of one public HTTPS webpage has changed since a caller-held previous baseline.","description":"Determine whether the bounded normalized representation of one public HTTPS webpage has changed since a caller-held baseline. Returns fingerprints and change status, not continuous monitoring, alerts, webhooks, semantic importance, AI summaries, or site-wide crawling.","url":"https://api.agentmercantile.com/v1/web-change-snapshot","operationId":"postVm07WebChangeSnapshot","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.005","price_atomic":5000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"One absolute public HTTPS URL on port 443. No credentials in the URL. http, non-443 ports, and private/non-public targets are rejected without fetch."},"baseline":{"type":"object","additionalProperties":false,"required":["methodology_version","page_sha256","components","content_truncated","extraction_complete"],"description":"Optional caller-held compact comparison evidence. Hashes and completeness/methodology fields only. Never resend the previous webpage body.","properties":{"methodology_version":{"type":"string"},"page_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"components":{"type":"object","additionalProperties":false,"required":["final_url","http","metadata","outline","content","structured_data"],"properties":{"final_url":{"type":"string","pattern":"^[0-9a-f]{64}$"},"http":{"type":"string","pattern":"^[0-9a-f]{64}$"},"metadata":{"type":"string","pattern":"^[0-9a-f]{64}$"},"outline":{"type":"string","pattern":"^[0-9a-f]{64}$"},"content":{"type":"string","pattern":"^[0-9a-f]{64}$"},"structured_data":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"content_truncated":{"type":"boolean"},"extraction_complete":{"type":"boolean"}}}}},"input_example":{"url":"https://example.com/"},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/WebChangeSnapshotResponse","methodology_version":"web-change-snapshot-0.1.0","tags":["webpage-change-detection","url-change","page-freshness","documentation-monitoring","pricing-page-monitoring"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://example.com/"},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM07","methodology_version":"web-change-snapshot-0.1.0","checked_at":"2026-09-10T00:00:00.000Z","requested_url":"https://example.com/","final_url":"https://example.com/","http":{"status":200,"content_type":"text/html; charset=UTF-8","redirect_count":0},"comparison_status":"BASELINE","comparison_scope":"Comparison covers the bounded normalized representation observed by VM07, not the entire website or entire webpage.","changed_components":[],"baseline":{"methodology_version":"web-change-snapshot-0.1.0","page_sha256":"34226d50aa7881c384ac5dd0ec9b237714a99bcd3bba151fd98edc443221922a","components":{"final_url":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","http":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","metadata":"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd","outline":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","content":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","structured_data":"1111111111111111111111111111111111111111111111111111111111111111"},"content_truncated":false,"extraction_complete":true},"metadata":{"title":"Example Domain","description":null,"canonical":"https://example.com/"},"outline":[{"level":1,"text":"Example Domain"}],"structured_data":{"json_ld_types":[]},"extraction":{"basis":"body-heuristic","characters":155,"truncated":false,"complete":true},"completeness":{"content_truncated":false,"extraction_complete":true,"product_status":"OK"},"limitations":["Comparison covers the bounded normalized representation observed by VM07, not the entire website or entire webpage."]}},"description":"Determine whether the bounded normalized representation of one public HTTPS webpage has changed since a caller-held baseline. Returns fingerprints and change status, not continuous monitoring, alerts, webhooks, semantic importance, AI summaries, or site-wide crawling."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"One absolute public HTTPS URL on port 443. No credentials in the URL. http, non-443 ports, and private/non-public targets are rejected without fetch."},"baseline":{"type":"object","additionalProperties":false,"required":["methodology_version","page_sha256","components","content_truncated","extraction_complete"],"description":"Optional caller-held compact comparison evidence. Hashes and completeness/methodology fields only. Never resend the previous webpage body.","properties":{"methodology_version":{"type":"string"},"page_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"components":{"type":"object","additionalProperties":false,"required":["final_url","http","metadata","outline","content","structured_data"],"properties":{"final_url":{"type":"string","pattern":"^[0-9a-f]{64}$"},"http":{"type":"string","pattern":"^[0-9a-f]{64}$"},"metadata":{"type":"string","pattern":"^[0-9a-f]{64}$"},"outline":{"type":"string","pattern":"^[0-9a-f]{64}$"},"content":{"type":"string","pattern":"^[0-9a-f]{64}$"},"structured_data":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"content_truncated":{"type":"boolean"},"extraction_complete":{"type":"boolean"}}}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","checked_at","requested_url","comparison_status","baseline","limitations"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"machine":{"type":"string","enum":["VM07"]},"methodology_version":{"type":"string","enum":["web-change-snapshot-0.1.0"]},"checked_at":{"type":"string"},"requested_url":{"type":"string"},"final_url":{"type":["string","null"]},"http":{"type":"object"},"comparison_status":{"type":"string","enum":["BASELINE","UNCHANGED","CHANGED","INCONCLUSIVE"]},"comparison_scope":{"type":"string"},"changed_components":{"type":"array","items":{"type":"string"}},"baseline":{"type":"object"},"metadata":{"type":"object"},"outline":{"type":"array"},"structured_data":{"type":"object"},"extraction":{"type":"object"},"completeness":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM08","family":"AGENT_COMMERCE","name":"x402 Service Change Snapshot","purpose":"Given what a buyer previously accepted about an x402 service, determine whether the live payment contract is still equivalent enough to proceed.","description":"Determine whether a previously accepted x402 service payment contract is still equivalent enough to proceed. Compares one live unpaid 402 challenge, using a caller-supplied GET or POST request shape, against a caller-held baseline bound to that request identity. Not uptime monitoring, a trust score, a webhook, a marketplace crawl, or a generic POST {} probe of every x402 resource.","url":"https://api.agentmercantile.com/v1/x402-service-change-snapshot","operationId":"postVm08X402ServiceChangeSnapshot","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.01","price_atomic":10000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["resource_url","method"],"additionalProperties":false,"properties":{"resource_url":{"type":"string","format":"uri","description":"One absolute public HTTPS x402 resource URL on port 443. VM08 probes this URL once after payment using the caller-supplied method."},"method":{"type":"string","enum":["GET","POST"],"description":"HTTP method for the unpaid 402 probe. Required. Discovery listings cannot invent this method. x402 does not imply every paid resource is POST."},"body":{"type":"object","description":"Optional JSON object for POST probes only. Omitted POST body is sent as {}. GET probes must not include body. No custom headers or credentials."},"baseline":{"type":"object","description":"Optional caller-held reusable payment-contract baseline from a previous VM08 OK observation. Bound to method, URL, and POST body fingerprint."},"price_policy":{"type":"object","additionalProperties":false,"properties":{"modest_increase_bps":{"type":"integer"},"max_increase_bps":{"type":"integer"}}},"discovery":{"type":"object","description":"Optional caller-supplied discovery/catalog listing. Not fetched by VM08 and not used to choose method."}}},"input_example":{"resource_url":"https://api.agentmercantile.com/v1/url-context","method":"POST"},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/X402ServiceChangeResponse","methodology_version":"x402-service-change-snapshot-0.1.0","tags":["x402-service-change","payment-contract-change","buyer-requalification","direct-vs-discovery","x402-baseline"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource_url":"https://api.agentmercantile.com/v1/url-context","method":"POST"},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM08","methodology_version":"x402-service-change-snapshot-0.1.0","candidate_id":"VM08-CANDIDATE","decision":"BASELINE_CREATED","observation_kind":"first","material_change_classes":["BASELINE_CREATED"],"checked_at":"2026-09-18T00:00:00.000Z","requested_resource":"https://api.agentmercantile.com/v1/url-context","probe":{"method":"POST","resource_url":"https://api.agentmercantile.com/v1/url-context","body_sha256":"44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a"},"reason":"BASELINE_CREATED:BASELINE_CREATED","recommended_action":"Initial qualification only. Hold this reusable baseline. This result is not a comparison against a previously accepted payment contract.","baseline":{"reusable":true,"methodology_version":"x402-service-change-snapshot-0.1.0","provenance":"direct_service","observed_at":"2026-09-18T00:00:00.000Z"},"limitations":["Caller holds the baseline. Agent Mercantile does not store a monitoring history for this resource."]}},"description":"Determine whether a previously accepted x402 service payment contract is still equivalent enough to proceed. Compares one live unpaid 402 challenge, using a caller-supplied GET or POST request shape, against a caller-held baseline bound to that request identity. Not uptime monitoring, a trust score, a webhook, a marketplace crawl, or a generic POST {} probe of every x402 resource."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["resource_url","method"],"additionalProperties":false,"properties":{"resource_url":{"type":"string","format":"uri","description":"One absolute public HTTPS x402 resource URL on port 443. VM08 probes this URL once after payment using the caller-supplied method."},"method":{"type":"string","enum":["GET","POST"],"description":"HTTP method for the unpaid 402 probe. Required. Discovery listings cannot invent this method. x402 does not imply every paid resource is POST."},"body":{"type":"object","description":"Optional JSON object for POST probes only. Omitted POST body is sent as {}. GET probes must not include body. No custom headers or credentials."},"baseline":{"type":"object","description":"Optional caller-held reusable payment-contract baseline from a previous VM08 OK observation. Bound to method, URL, and POST body fingerprint."},"price_policy":{"type":"object","additionalProperties":false,"properties":{"modest_increase_bps":{"type":"integer"},"max_increase_bps":{"type":"integer"}}},"discovery":{"type":"object","description":"Optional caller-supplied discovery/catalog listing. Not fetched by VM08 and not used to choose method."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","decision","baseline","limitations"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"machine":{"type":"string","enum":["VM08"]},"methodology_version":{"type":"string","enum":["x402-service-change-snapshot-0.1.0"]},"decision":{"type":"string","enum":["BASELINE_CREATED","CONTINUE","REVIEW","STOP","UNKNOWN"]},"requested_resource":{"type":"string"},"limitations":{"type":"array","items":{"type":"string"}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM09","family":"AGENT_COMMERCE","name":"x402 Pre-Sign Handoff Packet","purpose":"Given one exact intended x402 request, a public payer, and caller constraints, produce a normalized pre-sign evidence packet a separate signer can verify before protected payment execution.","description":"Produce a normalized pre-sign evidence packet for one unpaid x402 v2 exact Base USDC EIP-3009 requirement: request identity, selected requirement including asset transfer method, public payer coverage, caller ceiling, optional baseline evidence, and an integrity digest. Non-eip3009 or incomplete transfer methods fail closed. Does not sign, pay, construct a transaction, read payment-authority allowances, or recommend whether to buy.","url":"https://api.agentmercantile.com/v1/x402-presign-handoff","operationId":"postVm09X402PresignHandoff","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.01","price_atomic":10000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["resource_url","method","payer_address","max_amount_atomic","allowed_pay_to"],"additionalProperties":false,"properties":{"resource_url":{"type":"string","format":"uri","description":"One absolute public HTTPS x402 resource URL on port 443. Probed unpaid after AM payment."},"method":{"type":"string","enum":["GET","POST"],"description":"HTTP method for the unpaid target 402 probe. Required."},"body":{"type":"object","description":"Optional JSON object for POST probes only. No custom headers or credentials."},"payer_address":{"type":"string","description":"Public EVM address whose Base USDC balanceOf is read after AM payment."},"max_amount_atomic":{"type":"string","description":"Caller maximum atomic USDC amount. Non-negative integer string."},"allowed_pay_to":{"type":"array","items":{"type":"string"},"description":"Non-empty bounded list of caller-approved payTo addresses."},"baseline":{"type":"object","description":"Optional caller-held compact baseline: request identity plus scheme/network/asset/amount/payTo."}}},"input_example":{"resource_url":"https://api.agentmercantile.com/v1/url-context","method":"POST","payer_address":"0x1111111111111111111111111111111111111111","max_amount_atomic":"20000","allowed_pay_to":["0xdb7b2b54f80479826222749a2ea73a8acc306e1e"]},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/X402PresignHandoffResponse","methodology_version":"x402-presign-handoff-0.1.0","tags":["x402-presign-handoff","pre-sign-packet","payment-requirement","payer-coverage","signer-handoff"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource_url":"https://api.agentmercantile.com/v1/url-context","method":"POST","payer_address":"0x1111111111111111111111111111111111111111","max_amount_atomic":"20000","allowed_pay_to":["0xdb7b2b54f80479826222749a2ea73a8acc306e1e"]},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM09","methodology_version":"x402-presign-handoff-0.1.0","decision":"READY","observed_at":"2026-09-18T00:00:00.000Z","expires_at":"2026-09-18T00:01:00.000Z","signing":false,"payment_execution":false,"transaction_construction":false,"custody":false,"recommendation":false,"reason_codes":["DIRECT_CONTRACT_COMPLETE","SUPPORTED_TRANSFER_METHOD","WITHIN_CALLER_LIMIT","BALANCE_SUFFICIENT"],"selected_requirement":{"index":0,"scheme":"exact","network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount_atomic":"10000","pay_to":"0xdb7b2b54f80479826222749a2ea73a8acc306e1e","max_timeout_seconds":60,"asset_transfer_method":"eip3009"},"direct_resource_url":"https://api.agentmercantile.com/v1/url-context","resource_identity_match":true}},"description":"Produce a normalized pre-sign evidence packet for one unpaid x402 v2 exact Base USDC EIP-3009 requirement: request identity, selected requirement including asset transfer method, public payer coverage, caller ceiling, optional baseline evidence, and an integrity digest. Non-eip3009 or incomplete transfer methods fail closed. Does not sign, pay, construct a transaction, read payment-authority allowances, or recommend whether to buy."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["resource_url","method","payer_address","max_amount_atomic","allowed_pay_to"],"additionalProperties":false,"properties":{"resource_url":{"type":"string","format":"uri","description":"One absolute public HTTPS x402 resource URL on port 443. Probed unpaid after AM payment."},"method":{"type":"string","enum":["GET","POST"],"description":"HTTP method for the unpaid target 402 probe. Required."},"body":{"type":"object","description":"Optional JSON object for POST probes only. No custom headers or credentials."},"payer_address":{"type":"string","description":"Public EVM address whose Base USDC balanceOf is read after AM payment."},"max_amount_atomic":{"type":"string","description":"Caller maximum atomic USDC amount. Non-negative integer string."},"allowed_pay_to":{"type":"array","items":{"type":"string"},"description":"Non-empty bounded list of caller-approved payTo addresses."},"baseline":{"type":"object","description":"Optional caller-held compact baseline: request identity plus scheme/network/asset/amount/payTo."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","decision","handoff_sha256","signing","payment_execution"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"machine":{"type":"string","enum":["VM09"]},"methodology_version":{"type":"string","enum":["x402-presign-handoff-0.1.0"]},"decision":{"type":"string","enum":["READY","NOT_READY","INDETERMINATE"]},"signing":{"type":"boolean","enum":[false]},"payment_execution":{"type":"boolean","enum":[false]},"transaction_construction":{"type":"boolean","enum":[false]},"custody":{"type":"boolean","enum":[false]},"recommendation":{"type":"boolean","enum":[false]},"direct_resource_url":{"type":["string","null"]},"resource_identity_match":{"type":["boolean","null"]},"selected_requirement":{"type":["object","null"],"description":"Selected supported exact Base USDC requirement. asset_transfer_method is the resolved extra.assetTransferMethod (omitted extra defaults to eip3009). Present only when VM09 selected a requirement it qualifies.","properties":{"index":{"type":"integer"},"scheme":{"type":"string"},"network":{"type":"string"},"asset":{"type":"string"},"amount_atomic":{"type":"string"},"pay_to":{"type":"string"},"max_timeout_seconds":{"type":["integer","null"]},"asset_transfer_method":{"type":"string","enum":["eip3009"],"description":"VM09 V1 only qualifies eip3009. Unsupported or incomplete transfer methods never appear on a READY packet."}}},"reason_codes":{"type":"array","items":{"type":"string","enum":["DIRECT_CONTRACT_COMPLETE","DIRECT_CONTRACT_INCOMPLETE","SUPPORTED_SCHEME","UNSUPPORTED_SCHEME","SUPPORTED_NETWORK","UNSUPPORTED_NETWORK","SUPPORTED_ASSET","UNSUPPORTED_ASSET","PAY_TO_ALLOWED","PAY_TO_UNEXPECTED","BALANCE_SUFFICIENT","BALANCE_INSUFFICIENT","WITHIN_CALLER_LIMIT","CALLER_LIMIT_EXCEEDED","BASELINE_MATCH","MATERIAL_CONTRACT_CHANGE","REQUEST_IDENTITY_MISMATCH","RESOURCE_IDENTITY_MISMATCH","SUPPORTED_TRANSFER_METHOD","UNSUPPORTED_TRANSFER_METHOD","TRANSFER_METHOD_INCOMPLETE"]}}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM10","family":"AGENT_COMMERCE","name":"Payment Authority Snapshot","purpose":"Given the exact current x402 payment requirement, this public payer, and an optional caller-held prior authority baseline, report what payment authority exists now, what authority path is required, and whether that authority materially changed.","description":"Produce a factual snapshot of current x402 payment authority for one unpaid v2 requirement and one public EVM payer: selected scheme/network/asset/amount/payTo/transfer method, same-block token balance, canonical token-spender allowance when that path applies, and declared recovery-path classification. Does not sign, approve, construct a transaction, judge native gas, or recommend whether to buy.","url":"https://api.agentmercantile.com/v1/payment-authority-snapshot","operationId":"postVm10PaymentAuthoritySnapshot","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.005","price_atomic":5000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["resource_url","method","payer_address"],"additionalProperties":false,"properties":{"resource_url":{"type":"string","format":"uri","description":"One absolute public HTTPS x402 resource URL on port 443. Probed unpaid after AM payment."},"method":{"type":"string","enum":["GET","POST"],"description":"HTTP method for the unpaid target 402 probe."},"body":{"type":"object","description":"Optional JSON object for POST probes only. No custom headers or credentials."},"payer_address":{"type":"string","description":"Public EVM payer whose token balance and canonical spender allowance are read after AM payment."},"baseline":{"type":"object","description":"Optional caller-held compact VM10 authority baseline. Must include baseline_sha256 over the compact fields; tampered or foreign-methodology baselines are rejected before payment advertisement."}}},"input_example":{"resource_url":"https://api.agentmercantile.com/v1/url-context","method":"POST","payer_address":"0x1111111111111111111111111111111111111111"},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/PaymentAuthoritySnapshotResponse","methodology_version":"payment-authority-snapshot-0.1.0","tags":["payment-authority","token-allowance","x402-requirement","approval-path","authority-snapshot"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource_url":"https://api.agentmercantile.com/v1/url-context","method":"POST","payer_address":"0x1111111111111111111111111111111111111111"},"method":"POST"},"output":{"type":"json","example":{"status":"OK","machine":"VM10","methodology_version":"payment-authority-snapshot-0.1.0","state":"READY_EXISTING","signing":false,"payment_execution":false,"transaction_construction":false,"approval_mutation":false,"custody":false,"recommendation":false,"gas_sufficiency_judgment":false}},"description":"Produce a factual snapshot of current x402 payment authority for one unpaid v2 requirement and one public EVM payer: selected scheme/network/asset/amount/payTo/transfer method, same-block token balance, canonical token-spender allowance when that path applies, and declared recovery-path classification. Does not sign, approve, construct a transaction, judge native gas, or recommend whether to buy."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["resource_url","method","payer_address"],"additionalProperties":false,"properties":{"resource_url":{"type":"string","format":"uri","description":"One absolute public HTTPS x402 resource URL on port 443. Probed unpaid after AM payment."},"method":{"type":"string","enum":["GET","POST"],"description":"HTTP method for the unpaid target 402 probe."},"body":{"type":"object","description":"Optional JSON object for POST probes only. No custom headers or credentials."},"payer_address":{"type":"string","description":"Public EVM payer whose token balance and canonical spender allowance are read after AM payment."},"baseline":{"type":"object","description":"Optional caller-held compact VM10 authority baseline. Must include baseline_sha256 over the compact fields; tampered or foreign-methodology baselines are rejected before payment advertisement."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","machine","methodology_version","state","snapshot_sha256","signing","approval_mutation"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"machine":{"type":"string","enum":["VM10"]},"methodology_version":{"type":"string","enum":["payment-authority-snapshot-0.1.0"]},"state":{"type":"string","enum":["READY_EXISTING","APPROVAL_PATH_SPONSORED_ERC20","APPROVAL_PATH_EIP2612","DIRECT_APPROVAL_REQUIRED","NOT_READY_BALANCE","UNSUPPORTED_PROTOCOL_OR_NETWORK","INDETERMINATE"]},"signing":{"type":"boolean","enum":[false]},"payment_execution":{"type":"boolean","enum":[false]},"transaction_construction":{"type":"boolean","enum":[false]},"approval_mutation":{"type":"boolean","enum":[false]},"custody":{"type":"boolean","enum":[false]},"recommendation":{"type":"boolean","enum":[false]},"gas_sufficiency_judgment":{"type":"boolean","enum":[false]}}}},"required":["type"]}},"required":["input"]}}},{"machine":"VM11","family":"AGENT_COMMERCE","name":"Bazaar Visibility Change Snapshot","purpose":"Tell an x402 seller what materially changed in Coinbase Bazaar discovery visibility since a caller-held known-good observation: merchant presence, discovery metadata, schema metadata, visible payment fields, and per-query position inside the observed search window. VM05 remains the point-in-time snapshot. VM08 remains the direct x402 payment-contract comparison.","description":"Compare one x402 resource's Coinbase Bazaar discovery visibility with a caller-held baseline: merchant presence, discovery metadata, schema metadata, visible payment fields, and top-20 position for 1–3 buyer queries. Not a VM05 replacement, direct payment-contract probe, global rank, or remediation advice.","url":"https://api.agentmercantile.com/v1/bazaar-visibility-change","operationId":"postVm11BazaarVisibilityChange","method":"POST","mimeType":"application/json","network":"eip155:8453","scheme":"exact","price":"$0.005","price_atomic":5000,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","input_schema":{"type":"object","required":["resource","pay_to","queries"],"additionalProperties":false,"properties":{"resource":{"type":"string","format":"uri","description":"Exactly one absolute HTTPS x402 resource URL identifier. Treated as an identifier only; never fetched. Fragments, credentials, non-HTTPS, and non-443 ports are rejected."},"pay_to":{"type":"string","description":"Merchant payTo address. 0x-prefixed 20-byte EVM address."},"queries":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","minLength":2,"maxLength":400},"description":"1 to 3 caller-selected buyer-job search strings. Whitespace is collapsed and the set is ordered lexicographically. Duplicate normalized queries are rejected. No hidden default query."},"baseline":{"type":"object","description":"Optional caller-held sealed VM11 baseline. Must bind resource, pay_to, normalized queries, methodology, observation, and baseline_sha256. Tampered or identity-mismatched baselines are rejected before payment advertisement. Not stored server-side."}}},"input_example":{"resource":"https://api.example.com/v1/paid","pay_to":"0x0000000000000000000000000000000000000001","queries":["example paid json api"]},"output_schema_ref":"https://api.agentmercantile.com/openapi.json#/components/schemas/BazaarVisibilityChangeResponse","methodology_version":"bazaar-visibility-change-0.1.0","tags":["bazaar-visibility-change","x402-discovery","merchant-lookup","search-position","seller-baseline"],"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource":"https://api.example.com/v1/paid","pay_to":"0x0000000000000000000000000000000000000001","queries":["example paid json api"]},"method":"POST"},"output":{"type":"json","example":{"status":"OK","decision":"BASELINE_CREATED","machine":"VM11","methodology_version":"bazaar-visibility-change-0.1.0","checked_at":"2026-10-01T00:00:00.000Z","resource":"https://api.example.com/v1/paid","pay_to":"0x0000000000000000000000000000000000000001","queries":["example paid json api"],"comparison_performed":false,"material_change_classes":[],"deltas":[],"hold_reason":null,"current_baseline":{"methodology_version":"bazaar-visibility-change-0.1.0","resource":"https://api.example.com/v1/paid","pay_to":"0x0000000000000000000000000000000000000001","queries":["example paid json api"],"search_window":20,"merchant_page_limit":20,"merchant_page_offset":0,"observation":{"merchant_presence":"FOUND","merchant_note":null,"metadata":{"service_name":"Example Paid API","description":"Bounded JSON for one buyer job","tags":["json"],"curated":false,"icon_url":null,"skill_url":null},"schema_discovery":{"type":"http","x402_version":2,"extension_names":["bazaar"],"bazaar_info_present":true,"bazaar_schema_present":true},"payment":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount":"10000","pay_to":"0x0000000000000000000000000000000000000001","max_timeout_seconds":60}],"searches":[{"query":"example paid json api","visibility":"IN_TOP_20","position":3,"window_note":null}]},"observation_sha256":"3523d15ece3c8d136ed9ba4fca6d45806c12c5116094c006d6e7cd2ecb73a508","observed_at":"2026-10-01T00:00:00.000Z","reusable":true,"observation_complete":true,"baseline_sha256":"245e3845a03a4f6fa5a9cc2a4b628b9571a6e1c992f88f3007331d03275f8565"},"direct_x402_probe":false,"server_baseline_stored":false}},"description":"Compare one x402 resource's Coinbase Bazaar discovery visibility with a caller-held baseline: merchant presence, discovery metadata, schema metadata, visible payment fields, and top-20 position for 1–3 buyer queries. Not a VM05 replacement, direct payment-contract probe, global rank, or remediation advice."},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["resource","pay_to","queries"],"additionalProperties":false,"properties":{"resource":{"type":"string","format":"uri","description":"Exactly one absolute HTTPS x402 resource URL identifier. Treated as an identifier only; never fetched. Fragments, credentials, non-HTTPS, and non-443 ports are rejected."},"pay_to":{"type":"string","description":"Merchant payTo address. 0x-prefixed 20-byte EVM address."},"queries":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","minLength":2,"maxLength":400},"description":"1 to 3 caller-selected buyer-job search strings. Whitespace is collapsed and the set is ordered lexicographically. Duplicate normalized queries are rejected. No hidden default query."},"baseline":{"type":"object","description":"Optional caller-held sealed VM11 baseline. Must bind resource, pay_to, normalized queries, methodology, observation, and baseline_sha256. Tampered or identity-mismatched baselines are rejected before payment advertisement. Not stored server-side."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["status","decision","machine","methodology_version","comparison_performed","deltas","current_baseline"],"additionalProperties":true,"properties":{"status":{"type":"string","enum":["OK","PARTIAL","HOLD"]},"decision":{"type":"string","enum":["BASELINE_CREATED","CONTINUE","CHANGED","HOLD"]},"machine":{"type":"string","enum":["VM11"]},"methodology_version":{"type":"string","enum":["bazaar-visibility-change-0.1.0"]},"comparison_performed":{"type":"boolean"},"material_change_classes":{"type":"array","items":{"type":"string"}},"deltas":{"type":"array"},"current_baseline":{"type":["object","null"]},"limitations":{"type":"array","items":{"type":"string"}}}}},"required":["type"]}},"required":["input"]}}}]}