{"ok":true,"tool":"x402-requirement-drift-diff","module_version":"0.1.0","result":{"slug":"x402-requirement-drift-diff","name":"x402 Requirement Drift Diff","version":"0.1.0","category":"x402-intelligence","status":"beta","mode":"lookup","summary":"Compare two normalized x402 requirements before retrying a payment.","description":"Detects changes to the scheme, network, asset, atomic amount, receiver, resource, or advertised extensions in two caller-supplied requirements. It performs no payment, signature, or network operation.","when_to_use":["An agent must compare x402 terms before retrying a payment.","A seller response may have changed its amount, receiver, network, or resource."],"do_not_use_when":["A payment must be signed, verified, settled, or transferred.","Either requirement cannot be normalized into the published schema."],"tested_with":["x402 v2 requirement snapshots","CAIP-2 networks"],"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"before":{"type":"object","properties":{"scheme":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9._:/-]+$"},"network":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"asset":{"type":"string","minLength":1,"maxLength":128},"amount_atomic":{"type":"string","pattern":"^(0|[1-9][0-9]{0,77})$"},"pay_to":{"type":"string","minLength":1,"maxLength":256},"resource":{"type":"string","maxLength":2048,"format":"uri"},"extensions":{"default":[],"maxItems":32,"type":"array","items":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9._:/-]+$"}}},"required":["scheme","network","asset","amount_atomic","pay_to","resource","extensions"],"additionalProperties":false},"after":{"type":"object","properties":{"scheme":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9._:/-]+$"},"network":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"asset":{"type":"string","minLength":1,"maxLength":128},"amount_atomic":{"type":"string","pattern":"^(0|[1-9][0-9]{0,77})$"},"pay_to":{"type":"string","minLength":1,"maxLength":256},"resource":{"type":"string","maxLength":2048,"format":"uri"},"extensions":{"default":[],"maxItems":32,"type":"array","items":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9._:/-]+$"}}},"required":["scheme","network","asset","amount_atomic","pay_to","resource","extensions"],"additionalProperties":false}},"required":["before","after"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"changed":{"type":"boolean"},"changed_fields":{"type":"array","items":{"type":"string","enum":["scheme","network","asset","amount_atomic","pay_to","resource","extensions"]}},"before_fingerprint":{"type":"string"},"after_fingerprint":{"type":"string"},"commercial_terms_changed":{"type":"boolean"},"retry_binding_changed":{"type":"boolean"}},"required":["changed","changed_fields","before_fingerprint","after_fingerprint","commercial_terms_changed","retry_binding_changed"],"additionalProperties":false},"payment":{"kind":"free"},"side_effects":[],"retention":"Both normalized requirement snapshots are compared in memory and are not retained.","limits":{"max_extensions":32,"max_resource_url_bytes":2048,"max_client_requests_per_minute":30,"max_global_requests_per_minute":120},"examples":{"input":{"before":{"scheme":"exact","network":"eip155:8453","asset":"USDC","amount_atomic":"1000","pay_to":"0x1111111111111111111111111111111111111111","resource":"https://api.example.invalid/job","extensions":["payment-identifier"]},"after":{"scheme":"exact","network":"eip155:8453","asset":"USDC","amount_atomic":"2000","pay_to":"0x1111111111111111111111111111111111111111","resource":"https://api.example.invalid/job","extensions":["payment-identifier"]}},"output":{"changed":true,"changed_fields":["amount_atomic"],"before_fingerprint":"sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","after_fingerprint":"sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","commercial_terms_changed":true,"retry_binding_changed":false},"negative":[{"scenario":"A payment must be signed, verified, settled, or transferred.","expected_error":"INVALID_INPUT","charged":false}]},"execution":{"errors":[{"code":"INVALID_INPUT","retryable":false,"charged":false,"recovery":"Correct the request to match input_schema."},{"code":"TOOL_PAUSED","retryable":true,"charged":false,"recovery":"Wait for the operator to resume the tool."},{"code":"RATE_LIMITED","retryable":true,"charged":false,"recovery":"Retry after the response Retry-After interval."},{"code":"DEPENDENCY_UNAVAILABLE","retryable":true,"charged":false,"recovery":"Retry with the same idempotency identity."}],"idempotency":{"required":false,"mock_or_unpaid_header":null,"x402_extension":null,"replay_retention":null}},"endpoints":{"describe":"/v1/tools/x402-requirement-drift-diff","execute":"/v1/tools/x402-requirement-drift-diff"}},"meta":{"request_id":"req_e3d8f90119d04181abb3476bcbb9e8ab","observed_at":"2026-07-25T08:24:17.408Z"}}