{"endpoint":"/v1/sql","method":"POST","body":{"shape":{"query":"SELECT ..."},"alternative":"raw text/plain SQL body works too"},"contract":{"max_query_bytes":4096,"forced_limit":1000,"timeout_ms":8000,"requires":"every query must reference block_num in the WHERE clause","forbidden":"SQL comments, multiple statements, DDL/DML, file-IO functions, system catalogs"},"available_tables":["_/arbitrum_one@4.0.1.blocks","_/arbitrum_one@4.0.1.transactions","_/arbitrum_one@4.0.1.logs"],"udfs":["evm_decode_log(topic1, topic2, topic3, data, signature)","evm_topic(signature)","evm_decode_params(input, signature)","evm_encode_params(args..., signature)","evm_decode_type(data, type)","evm_encode_type(value, type)"],"example":"SELECT date_trunc('minute', timestamp) AS bucket,\n       COUNT(*) AS swaps\nFROM \"_/arbitrum_one@4.0.1\".logs\nWHERE block_num BETWEEN 466940000 AND 466960000\n  AND topic0 = evm_topic('Swap(address,address,int256,int256,uint160,uint128,int24)')\nGROUP BY 1\nORDER BY 1"}