{"openapi":"3.1.0","info":{"title":"Fia Signals x402 Pre-Swap Risk Checks","description":"0.005 USDC /token-safety/lite check for Base/EVM swap agents: pay with x402 on Base USDC and get a compact proceed/caution/block verdict before signing or routing a swap.","version":"1.0.0","x-x402-patched":true,"x-virtuals-acp":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","truth_label":"openapi_discovery_metadata_not_sale_proof"},"guidance":"Fia Signals x402 Gateway provides real-time crypto market intelligence. All endpoints require x402 payment. Send a GET request with a valid x402 payment header to receive data. Endpoints accept an optional format query parameter."},"paths":{"/health":{"get":{"summary":"Health","description":"Free health check — not gated by x402.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/regime":{"get":{"summary":"Get Regime","description":"BTC volatility regime — gated by x402 payment.","operationId":"get_regime_regime_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Regime Regime Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"1.00"},"amount":"1.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Regime","description":"BTC volatility regime — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"get_regime_regime_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Regime Regime Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/funding":{"get":{"summary":"Get Funding","description":"Top 10 funding rates — gated by x402 payment.","operationId":"get_funding_funding_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Funding Funding Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.20"},"amount":"0.20","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Funding","description":"Top 10 funding rates — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"get_funding_funding_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Funding Funding Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/prices":{"head":{"summary":"Get Prices","description":"Real-time spot prices for up to 20 symbols — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"get_prices_prices_head","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string","default":"","title":"Symbols"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Prices Prices Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Get Prices","description":"Real-time spot prices for up to 20 symbols — gated by x402 payment.","operationId":"get_prices_prices_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string","default":"","title":"Symbols"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Prices Prices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.20"},"amount":"0.20","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/ohlcv":{"head":{"summary":"Get Ohlcv","description":"OHLCV candlestick data — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"get_ohlcv_ohlcv_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h","title":"Interval"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Ohlcv Ohlcv Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Get Ohlcv","description":"OHLCV candlestick data — gated by x402 payment.","operationId":"get_ohlcv_ohlcv_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h","title":"Interval"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Ohlcv Ohlcv Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/fear-greed":{"get":{"summary":"Get Fear Greed","description":"Crypto Fear & Greed Index — gated by x402 payment.","operationId":"get_fear_greed_fear_greed_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Fear Greed Fear Greed Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.05"},"amount":"0.05","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Fear Greed","description":"Crypto Fear & Greed Index — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"get_fear_greed_fear_greed_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Fear Greed Fear Greed Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/token/safety":{"get":{"summary":"Redirect Token Safety Alias","operationId":"redirect_token_safety_alias_token_safety_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Redirect Token Safety Alias","operationId":"redirect_token_safety_alias_token_safety_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Redirect Token Safety Alias","operationId":"redirect_token_safety_alias_token_safety_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/token/safety/batch":{"get":{"summary":"Redirect Token Safety Batch Alias","operationId":"redirect_token_safety_batch_alias_token_safety_batch_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Redirect Token Safety Batch Alias","operationId":"redirect_token_safety_batch_alias_token_safety_batch_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Redirect Token Safety Batch Alias","operationId":"redirect_token_safety_batch_alias_token_safety_batch_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pre/trade/risk":{"get":{"summary":"Redirect Pre Trade Risk Alias","operationId":"redirect_pre_trade_risk_alias_pre_trade_risk_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Redirect Pre Trade Risk Alias","operationId":"redirect_pre_trade_risk_alias_pre_trade_risk_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Redirect Pre Trade Risk Alias","operationId":"redirect_pre_trade_risk_alias_pre_trade_risk_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pre/trade/risk/batch":{"get":{"summary":"Redirect Pre Trade Risk Batch Alias","operationId":"redirect_pre_trade_risk_batch_alias_pre_trade_risk_batch_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Redirect Pre Trade Risk Batch Alias","operationId":"redirect_pre_trade_risk_batch_alias_pre_trade_risk_batch_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Redirect Pre Trade Risk Batch Alias","operationId":"redirect_pre_trade_risk_batch_alias_pre_trade_risk_batch_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/smart-contract-risk":{"post":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_smart_contract_risk_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Smart Contract Risk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_smart_contract_risk_head","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Smart Contract Risk Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_smart_contract_risk_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Smart Contract Risk Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contract-risk":{"post":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_contract_risk_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Contract Risk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_contract_risk_head","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Contract Risk Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_contract_risk_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Contract Risk Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/token-safety":{"post":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_token_safety_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Token Safety Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}},"head":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_address=0x...","operationId":"get_pre_trade_risk_token_safety_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"description":"Required EVM token contract address to check before a swap.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Token Safety Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-required-query":{"chain":"base","token_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}},"get":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment. Required query string: ?chain=base&token_address=0x...","operationId":"get_pre_trade_risk_token_safety_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"description":"Required EVM token contract address to check before a swap.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Token Safety Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-required-query":{"chain":"base","token_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"/pre-trade-risk":{"post":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_pre_trade_risk_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Pre Trade Risk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}},"head":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_address=0x...","operationId":"get_pre_trade_risk_pre_trade_risk_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"description":"Required EVM token contract address to check before a swap.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Pre Trade Risk Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-required-query":{"chain":"base","token_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}},"get":{"summary":"Get Pre Trade Risk","description":"Pre-swap token risk gate — gated by x402 payment. Required query string: ?chain=base&token_address=0x...","operationId":"get_pre_trade_risk_pre_trade_risk_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"description":"Required EVM token contract address to check before a swap.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Pre Trade Risk Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-required-query":{"chain":"base","token_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"/token-safety/lite":{"post":{"summary":"Get Token Safety Lite","description":"Cheap single-token swap-risk primitive — gated by x402 payment.","operationId":"get_token_safety_lite_token_safety_lite_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Token Safety Lite Token Safety Lite Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"summary":"Get Token Safety Lite","description":"Cheap single-token swap-risk primitive — gated by x402 payment.","operationId":"get_token_safety_lite_token_safety_lite_head","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Token Safety Lite Token Safety Lite Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Token Safety Lite","description":"Cheap single-token swap-risk primitive — gated by x402 payment.","operationId":"get_token_safety_lite_token_safety_lite_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Token Safety Lite Token Safety Lite Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contract-risk-preview":{"get":{"summary":"Contract Risk Preview","description":"Free buyer-agent on-ramp for paid ACP contract_risk checkout.","operationId":"contract_risk_preview_contract_risk_preview_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Contract Risk Preview Contract Risk Preview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/token-safety-preview":{"get":{"summary":"Token Safety Free Preview","description":"Rate-limited no-spend preview for buyer agents before paid /token-safety/lite.","operationId":"token_safety_free_preview_token_safety_preview_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Token Safety Free Preview Token Safety Preview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/token-safety/free":{"get":{"summary":"Token Safety Free Preview","description":"Rate-limited no-spend preview for buyer agents before paid /token-safety/lite.","operationId":"token_safety_free_preview_token_safety_free_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Token Safety Free Preview Token Safety Free Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/smart-contract-risk/batch":{"post":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_batch_smart_contract_risk_batch_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Smart Contract Risk Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"requestBody":{"required":true,"description":"POST JSON body for batch token safety checks. GET query parameters remain supported; explicit empty POST JSON bodies return HTTP 400 instead of falling back to sample tokens.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"chain":{"type":"string","enum":["base"],"default":"base"},"token_addresses":{"oneOf":[{"type":"string","description":"Comma-separated EVM token addresses, maximum 5."},{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5}]},"contracts":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"tokens":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Single-token compatibility field; batch callers should prefer token_addresses."}},"anyOf":[{"required":["token_addresses"]},{"required":["contracts"]},{"required":["tokens"]},{"required":["token_address"]}]},"examples":{"token_addresses_array":{"summary":"Two Base tokens","value":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"token_addresses_csv":{"summary":"CSV compatibility form","value":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}}}}},"x-required-json-body":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"head":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_smart_contract_risk_batch_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Smart Contract Risk Batch Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}},"get":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_smart_contract_risk_batch_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Smart Contract Risk Batch Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}},"/contract-risk/batch":{"post":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_batch_contract_risk_batch_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Contract Risk Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"requestBody":{"required":true,"description":"POST JSON body for batch token safety checks. GET query parameters remain supported; explicit empty POST JSON bodies return HTTP 400 instead of falling back to sample tokens.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"chain":{"type":"string","enum":["base"],"default":"base"},"token_addresses":{"oneOf":[{"type":"string","description":"Comma-separated EVM token addresses, maximum 5."},{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5}]},"contracts":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"tokens":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Single-token compatibility field; batch callers should prefer token_addresses."}},"anyOf":[{"required":["token_addresses"]},{"required":["contracts"]},{"required":["tokens"]},{"required":["token_address"]}]},"examples":{"token_addresses_array":{"summary":"Two Base tokens","value":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"token_addresses_csv":{"summary":"CSV compatibility form","value":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}}}}},"x-required-json-body":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"head":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_contract_risk_batch_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Contract Risk Batch Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}},"get":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_contract_risk_batch_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Contract Risk Batch Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}},"/token-safety/batch":{"post":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_batch_token_safety_batch_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Token Safety Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"requestBody":{"required":true,"description":"POST JSON body for batch token safety checks. GET query parameters remain supported; explicit empty POST JSON bodies return HTTP 400 instead of falling back to sample tokens.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"chain":{"type":"string","enum":["base"],"default":"base"},"token_addresses":{"oneOf":[{"type":"string","description":"Comma-separated EVM token addresses, maximum 5."},{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5}]},"contracts":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"tokens":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Single-token compatibility field; batch callers should prefer token_addresses."}},"anyOf":[{"required":["token_addresses"]},{"required":["contracts"]},{"required":["tokens"]},{"required":["token_address"]}]},"examples":{"token_addresses_array":{"summary":"Two Base tokens","value":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"token_addresses_csv":{"summary":"CSV compatibility form","value":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}}}}},"x-required-json-body":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"head":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_token_safety_batch_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Token Safety Batch Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}},"get":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_token_safety_batch_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Token Safety Batch Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}},"/pre-trade-risk/batch":{"post":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment.","operationId":"get_pre_trade_risk_batch_pre_trade_risk_batch_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Pre Trade Risk Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"requestBody":{"required":true,"description":"POST JSON body for batch token safety checks. GET query parameters remain supported; explicit empty POST JSON bodies return HTTP 400 instead of falling back to sample tokens.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"chain":{"type":"string","enum":["base"],"default":"base"},"token_addresses":{"oneOf":[{"type":"string","description":"Comma-separated EVM token addresses, maximum 5."},{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5}]},"contracts":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"tokens":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Single-token compatibility field; batch callers should prefer token_addresses."}},"anyOf":[{"required":["token_addresses"]},{"required":["contracts"]},{"required":["tokens"]},{"required":["token_address"]}]},"examples":{"token_addresses_array":{"summary":"Two Base tokens","value":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"token_addresses_csv":{"summary":"CSV compatibility form","value":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}}}}},"x-required-json-body":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"head":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_pre_trade_risk_batch_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Pre Trade Risk Batch Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}},"get":{"summary":"Get Pre Trade Risk Batch","description":"Batch pre-swap token risk gate — gated by x402 payment. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_pre_trade_risk_batch_pre_trade_risk_batch_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pre Trade Risk Batch Pre Trade Risk Batch Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.03"},"amount":"0.03","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}},"/bundled-risk-pack/sample":{"get":{"summary":"Bundled Risk Pack Sample","description":"Public unpaid sample JSON for buyer agents and indexing crawlers.","operationId":"bundled_risk_pack_sample_bundled_risk_pack_sample_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Bundled Risk Pack Sample Bundled Risk Pack Sample Get"}}}}}}},"/bundled-risk-pack/product":{"get":{"summary":"Bundled Risk Pack Product Page","description":"Indexable product page for the paid bundled risk-pack route.","operationId":"bundled_risk_pack_product_page_bundled_risk_pack_product_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/prepaid-risk-pack-10/sample":{"get":{"summary":"Prepaid Risk Pack Sample","description":"Public unpaid sample JSON for the $5 prepaid pack.","operationId":"prepaid_risk_pack_sample_prepaid_risk_pack_10_sample_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Prepaid Risk Pack Sample Prepaid Risk Pack 10 Sample Get"}}}}}}},"/prepaid-risk-pack-10/product":{"get":{"summary":"Prepaid Risk Pack Product Page","description":"Indexable product page for the $5 prepaid pack.","operationId":"prepaid_risk_pack_product_page_prepaid_risk_pack_10_product_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/prepaid-risk-pack-10/checkout":{"get":{"summary":"Prepaid Risk Pack Human Checkout Page","description":"Human-payable checkout page for buyers not using x402-capable agents.","operationId":"prepaid_risk_pack_human_checkout_page_prepaid_risk_pack_10_checkout_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/bankr-pre-swap-skill.json":{"get":{"summary":"Bankr Pre Swap Skill Spec","description":"Public unpaid Bankr/AgentKit pre-swap skill integration spec.","operationId":"bankr_pre_swap_skill_spec_bankr_pre_swap_skill_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Bankr Pre Swap Skill Spec Bankr Pre Swap Skill Json Get"}}}}}}},"/bankr-pre-swap-skill":{"get":{"summary":"Bankr Pre Swap Skill Page","description":"Public Bankr-facing one-pager for the bundled-risk-pack integration.","operationId":"bankr_pre_swap_skill_page_bankr_pre_swap_skill_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/base-preswap-risk-feed-pro/sample":{"get":{"summary":"Base Preswap Risk Feed Pro Sample","description":"Public unpaid PASS/CAUTION/BLOCK sample JSON for buyer outreach.","operationId":"base_preswap_risk_feed_pro_sample_base_preswap_risk_feed_pro_sample_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Base Preswap Risk Feed Pro Sample Base Preswap Risk Feed Pro Sample Get"}}}}}}},"/base-preswap-risk-feed-pro/checkout":{"post":{"summary":"Base Preswap Risk Feed Pro Checkout","description":"Buyer-paid x402 checkout packet for the $19 pre-swap feed pilot.","operationId":"base_preswap_risk_feed_pro_checkout_base_preswap_risk_feed_pro_checkout_post","parameters":[{"name":"buyer","in":"query","required":false,"schema":{"type":"string","default":"bankr","title":"Buyer"}},{"name":"contact","in":"query","required":false,"schema":{"type":"string","default":"","title":"Contact"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Base Preswap Risk Feed Pro Checkout Base Preswap Risk Feed Pro Checkout Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"19.00"},"amount":"19.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}},"head":{"summary":"Base Preswap Risk Feed Pro Checkout","description":"Buyer-paid x402 checkout packet for the $19 pre-swap feed pilot. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"base_preswap_risk_feed_pro_checkout_base_preswap_risk_feed_pro_checkout_head","parameters":[{"name":"buyer","in":"query","required":false,"schema":{"type":"string","default":"bankr","title":"Buyer"}},{"name":"contact","in":"query","required":false,"schema":{"type":"string","default":"","title":"Contact"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Base Preswap Risk Feed Pro Checkout Base Preswap Risk Feed Pro Checkout Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Base Preswap Risk Feed Pro Checkout","description":"Buyer-paid x402 checkout packet for the $19 pre-swap feed pilot.","operationId":"base_preswap_risk_feed_pro_checkout_base_preswap_risk_feed_pro_checkout_get","parameters":[{"name":"buyer","in":"query","required":false,"schema":{"type":"string","default":"bankr","title":"Buyer"}},{"name":"contact","in":"query","required":false,"schema":{"type":"string","default":"","title":"Contact"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Base Preswap Risk Feed Pro Checkout Base Preswap Risk Feed Pro Checkout Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"19.00"},"amount":"19.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/base-preswap-risk-feed-pro/product":{"get":{"summary":"Base Preswap Risk Feed Pro Product Page","description":"Indexable product page for the Base pre-swap risk feed subscription.","operationId":"base_preswap_risk_feed_pro_product_page_base_preswap_risk_feed_pro_product_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/bundled-risk-pack":{"post":{"summary":"Get Bundled Risk Pack","description":"Premium combined token-safety and contract-risk packet gated by x402.","operationId":"get_bundled_risk_pack_bundled_risk_pack_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Bundled Risk Pack Bundled Risk Pack Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.50"},"amount":"0.50","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"requestBody":{"required":true,"description":"POST JSON body for batch token safety checks. GET query parameters remain supported; explicit empty POST JSON bodies return HTTP 400 instead of falling back to sample tokens.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"chain":{"type":"string","enum":["base"],"default":"base"},"token_addresses":{"oneOf":[{"type":"string","description":"Comma-separated EVM token addresses, maximum 5."},{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5}]},"contracts":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"tokens":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Single-token compatibility field; batch callers should prefer token_addresses."}},"anyOf":[{"required":["token_addresses"]},{"required":["contracts"]},{"required":["tokens"]},{"required":["token_address"]}]},"examples":{"token_addresses_array":{"summary":"Two Base tokens","value":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"token_addresses_csv":{"summary":"CSV compatibility form","value":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}}}}},"x-required-json-body":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"head":{"summary":"Get Bundled Risk Pack","description":"Premium combined token-safety and contract-risk packet gated by x402. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_bundled_risk_pack_bundled_risk_pack_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Bundled Risk Pack Bundled Risk Pack Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}},"get":{"summary":"Get Bundled Risk Pack","description":"Premium combined token-safety and contract-risk packet gated by x402. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_bundled_risk_pack_bundled_risk_pack_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Bundled Risk Pack Bundled Risk Pack Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.50"},"amount":"0.50","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}},"/token-risk-pack-pro":{"post":{"summary":"Get Token Risk Pack Pro","description":"$1.50 pro token risk pack gated by x402.","operationId":"get_token_risk_pack_pro_token_risk_pack_pro_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Token Risk Pack Pro Token Risk Pack Pro Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"1.50"},"amount":"1.50","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"requestBody":{"required":true,"description":"POST JSON body for batch token safety checks. GET query parameters remain supported; explicit empty POST JSON bodies return HTTP 400 instead of falling back to sample tokens.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"chain":{"type":"string","enum":["base"],"default":"base"},"token_addresses":{"oneOf":[{"type":"string","description":"Comma-separated EVM token addresses, maximum 5."},{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5}]},"contracts":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"tokens":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"minItems":1,"maxItems":5},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Single-token compatibility field; batch callers should prefer token_addresses."}},"anyOf":[{"required":["token_addresses"]},{"required":["contracts"]},{"required":["tokens"]},{"required":["token_address"]}]},"examples":{"token_addresses_array":{"summary":"Two Base tokens","value":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"token_addresses_csv":{"summary":"CSV compatibility form","value":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}}}}},"x-required-json-body":{"chain":"base","token_addresses":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","0x4200000000000000000000000000000000000006"]}},"head":{"summary":"Get Token Risk Pack Pro","description":"$1.50 pro token risk pack gated by x402. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_token_risk_pack_pro_token_risk_pack_pro_head","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Token Risk Pack Pro Token Risk Pack Pro Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}},"get":{"summary":"Get Token Risk Pack Pro","description":"$1.50 pro token risk pack gated by x402. Required query string: ?chain=base&token_addresses=0xA,0xB","operationId":"get_token_risk_pack_pro_token_risk_pack_pro_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base"],"default":"base"},"description":"Required. Use base for Base mainnet token checks.","example":"base"},{"name":"token_addresses","in":"query","required":true,"schema":{"type":"string"},"description":"Required comma-separated EVM token contract addresses to screen before swaps. Maximum 5.","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Token Risk Pack Pro Token Risk Pack Pro Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"1.50"},"amount":"1.50","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"x-risk-pack-upsell":{"id":"bundled-risk-pack","name":"Fia Signals Bundled Risk Pack","price_usdc":"0.50","amount_raw_usdc":"500000","status":"payable_x402_route_live","payable_route":"https://x402.fiasignals.com/bundled-risk-pack","payable_methods":["GET","POST"],"accepts_ordering":"starter_first_bundle_second","starter_accepts_index":0,"starter_amount_raw_usdc":"30000","preferred_accepts_index":1,"preferred_amount_raw_usdc":"500000","recommended_for_repeat_buyers":true,"preferred_selection_hint":"Starter buyers can use accepts[0] at 30000 raw USDC. Repeat buyers, multi-token buyers, and agents that already know they need a combined risk memo should select accepts[1] at 500000 raw USDC or pay the distinct bundled-risk-pack route; accepts[0] remains the 30000 raw USDC starter.","buyer_action":"Use this as the next paid step after any /token-safety, /token-safety/batch, /pre-trade-risk, or /pre-trade-risk/batch hit. Do not buy another isolated starter check when the agent needs a ranked swap decision packet.","starter_routes":["https://x402.fiasignals.com/token-safety/batch","https://x402.fiasignals.com/contract-risk/batch"],"target_buyer_signal":"Repeat buyers using token-safety and contract-risk batch checks who need a larger pre-swap risk packet instead of another isolated 0.03 USDC call.","delivers":["combined token safety and smart contract risk summary","up to 5 Base/EVM contracts from the existing batch payload","ranked proceed/caution/reject queue","aggregate blocker reasons and warnings","buyer-facing next-action memo for swap routers","strict proof fields for revenue reconciliation"],"non_breaking_policy":"Keep existing 0.03 USDC batch endpoints unchanged. Buyers who want the 0.50 USDC bundle should pay the distinct bundled-risk-pack route.","truth_status":"not_revenue_until_distinct_external_0_50_payment_tx_ref_or_completed_acp_job"},"x-dedup-alert-discipline":{"rule":"one reconcile per unique x402 tx_ref across x402_events and x402_sales","dedupe_priority":["tx_ref","payment_proof_fingerprint","endpoint+buyer+amount+timestamp_bucket"],"fallback_key":"payment_proof_fingerprint, then endpoint+buyer+amount+timestamp_bucket when tx_ref is missing","suppress":"duplicate alerts for the same tx_ref are operating noise, not new revenue","watcher":"tools/x402_bundle_watch.py"},"x-required-query":{"chain":"base","token_addresses":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006"}}},"/prepaid-risk-pack-10":{"post":{"summary":"Get Prepaid Risk Pack 10","description":"$5 prepaid multi-check token risk pack gated by x402.","operationId":"get_prepaid_risk_pack_10_prepaid_risk_pack_10_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Prepaid Risk Pack 10 Prepaid Risk Pack 10 Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"5.00"},"amount":"5.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}},"head":{"summary":"Get Prepaid Risk Pack 10","description":"$5 prepaid multi-check token risk pack gated by x402. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"get_prepaid_risk_pack_10_prepaid_risk_pack_10_head","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Prepaid Risk Pack 10 Prepaid Risk Pack 10 Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Get Prepaid Risk Pack 10","description":"$5 prepaid multi-check token risk pack gated by x402.","operationId":"get_prepaid_risk_pack_10_prepaid_risk_pack_10_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_addresses","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Prepaid Risk Pack 10 Prepaid Risk Pack 10 Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"5.00"},"amount":"5.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/agent-trade-approval-ticket":{"post":{"summary":"Agent Trade Approval Ticket","description":"$5 no-execution APPROVE / CAUTION / BLOCK ticket for autonomous trades.","operationId":"agent_trade_approval_ticket_agent_trade_approval_ticket_post","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}},{"name":"wallet_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Wallet Address"}},{"name":"size_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Size Usd"}},{"name":"risk_tolerance","in":"query","required":false,"schema":{"type":"string","default":"medium","title":"Risk Tolerance"}},{"name":"max_slippage_bps","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Max Slippage Bps"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Trade Approval Ticket Agent Trade Approval Ticket Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"5.00"},"amount":"5.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"requestBody":{"required":true,"description":"POST JSON body for a no-execution trade approval ticket. The gateway returns APPROVE, CAUTION, or BLOCK only; it does not sign, route, fund, or execute a trade.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["chain","token_address"],"properties":{"chain":{"type":"string","default":"base"},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"wallet_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"intended_trade":{"type":"object","properties":{"from_token":{"type":"string"},"to_token":{"type":"string"},"size_usd":{"type":"number"}}},"size_usd":{"type":"number"},"risk_tolerance":{"type":"string","enum":["low","medium","high"],"default":"medium"},"max_slippage_bps":{"type":"number","default":100}}},"examples":{"base_usdc_check":{"summary":"$5 approval ticket for a Base token trade","value":{"chain":"base","token_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intended_trade":{"from_token":"USDC","to_token":"USDC","size_usd":25},"risk_tolerance":"medium","max_slippage_bps":100}}}}}},"x-required-json-body":{"chain":"base","token_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","intended_trade":{"from_token":"USDC","to_token":"USDC","size_usd":25}}},"head":{"summary":"Agent Trade Approval Ticket","description":"$5 no-execution APPROVE / CAUTION / BLOCK ticket for autonomous trades. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"agent_trade_approval_ticket_agent_trade_approval_ticket_head","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}},{"name":"wallet_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Wallet Address"}},{"name":"size_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Size Usd"}},{"name":"risk_tolerance","in":"query","required":false,"schema":{"type":"string","default":"medium","title":"Risk Tolerance"}},{"name":"max_slippage_bps","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Max Slippage Bps"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Trade Approval Ticket Agent Trade Approval Ticket Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Agent Trade Approval Ticket","description":"$5 no-execution APPROVE / CAUTION / BLOCK ticket for autonomous trades.","operationId":"agent_trade_approval_ticket_agent_trade_approval_ticket_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","title":"Chain"}},{"name":"token_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token Address"}},{"name":"wallet_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Wallet Address"}},{"name":"size_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Size Usd"}},{"name":"risk_tolerance","in":"query","required":false,"schema":{"type":"string","default":"medium","title":"Risk Tolerance"}},{"name":"max_slippage_bps","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Max Slippage Bps"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Trade Approval Ticket Agent Trade Approval Ticket Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"5.00"},"amount":"5.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/signals":{"head":{"summary":"Get Signals","description":"Technical signals (RSI, MACD, Bollinger) — gated by x402 payment. HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"get_signals_signals_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h","title":"Interval"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Signals Signals Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Get Signals","description":"Technical signals (RSI, MACD, Bollinger) — gated by x402 payment.","operationId":"get_signals_signals_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h","title":"Interval"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Signals Signals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"4.00"},"amount":"4.00","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/dominance":{"get":{"summary":"Get Dominance","operationId":"get_dominance_dominance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Dominance Dominance Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.20"},"amount":"0.20","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Dominance","operationId":"get_dominance_dominance_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Dominance Dominance Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/basis":{"head":{"summary":"Get Basis","operationId":"get_basis_basis_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Basis Basis Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Basis","operationId":"get_basis_basis_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Basis Basis Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/top-gainers":{"head":{"summary":"Get Top Gainers","operationId":"get_top_gainers_top_gainers_head","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Top Gainers Top Gainers Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Top Gainers","operationId":"get_top_gainers_top_gainers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Top Gainers Top Gainers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.20"},"amount":"0.20","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/top-losers":{"head":{"summary":"Get Top Losers","operationId":"get_top_losers_top_losers_head","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Top Losers Top Losers Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Top Losers","operationId":"get_top_losers_top_losers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Top Losers Top Losers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.20"},"amount":"0.20","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/volume-leaders":{"get":{"summary":"Get Volume Leaders","operationId":"get_volume_leaders_volume_leaders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Volume Leaders Volume Leaders Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.20"},"amount":"0.20","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Volume Leaders","operationId":"get_volume_leaders_volume_leaders_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Volume Leaders Volume Leaders Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/open-interest":{"head":{"summary":"Get Open Interest","operationId":"get_open_interest_open_interest_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Open Interest Open Interest Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Open Interest","operationId":"get_open_interest_open_interest_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Open Interest Open Interest Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/oi-history":{"head":{"summary":"Get Oi History","operationId":"get_oi_history_oi_history_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h","title":"Interval"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Oi History Oi History Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Oi History","operationId":"get_oi_history_oi_history_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h","title":"Interval"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Oi History Oi History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/liquidations":{"get":{"summary":"Get Liquidations","operationId":"get_liquidations_liquidations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Liquidations Liquidations Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.30"},"amount":"0.30","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Liquidations","operationId":"get_liquidations_liquidations_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Liquidations Liquidations Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/funding-history":{"head":{"summary":"Get Funding History","operationId":"get_funding_history_funding_history_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Funding History Funding History Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Funding History","operationId":"get_funding_history_funding_history_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Funding History Funding History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/mark-price":{"head":{"summary":"Get Mark Price","operationId":"get_mark_price_mark_price_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Mark Price Mark Price Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Mark Price","operationId":"get_mark_price_mark_price_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Mark Price Mark Price Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.20"},"amount":"0.20","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/orderbook-depth":{"head":{"summary":"Get Orderbook Depth","operationId":"get_orderbook_depth_orderbook_depth_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Depth"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Orderbook Depth Orderbook Depth Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Orderbook Depth","operationId":"get_orderbook_depth_orderbook_depth_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Depth"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Orderbook Depth Orderbook Depth Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/recent-trades":{"head":{"summary":"Get Recent Trades","operationId":"get_recent_trades_recent_trades_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Recent Trades Recent Trades Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Recent Trades","operationId":"get_recent_trades_recent_trades_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Recent Trades Recent Trades Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/exchange-info":{"head":{"summary":"Get Exchange Info","operationId":"get_exchange_info_exchange_info_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Exchange Info Exchange Info Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Exchange Info","operationId":"get_exchange_info_exchange_info_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Exchange Info Exchange Info Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/altseason":{"get":{"summary":"Get Altseason","operationId":"get_altseason_altseason_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Altseason Altseason Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Altseason","operationId":"get_altseason_altseason_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Altseason Altseason Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/stablecoin-flows":{"get":{"summary":"Get Stablecoin Flows","operationId":"get_stablecoin_flows_stablecoin_flows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Stablecoin Flows Stablecoin Flows Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Stablecoin Flows","operationId":"get_stablecoin_flows_stablecoin_flows_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Stablecoin Flows Stablecoin Flows Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/gas":{"get":{"summary":"Get Gas","operationId":"get_gas_gas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Gas Gas Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Gas","operationId":"get_gas_gas_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Gas Gas Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/defi-tvl":{"get":{"summary":"Get Defi Tvl","operationId":"get_defi_tvl_defi_tvl_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Defi Tvl Defi Tvl Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Defi Tvl","operationId":"get_defi_tvl_defi_tvl_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Defi Tvl Defi Tvl Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/btc-metrics":{"get":{"summary":"Get Btc Metrics","operationId":"get_btc_metrics_btc_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Btc Metrics Btc Metrics Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Btc Metrics","operationId":"get_btc_metrics_btc_metrics_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Btc Metrics Btc Metrics Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/correlation":{"head":{"summary":"Get Correlation","operationId":"get_correlation_correlation_head","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string","default":"BTC,ETH,SOL,BNB,XRP","title":"Symbols"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Correlation Correlation Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry."},"get":{"summary":"Get Correlation","operationId":"get_correlation_correlation_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string","default":"BTC,ETH,SOL,BNB,XRP","title":"Symbols"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Correlation Correlation Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/macro":{"get":{"summary":"Get Macro","operationId":"get_macro_macro_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Macro Macro Get"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.30"},"amount":"0.30","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]},"head":{"summary":"Get Macro","operationId":"get_macro_macro_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Macro Macro Head"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"},"description":"HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","minimal"],"default":"json"},"description":"Response format"}]}},"/.well-known/x402-manifest":{"get":{"summary":"X402 Manifest","description":"x402 manifest - lists all paid endpoints with pricing.","operationId":"x402_manifest__well_known_x402_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Manifest","description":"x402 manifest - lists all paid endpoints with pricing.","operationId":"x402_manifest__well_known_x402_manifest_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402.json":{"get":{"summary":"X402 Manifest","description":"x402 manifest - lists all paid endpoints with pricing.","operationId":"x402_manifest__well_known_x402_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Discovery","description":"x402 Bazaar discovery document — free, no payment required.","operationId":"x402_discovery__well_known_x402_json_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response X402 Discovery  Well Known X402 Json Head"}}}}}}},"/.well-known/x402":{"get":{"summary":"X402 Manifest","description":"x402 manifest - lists all paid endpoints with pricing.","operationId":"x402_manifest__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Manifest","description":"x402 manifest - lists all paid endpoints with pricing.","operationId":"x402_manifest__well_known_x402_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/preview":{"get":{"summary":"Preview All","description":"Free preview of all available endpoints. No payment required. For agent discovery.","operationId":"preview_all_preview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","description":"Agent-readable discovery file for LLM crawlers and autonomous buyers.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/":{"get":{"summary":"Root Discovery","operationId":"root_discovery__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Root Discovery  Get"}}}}}},"post":{"summary":"Root Discovery","operationId":"root_discovery__post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Root Discovery  Post"}}}}}},"head":{"summary":"Root Discovery","operationId":"root_discovery__head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Root Discovery  Head"}}}}}}},"/agent-launch.json":{"get":{"summary":"Agent Launch Manifest","description":"Buyer-agent launch facts for crawlers, builders, and outbound sales.","operationId":"agent_launch_manifest_agent_launch_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agent Launch Manifest Agent Launch Json Get"}}}}}}},"/virtuals-direct-buy.json":{"get":{"summary":"Virtuals Direct Buy Manifest","description":"ACP direct-buy coordinates for buyer agents bypassing Butler search.","operationId":"virtuals_direct_buy_manifest_virtuals_direct_buy_json_get","parameters":[{"name":"workflow","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow"}},{"name":"offering","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Offering"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Virtuals Direct Buy Manifest Virtuals Direct Buy Json Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/acp-direct/guarded-swap-execute-dry-run":{"get":{"summary":"Acp Direct Guarded Swap Execute Dry Run Bridge","operationId":"acp_direct_guarded_swap_execute_dry_run_bridge_acp_direct_guarded_swap_execute_dry_run_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Guarded Swap Execute Dry Run Bridge Acp Direct Guarded Swap Execute Dry Run Get"}}}}},"description":"Free handoff to Virtuals ACP `guarded_swap_execute_dry_run`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"guarded_swap_execute_dry_run","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=guarded_swap_execute_dry_run","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}},"post":{"summary":"Acp Direct Guarded Swap Execute Dry Run Bridge","operationId":"acp_direct_guarded_swap_execute_dry_run_bridge_acp_direct_guarded_swap_execute_dry_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Guarded Swap Execute Dry Run Bridge Acp Direct Guarded Swap Execute Dry Run Post"}}}}},"description":"Free handoff to Virtuals ACP `guarded_swap_execute_dry_run`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"guarded_swap_execute_dry_run","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=guarded_swap_execute_dry_run","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}},"head":{"summary":"Acp Direct Guarded Swap Execute Dry Run Bridge","operationId":"acp_direct_guarded_swap_execute_dry_run_bridge_acp_direct_guarded_swap_execute_dry_run_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Guarded Swap Execute Dry Run Bridge Acp Direct Guarded Swap Execute Dry Run Head"}}}}},"description":"Free handoff to Virtuals ACP `guarded_swap_execute_dry_run`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"guarded_swap_execute_dry_run","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=guarded_swap_execute_dry_run","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}}},"/acp-direct/offer-angle-ping":{"get":{"summary":"Acp Direct Offer Angle Ping Bridge","operationId":"acp_direct_offer_angle_ping_bridge_acp_direct_offer_angle_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Offer Angle Ping Bridge Acp Direct Offer Angle Ping Get"}}}}},"description":"Free handoff to Virtuals ACP `offer_angle_ping`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"offer_angle_ping","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=offer_angle_ping","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}},"post":{"summary":"Acp Direct Offer Angle Ping Bridge","operationId":"acp_direct_offer_angle_ping_bridge_acp_direct_offer_angle_ping_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Offer Angle Ping Bridge Acp Direct Offer Angle Ping Post"}}}}},"description":"Free handoff to Virtuals ACP `offer_angle_ping`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"offer_angle_ping","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=offer_angle_ping","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}},"head":{"summary":"Acp Direct Offer Angle Ping Bridge","operationId":"acp_direct_offer_angle_ping_bridge_acp_direct_offer_angle_ping_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Offer Angle Ping Bridge Acp Direct Offer Angle Ping Head"}}}}},"description":"Free handoff to Virtuals ACP `offer_angle_ping`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"offer_angle_ping","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=offer_angle_ping","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}}},"/acp-direct/token-safety-check":{"get":{"summary":"Acp Direct Token Safety Check Bridge","operationId":"acp_direct_token_safety_check_bridge_acp_direct_token_safety_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Token Safety Check Bridge Acp Direct Token Safety Check Get"}}}}},"description":"Free handoff to Virtuals ACP `token_safety_check`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"token_safety_check","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=token_safety_check","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}},"post":{"summary":"Acp Direct Token Safety Check Bridge","operationId":"acp_direct_token_safety_check_bridge_acp_direct_token_safety_check_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Token Safety Check Bridge Acp Direct Token Safety Check Post"}}}}},"description":"Free handoff to Virtuals ACP `token_safety_check`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"token_safety_check","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=token_safety_check","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}},"head":{"summary":"Acp Direct Token Safety Check Bridge","operationId":"acp_direct_token_safety_check_bridge_acp_direct_token_safety_check_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp Direct Token Safety Check Bridge Acp Direct Token Safety Check Head"}}}}},"description":"Free handoff to Virtuals ACP `token_safety_check`. This route returns ACP job-create coordinates only; the buyer must create and complete the ACP job separately. The handoff itself is not revenue.","x-acp-direct-buy":{"seller":"Fia Signals","agent_id":18788,"hire_me":"https://app.virtuals.io/acp/agent-details/18788","seller_wallet":"0xA23f0e343293d0D4BfF50cF32A55F1c037a60Ba6","offering":"token_safety_check","handoff_price_usdc":0,"direct_buy_manifest":"https://x402.fiasignals.com/virtuals-direct-buy.json?offering=token_safety_check","truth_label":"free_acp_handoff_not_acp_sale","conversion_count_rule":"Count only completed non-internal ACP jobs, verified revenue, non-internal buyer wallet plus reconciled payment/job proof, or buyer feedback tied to a real paid attempt."}}},"/acp-direct/{slug}/.well-known/agent-card.json":{"head":{"summary":"Acp Direct Nested Agent Card","operationId":"acp_direct_nested_agent_card_acp_direct__slug___well_known_agent_card_json_head","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Acp Direct Nested Agent Card Acp Direct  Slug   Well Known Agent Card Json Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Acp Direct Nested Agent Card","operationId":"acp_direct_nested_agent_card_acp_direct__slug___well_known_agent_card_json_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Acp Direct Nested Agent Card Acp Direct  Slug   Well Known Agent Card Json Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/acp-direct/{slug}/.well-known/agent.json":{"head":{"summary":"Acp Direct Nested Agent Json","operationId":"acp_direct_nested_agent_json_acp_direct__slug___well_known_agent_json_head","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Acp Direct Nested Agent Json Acp Direct  Slug   Well Known Agent Json Head"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Acp Direct Nested Agent Json","operationId":"acp_direct_nested_agent_json_acp_direct__slug___well_known_agent_json_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Acp Direct Nested Agent Json Acp Direct  Slug   Well Known Agent Json Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/guarded-swap-execute/dry-run":{"get":{"summary":"Guarded Swap Execute Direct Buy Hint","description":"Compatibility hint for clients that infer an HTTP route from the ACP offer name.","operationId":"guarded_swap_execute_direct_buy_hint_guarded_swap_execute_dry_run_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Guarded Swap Execute Direct Buy Hint Guarded Swap Execute Dry Run Get"}}}}}},"post":{"summary":"Guarded Swap Execute Direct Buy Hint","description":"Compatibility hint for clients that infer an HTTP route from the ACP offer name.","operationId":"guarded_swap_execute_direct_buy_hint_guarded_swap_execute_dry_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Guarded Swap Execute Direct Buy Hint Guarded Swap Execute Dry Run Post"}}}}}}},"/guarded-swap-execute":{"get":{"summary":"Guarded Swap Execute Direct Buy Hint","description":"Compatibility hint for clients that infer an HTTP route from the ACP offer name.","operationId":"guarded_swap_execute_direct_buy_hint_guarded_swap_execute_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Guarded Swap Execute Direct Buy Hint Guarded Swap Execute Get"}}}}}},"post":{"summary":"Guarded Swap Execute Direct Buy Hint","description":"Compatibility hint for clients that infer an HTTP route from the ACP offer name.","operationId":"guarded_swap_execute_direct_buy_hint_guarded_swap_execute_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Guarded Swap Execute Direct Buy Hint Guarded Swap Execute Post"}}}}}}},"/offer-angle-ping":{"get":{"summary":"Offer Angle Ping Direct Buy Hint","description":"Compatibility hint for clients that infer an HTTP route from the ACP offer name.","operationId":"offer_angle_ping_direct_buy_hint_offer_angle_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Offer Angle Ping Direct Buy Hint Offer Angle Ping Get"}}}}}},"post":{"summary":"Offer Angle Ping Direct Buy Hint","description":"Compatibility hint for clients that infer an HTTP route from the ACP offer name.","operationId":"offer_angle_ping_direct_buy_hint_offer_angle_ping_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Offer Angle Ping Direct Buy Hint Offer Angle Ping Post"}}}}}},"head":{"summary":"Offer Angle Ping Direct Buy Hint","description":"Compatibility hint for clients that infer an HTTP route from the ACP offer name.","operationId":"offer_angle_ping_direct_buy_hint_offer_angle_ping_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Offer Angle Ping Direct Buy Hint Offer Angle Ping Head"}}}}}}},"/acp/x402/guarded-swap-execute/dry-run":{"get":{"summary":"Acp X402 Guarded Swap Execute Bridge Hint","description":"Compatibility hint for clients that infer /acp/x402/* bridge paths.","operationId":"acp_x402_guarded_swap_execute_bridge_hint_acp_x402_guarded_swap_execute_dry_run_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp X402 Guarded Swap Execute Bridge Hint Acp X402 Guarded Swap Execute Dry Run Get"}}}}}},"post":{"summary":"Acp X402 Guarded Swap Execute Bridge Hint","description":"Compatibility hint for clients that infer /acp/x402/* bridge paths.","operationId":"acp_x402_guarded_swap_execute_bridge_hint_acp_x402_guarded_swap_execute_dry_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp X402 Guarded Swap Execute Bridge Hint Acp X402 Guarded Swap Execute Dry Run Post"}}}}}},"head":{"summary":"Acp X402 Guarded Swap Execute Bridge Hint","description":"Compatibility hint for clients that infer /acp/x402/* bridge paths.","operationId":"acp_x402_guarded_swap_execute_bridge_hint_acp_x402_guarded_swap_execute_dry_run_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp X402 Guarded Swap Execute Bridge Hint Acp X402 Guarded Swap Execute Dry Run Head"}}}}}}},"/acp/x402/guarded-swap-execute":{"get":{"summary":"Acp X402 Guarded Swap Execute Bridge Hint","description":"Compatibility hint for clients that infer /acp/x402/* bridge paths.","operationId":"acp_x402_guarded_swap_execute_bridge_hint_acp_x402_guarded_swap_execute_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp X402 Guarded Swap Execute Bridge Hint Acp X402 Guarded Swap Execute Get"}}}}}},"post":{"summary":"Acp X402 Guarded Swap Execute Bridge Hint","description":"Compatibility hint for clients that infer /acp/x402/* bridge paths.","operationId":"acp_x402_guarded_swap_execute_bridge_hint_acp_x402_guarded_swap_execute_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp X402 Guarded Swap Execute Bridge Hint Acp X402 Guarded Swap Execute Post"}}}}}},"head":{"summary":"Acp X402 Guarded Swap Execute Bridge Hint","description":"Compatibility hint for clients that infer /acp/x402/* bridge paths.","operationId":"acp_x402_guarded_swap_execute_bridge_hint_acp_x402_guarded_swap_execute_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Acp X402 Guarded Swap Execute Bridge Hint Acp X402 Guarded Swap Execute Head"}}}}}}},"/quickstart.json":{"get":{"summary":"Quickstart Json","description":"Copy-paste x402 integration manifest for buyer agents that hit a 402.","operationId":"quickstart_json_quickstart_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Quickstart Json Quickstart Json Get"}}}}}}},"/integrate":{"get":{"summary":"Integrate Markdown","description":"Buyer-agent integration packet for sales/distribution surfaces.","operationId":"integrate_markdown_integrate_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/agent.json":{"get":{"summary":"Well Known Agent Json","description":"AgentSEO/Open402 crawler manifest.","operationId":"well_known_agent_json__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Agent Json  Well Known Agent Json Get"}}}}}}},"/.well-known/agent-card.json":{"get":{"summary":"Well Known Agent Card Json","description":"A2A/Agora402-compatible AgentCard.","operationId":"well_known_agent_card_json__well_known_agent_card_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Agent Card Json  Well Known Agent Card Json Get"}}}}}}},"/.well-known/glama.json":{"get":{"summary":"Well Known Glama Json","description":"Glama/MCP crawler metadata alias for agents probing well-known manifests.","operationId":"well_known_glama_json__well_known_glama_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Glama Json  Well Known Glama Json Get"}}}}}},"head":{"summary":"Well Known Glama Json","description":"Glama/MCP crawler metadata alias for agents probing well-known manifests.","operationId":"well_known_glama_json__well_known_glama_json_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Glama Json  Well Known Glama Json Head"}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"summary":"Well Known Oauth Protected Resource","description":"RFC-style protected resource metadata for MCP auth-enrichment crawlers.","operationId":"well_known_oauth_protected_resource__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Oauth Protected Resource  Well Known Oauth Protected Resource Get"}}}}}},"head":{"summary":"Well Known Oauth Protected Resource","description":"RFC-style protected resource metadata for MCP auth-enrichment crawlers.","operationId":"well_known_oauth_protected_resource__well_known_oauth_protected_resource_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Oauth Protected Resource  Well Known Oauth Protected Resource Head"}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"summary":"Well Known Oauth Protected Resource Mcp","description":"MCP-specific protected resource metadata alias.","operationId":"well_known_oauth_protected_resource_mcp__well_known_oauth_protected_resource_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Oauth Protected Resource Mcp  Well Known Oauth Protected Resource Mcp Get"}}}}}},"head":{"summary":"Well Known Oauth Protected Resource Mcp","description":"MCP-specific protected resource metadata alias.","operationId":"well_known_oauth_protected_resource_mcp__well_known_oauth_protected_resource_mcp_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Oauth Protected Resource Mcp  Well Known Oauth Protected Resource Mcp Head"}}}}}}},"/api/services":{"get":{"summary":"Api Services","description":"Structured service list for x402 discovery crawlers.","operationId":"api_services_api_services_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Services Api Services Get"}}}}}}},"/api/discover":{"get":{"summary":"Api Services","description":"Structured service list for x402 discovery crawlers.","operationId":"api_services_api_discover_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Services Api Discover Get"}}}}}}},"/api/services/{service_id}":{"get":{"summary":"Api Service Detail","description":"Structured detail for one Fia service.","operationId":"api_service_detail_api_services__service_id__get","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string","title":"Service Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Api Service Detail Api Services  Service Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/openapi.json":{"get":{"summary":"Openapi Aliases","description":"OpenAPI aliases for crawlers that probe common alternate paths.","operationId":"openapi_aliases__well_known_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Openapi Aliases  Well Known Openapi Json Get"}}}}}}},"/docs/openapi.json":{"get":{"summary":"Openapi Aliases","description":"OpenAPI aliases for crawlers that probe common alternate paths.","operationId":"openapi_aliases_docs_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Openapi Aliases Docs Openapi Json Get"}}}}}}},"/mcp/.well-known/mcp.json":{"get":{"summary":"Well Known Mcp Json","description":"MCP discovery document.","operationId":"well_known_mcp_json_mcp__well_known_mcp_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Mcp Json Mcp  Well Known Mcp Json Get"}}}}}},"head":{"summary":"Well Known Mcp Json","description":"MCP discovery document.","operationId":"well_known_mcp_json_mcp__well_known_mcp_json_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Mcp Json Mcp  Well Known Mcp Json Head"}}}}}}},"/.well-known/mcp.json":{"get":{"summary":"Well Known Mcp Json","description":"MCP discovery document.","operationId":"well_known_mcp_json__well_known_mcp_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Mcp Json  Well Known Mcp Json Get"}}}}}},"head":{"summary":"Well Known Mcp Json","description":"MCP discovery document.","operationId":"well_known_mcp_json__well_known_mcp_json_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Mcp Json  Well Known Mcp Json Head"}}}}}}},"/mcp":{"get":{"summary":"Mcp Get","description":"Human/crawler-readable MCP endpoint summary.","operationId":"mcp_get_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Get Mcp Get"}}}}}},"post":{"summary":"Mcp Post","description":"Minimal JSON-RPC MCP surface for discovery crawlers and simple agents.","operationId":"mcp_post_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Post Mcp Post"}}}}}},"head":{"summary":"Mcp Get","description":"Human/crawler-readable MCP endpoint summary.","operationId":"mcp_get_mcp_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Get Mcp Head"}}}}}}},"/mcp/mcp":{"get":{"summary":"Mcp Get","description":"Human/crawler-readable MCP endpoint summary.","operationId":"mcp_get_mcp_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Get Mcp Mcp Get"}}}}}},"post":{"summary":"Mcp Post","description":"Minimal JSON-RPC MCP surface for discovery crawlers and simple agents.","operationId":"mcp_post_mcp_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Post Mcp Mcp Post"}}}}}},"head":{"summary":"Mcp Get","description":"Human/crawler-readable MCP endpoint summary.","operationId":"mcp_get_mcp_mcp_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Get Mcp Mcp Head"}}}}}}},"/mcp/mcp/stream":{"get":{"summary":"Mcp Stream Get","description":"Compatibility metadata for runtimes that probe streamable MCP paths.","operationId":"mcp_stream_get_mcp_mcp_stream_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Stream Get Mcp Mcp Stream Get"}}}}}},"post":{"summary":"Mcp Post","description":"Minimal JSON-RPC MCP surface for discovery crawlers and simple agents.","operationId":"mcp_post_mcp_mcp_stream_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Post Mcp Mcp Stream Post"}}}}}},"head":{"summary":"Mcp Stream Get","description":"Compatibility metadata for runtimes that probe streamable MCP paths.","operationId":"mcp_stream_get_mcp_mcp_stream_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Stream Get Mcp Mcp Stream Head"}}}}}}},"/performance/reputation":{"get":{"summary":"Performance Reputation","description":"Crawler-facing reputation summary linked to CDP and local funnel truth.","operationId":"performance_reputation_performance_reputation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Performance Reputation Performance Reputation Get"}}}}}},"head":{"summary":"Performance Reputation","description":"Crawler-facing reputation summary linked to CDP and local funnel truth.","operationId":"performance_reputation_performance_reputation_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Performance Reputation Performance Reputation Head"}}}}}}},"/performance":{"get":{"summary":"Performance Reputation","description":"Crawler-facing reputation summary linked to CDP and local funnel truth.","operationId":"performance_reputation_performance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Performance Reputation Performance Get"}}}}}},"head":{"summary":"Performance Reputation","description":"Crawler-facing reputation summary linked to CDP and local funnel truth.","operationId":"performance_reputation_performance_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Performance Reputation Performance Head"}}}}}}},"/robots.txt":{"get":{"summary":"Robots Txt","description":"Crawler hints for agent and search discovery.","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap Xml","description":"Small sitemap for crawler discovery.","operationId":"sitemap_xml_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/favicon.ico":{"get":{"summary":"Favicon Ico","description":"Crawler-safe icon alias for catalogs that only request /favicon.ico.","operationId":"favicon_ico_favicon_ico_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/logo.png":{"get":{"summary":"Logo Png","operationId":"logo_png_logo_png_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/ai-plugin.json":{"get":{"summary":"Ai Plugin Manifest","description":"OpenAI-style plugin manifest for agent crawlers that still look for it.","operationId":"ai_plugin_manifest__well_known_ai_plugin_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ai Plugin Manifest  Well Known Ai Plugin Json Get"}}}}}}},"/volatility":{"head":{"summary":"Volatility Surface","description":"Realised volatility, ATR, and vol regime for any symbol. Price: $0.002 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"volatility_surface_volatility_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Volatility Surface","description":"Realised volatility, ATR, and vol regime for any symbol. Price: $0.002","operationId":"volatility_surface_volatility_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/regime-history":{"head":{"summary":"Regime History","description":"BTC regime classification history with confidence scores. Price: $0.002 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"regime_history_regime_history_head","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Regime History","description":"BTC regime classification history with confidence scores. Price: $0.002","operationId":"regime_history_regime_history_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/spread-analysis":{"head":{"summary":"Spread Analysis","description":"Bid-ask spread analysis and market microstructure. Price: $0.002 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"spread_analysis_spread_analysis_head","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Spread Analysis","description":"Bid-ask spread analysis and market microstructure. Price: $0.002","operationId":"spread_analysis_spread_analysis_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT","title":"Symbol"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/market-summary":{"head":{"summary":"Market Summary","description":"Full market summary: regime + F&G + dominance + top movers in one call. Price: $0.005 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"market_summary_market_summary_head","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Market Summary","description":"Full market summary: regime + F&G + dominance + top movers in one call. Price: $0.005","operationId":"market_summary_market_summary_get","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.80"},"amount":"0.80","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/portfolio-heat":{"head":{"summary":"Portfolio Heat","description":"24h performance heatmap for a portfolio of symbols. Price: $0.003 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"portfolio_heat_portfolio_heat_head","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string","default":"BTC,ETH,SOL,BNB,XRP","title":"Symbols"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Portfolio Heat","description":"24h performance heatmap for a portfolio of symbols. Price: $0.003","operationId":"portfolio_heat_portfolio_heat_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string","default":"BTC,ETH,SOL,BNB,XRP","title":"Symbols"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.25"},"amount":"0.25","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/discovery/resources":{"get":{"summary":"Discovery Resources","description":"Bazaar v2.0 discovery — built from gateway routes dict plus ACP direct-buy resources.","operationId":"discovery_resources_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Discovery Resources Discovery Resources Get"}}}}}}},"/{full_path}":{"options":{"summary":"Options Discovery","description":"Machine-readable route introspection for crawlers and buyer runtimes.","operationId":"options_discovery__full_path__options","parameters":[{"name":"full_path","in":"path","required":true,"schema":{"type":"string","title":"Full Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/solana/trending":{"head":{"summary":"Solana Trending","description":"Top trending Solana tokens right now. Price: $0.002 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_trending_v1_solana_trending_head","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana Trending","description":"Top trending Solana tokens right now. Price: $0.002","operationId":"solana_trending_v1_solana_trending_get","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.002"},"amount":"0.002","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/v1/solana/new-launches":{"head":{"summary":"Solana New Launches","description":"Newly launched Solana tokens. Price: $0.002 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_new_launches_v1_solana_new_launches_head","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana New Launches","description":"Newly launched Solana tokens. Price: $0.002","operationId":"solana_new_launches_v1_solana_new_launches_get","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.002"},"amount":"0.002","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/v1/solana/scan":{"head":{"summary":"Solana Scan","description":"Solana token scanner — risk, liquidity, holder analysis. Price: $0.005 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_scan_v1_solana_scan_head","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana Scan","description":"Solana token scanner — risk, liquidity, holder analysis. Price: $0.005","operationId":"solana_scan_v1_solana_scan_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.005"},"amount":"0.005","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/v1/solana/scan/deep":{"head":{"summary":"Solana Scan Deep","description":"Deep Solana token analysis — full risk profile. Price: $0.01 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_scan_deep_v1_solana_scan_deep_head","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana Scan Deep","description":"Deep Solana token analysis — full risk profile. Price: $0.01","operationId":"solana_scan_deep_v1_solana_scan_deep_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.02"},"amount":"0.02","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/v1/solana/wallet/{address}":{"head":{"summary":"Solana Wallet","description":"Solana wallet intelligence — holdings, PnL, activity. Price: $0.005 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_wallet_v1_solana_wallet__address__head","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana Wallet","description":"Solana wallet intelligence — holdings, PnL, activity. Price: $0.005","operationId":"solana_wallet_v1_solana_wallet__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.005"},"amount":"0.005","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/v1/solana/smart-money":{"head":{"summary":"Solana Smart Money","description":"Smart money wallet tracking on Solana. Price: $0.005 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_smart_money_v1_solana_smart_money_head","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana Smart Money","description":"Smart money wallet tracking on Solana. Price: $0.005","operationId":"solana_smart_money_v1_solana_smart_money_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.005"},"amount":"0.005","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/v1/solana/yields":{"head":{"summary":"Solana Yields","description":"Best yield opportunities on Solana DeFi. Price: $0.003 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_yields_v1_solana_yields_head","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana Yields","description":"Best yield opportunities on Solana DeFi. Price: $0.003","operationId":"solana_yields_v1_solana_yields_get","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.002"},"amount":"0.002","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}},"/v1/solana/whales":{"head":{"summary":"Solana Whales","description":"Solana whale wallet activity. Price: $0.003 HEAD is discovery/introspection only; do not attach x402 payment. Use GET for the unpaid challenge and paid retry.","operationId":"solana_whales_v1_solana_whales_head","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-head-payment-policy":{"payment":"not_accepted_on_head","client_next_step":"Use GET for the x402 challenge and paid retry. Do not attach x402 payment to HEAD.","paid_head_status":405,"failure_stage":"method_contract"}},"get":{"summary":"Solana Whales","description":"Solana whale wallet activity. Price: $0.003","operationId":"solana_whales_v1_solana_whales_get","parameters":[{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string","title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string","title":"Payment-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"x402Version":{"type":"integer","example":2},"accepts":{"type":"array","items":{"type":"object"}},"resource":{"type":"string"},"quickstart":{"type":"string","format":"uri"},"retry_headers":{"type":"array","items":{"type":"string"},"example":["X-PAYMENT","PAYMENT-SIGNATURE"]},"header_value_rule":{"type":"string","example":"X-PAYMENT and PAYMENT-SIGNATURE must carry the full x402 payment payload created from the HTTP 402 challenge. Do not send a bare wallet signature."},"client_next_step":{"type":"string"},"truth_status":{"type":"string"}}}}}}},"x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":{"mode":"fixed","currency":"USD","amount":"0.005"},"amount":"0.005","network":"eip155:8453","asset":"USDC","payTo":"0x8D32c6a3EE3fB8a8b4c5378F7C5a26CC320a853F"}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}