Quick Reference
At-a-glance view of what's provable in Proof of SQL
| Feature | Status | |
|---|---|---|
| SELECT & FROM | ||
| SELECT columns | Supported | |
| SELECT * | Supported | |
| LIMIT / OFFSET | Supported | |
| WHERE Clause | ||
| =, !=, <, >, <=, >= | Supported | |
| AND, OR, NOT | Supported | |
| BETWEEN | Not Supported | |
| IN (...) | Not Supported | |
| LIKE / ILIKE | Not Supported | |
| IS NULL | Not Supported | |
| Aggregation | ||
| GROUP BY | Supported | |
| SUM() | Supported | |
| COUNT(*) | Supported | |
| AVG(), MIN(), MAX() | Not Supported | |
| HAVING | Not Supported | |
| Joins & Unions | ||
| INNER JOIN | Supported | |
| LEFT / RIGHT / FULL JOIN | Not Supported | |
| UNION ALL | Supported | |
| UNION (distinct) | Not Supported | |
| Advanced | ||
| Query parameters ($1, $2) | Supported | |
| ORDER BY | Not Supported | |
| Subqueries | Not Supported | |
| CTEs (WITH clause) | Not Supported | |
| Window functions | Not Supported | |
Detailed Reference
Test Your Query
Always verify your query via the RPC endpoint before deploying. If you receive an error, the query is not provable.
bash
curl -X POST https://rpc.mainnet.sxt.network \ -H "Content-Type: application/json" -d '{ "jsonrpc": "2.0", "id": 1, "method": "commitments_v1_evmProofPlan", "params": { "query": "SELECT NAME FROM NAMESPACE.TABLE WHERE ID = 1" } }'Response Interpretation
Success
Response contains "proofPlan": "0x..."
Failure
Response contains "error" with details
Complete Examples
Copy-paste ready queries demonstrating provable patterns
Provable Query Examples
sql
-- Simple SELECT with WHERESELECT NAME, AREA FROM NAMESPACE.LOCATIONS WHERE LONGITUDE = 60
-- Multiple conditions (replacing BETWEEN)SELECT ID, PRICE FROM NAMESPACE.PRODUCTSWHERE PRICE >= 10 AND PRICE <= 100 AND STATUS = 'active'
-- Multiple conditions (replacing IN)SELECT * FROM NAMESPACE.ORDERSWHERE STATUS = 'pending' OR STATUS = 'processing' OR STATUS = 'shipped'
-- Aggregation (correct order: SUMs then COUNT)SELECT CATEGORY, SUM(REVENUE), SUM(QUANTITY), COUNT(*)FROM NAMESPACE.SALESGROUP BY CATEGORY
-- Simple INNER JOINSELECT u.NAME, o.TOTALFROM NAMESPACE.USERS uINNER JOIN NAMESPACE.ORDERS o ON u.ID = o.IDWHERE o.TOTAL > 100
-- UNION ALLSELECT ID, NAME, 'SOURCE_A' AS SOURCE FROM NAMESPACE.TABLE_AUNION ALLSELECT ID, NAME, 'SOURCE_B' AS SOURCE FROM NAMESPACE.TABLE_B
-- Arithmetic expressionsSELECT ID, PRICE, QUANTITY, PRICE * QUANTITY AS LINE_TOTALFROM NAMESPACE.ORDER_ITEMSWHERE QUANTITY > 0