c8ntinuum uses Ethereum-compatible JSON-RPC error envelopes. Exact message text can vary by client, proxy, and execution path, so integrations should branch on error category and transaction receipt status rather than exact strings.

Standard JSON-RPC errors

CodeMessageDescription
-32700Parse errorInvalid JSON
-32600Invalid requestMissing required fields
-32601Method not foundMethod does not exist or is not supported
-32602Invalid paramsIncorrect method parameters
-32603Internal errorInternal server or proxy error

EVM execution errors

CategoryTypical codeTypical message patternHandling guidance
Contract revert-32000 or library-specific call exceptionexecution reverted, ABI Error(string), or custom revert dataDecode revert data when available; do not credit failed transactions.
Out of gas-32000out of gas, gas required exceeds allowance, or ErrOutOfGasRe-estimate gas against the same calldata and network.
Insufficient funds-32000insufficient fundsCheck native CTM balance for value plus max fee.
Nonce too low-32000nonce too low, already known, or replacement conflictRefresh pending nonce before rebroadcasting.
Nonce too high-32000nonce too highWait for missing nonce or rebroadcast the earlier transaction.
Fee too low-32000transaction underpriced, max fee per gas less than block base fee, or similarUse current fee data and respect the minimum gas price in Gas on c8ntinuum.
Unsupported method-32601method not foundConfirm the namespace is enabled on the selected RPC profile.
Rate limitedHTTP 429Provider-specific bodyBack off and retry with jitter; see RPC Providers.

Precompile errors

Precompile reverts are documented in the Precompile ABI Reference.
CaseBehavior
Stateful precompile action returns an errorStandard ABI Error(string) revert data
Unknown selector, short calldata, or failed ABI unpack in most stateless precompilesPlain execution reverted
SDK gas panic or exhausted EVM gasErrOutOfGas
ERC20 extension SDK/bank errorsERC20-style revert strings such as ERC20: transfer amount exceeds balance

Handling Errors

Most Ethereum libraries parse these errors into library-specific exception types. Always inspect transaction receipts for submitted transactions:
try {
  await contract.someMethod();
} catch (error) {
  if (error.code === "CALL_EXCEPTION") {
    console.log("Reverted:", error.reason);
  }
}
For exchange and custody systems, use Node Interface Calls and Deposit Processing for receipt-based confirmation behavior.