{"slug":"402-com-tr-api-x402-safe-approve-1e1e03","title":"Unlimited allowances are the #1 drain vector, and agents reach for approve(max) ","host":"402.com.tr","method":"GET","resource":"https://402.com.tr/api/x402/safe-approve","category":"market","description":"Unlimited allowances are the #1 drain vector, and agents reach for approve(max) on every swap. This builds ready-to-sign calldata for an approval of EXACTLY the amount you need (via the token's decimals) and refuses unlimited unless forced. Reads the live allowance and returns a revoke step first wh","price_listed":0.02,"price_asked":null,"state":"effects","state_label":"Not tested: has real-world effects","checks_7d":0,"answered_7d":0,"latency_ms_median":null,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"method":"GET","pathParams":{},"queryParams":{"amount":"100","owner":"0x973a31858f4d2125f48c880542da11a2796f12d6","spender":"0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"method":{"enum":["GET"],"type":"string"},"pathParams":{"type":"object"},"queryParams":{"properties":{"allowUnlimited":{"description":"Allow unlimited (1 = yes, not recommended)","type":"string"},"amount":{"description":"Exact amount to approve (or 'max')","type":"string"},"owner":{"description":"Your wallet (optional, reads live allowance)","type":"string"},"spender":{"description":"Spender (router/contract)","type":"string"},"token":{"description":"Token contract","type":"string"}},"required":["token","spender","amount"],"type":"object"},"type":{"const":"http","type":"string"}},"required":["type","method"],"type":"object"},"output":{"properties":{"example":{"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[],"description_full":"Unlimited allowances are the #1 drain vector, and agents reach for approve(max) on every swap. This builds ready-to-sign calldata for an approval of EXACTLY the amount you need (via the token's decimals) and refuses unlimited unless forced. Reads the live allowance and returns a revoke step first when one is already set (a non-zero→non-zero approve reverts on USDT-style tokens). Build-time prevention, not detection; we never hold keys. Not financial advice.","last_updated":"2026-10-09T11:07:45.882Z","schemes":["exact"]}