Fundamentals
Error Codes
JSON-RPC standard errors
| Code | Message | Description |
|---|---|---|
| -32700 | Parse error | The request body is not valid JSON |
| -32600 | Invalid request | Missing required fields (jsonrpc, method) |
| -32601 | Method not found | The method does not exist or is blocked |
| -32602 | Invalid params | Wrong number or type of parameters |
| -32603 | Internal error | Server-side error during execution |
Execution errors
| Code | Message | Description |
|---|---|---|
| -32000 | Server error | Generic execution error (includes revert reasons) |
| -32005 | Rate limit exceeded | Too many requests (see Rate Limits) |
| 3 | Execution reverted | Contract call reverted (response includes revert data) |
HTTP status codes
| Status | Meaning |
|---|---|
| 200 | Success (check response body for JSON-RPC errors) |
| 403 | Method blocked (admin, miner, personal namespaces) |
| 404 | Path not found (only / accepts RPC requests) |
| 413 | Request body exceeds 1 MB |
| 429 | Rate limit exceeded |
| 502 | Backend temporarily unavailable |
| 504 | Request timed out (complex traces may exceed the timeout) |
Blocked methods
The following method namespaces are blocked and return HTTP 403 with error code -32601:
admin_*(all methods)miner_*(all methods)personal_*(all methods)- Selected
debug_*methods that modify node state
See Blocked Methods for the complete list.
Error response format
All errors follow the JSON-RPC 2.0 error format:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32601,
"message": "Method not found"
}
}
For execution reverts, the data field contains the ABI-encoded revert reason:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": 3,
"message": "execution reverted: Insufficient balance",
"data": "0x08c379a0000000000000000000000000000000000000000000..."
}
}
