Ethereum-Compatible Methods
OXN supports the standard Ethereum JSON-RPC surface with a few behavioral differences noted below.
Account and balance methods
| Method | Support | Notes |
|---|
eth_accounts | ✅ | Returns configured accounts (mostly empty on public RPC). |
eth_getBalance | ✅ | Standard. |
eth_getTransactionCount | ✅ | Standard nonce lookup. |
eth_getCode | ✅ | Returns deployed bytecode. |
eth_getStorageAt | ✅ | Returns encrypted storage bytes (ciphertext). |
Note: eth_getStorageAt returns the encrypted value from storage. To read decrypted state, call a view function that reads and returns the value — the runtime decrypts inside the enclave.
Block methods
| Method | Support | Notes |
|---|
eth_blockNumber | ✅ | Latest block height. |
eth_getBlockByNumber | ✅ | Standard block lookup. |
eth_getBlockByHash | ✅ | Standard. |
eth_getBlockTransactionCountByNumber | ✅ | Standard. |
eth_getBlockTransactionCountByHash | ✅ | Standard. |
Transaction methods
| Method | Support | Notes |
|---|
eth_sendRawTransaction | ✅ | Standard. data can be plain or encrypted CBOR envelope. |
eth_getTransactionByHash | ✅ | Returns encrypted data for encrypted transactions. |
eth_getTransactionReceipt | ✅ | Standard. Logs are encrypted for encrypted transactions. |
eth_getTransactionByBlockNumberAndIndex | ✅ | Standard. |
Call and estimation
| Method | Support | Notes |
|---|
eth_call | ✅ | Standard, plus signed-query and encrypted variants. See below. |
eth_estimateGas | Set gasLimit explicitly (recommended). | See Gas and Fees. |
eth_gasPrice | ✅ | Returns current gas price. 0 is accepted on testnet. |
eth_call variants
The single eth_call method serves three modes:
- Plain call. Standard parameters —
data, from, to, etc. Returns plaintext result.
- Encrypted call.
data is a CBOR envelope. Returns encrypted response.
- Signed query.
data is a CBOR envelope with an embedded signature; from inside the envelope populates msg.sender.
The SDK handles selecting the right mode based on how you invoke it (wrapped provider vs bare provider, and whether you attached a signer).
Log and filter methods
| Method | Support | Notes |
|---|
eth_getLogs | ✅ | Filter across blocks. Returns ciphertext for encrypted events. |
eth_newFilter | ✅ | Standard. |
eth_newBlockFilter | ✅ | Standard. |
eth_newPendingTransactionFilter | ✅ | Standard. |
eth_getFilterChanges | ✅ | Standard. |
eth_uninstallFilter | ✅ | Standard. |
Network and client identification
| Method | Support | Notes |
|---|
eth_chainId | ✅ | Returns 0xba (186) for OXN Testnet. |
eth_syncing | ✅ | Public RPC always returns false (fully synced). |
net_version | ✅ | Same as eth_chainId value in decimal. |
net_listening | ✅ | Always true. |
net_peerCount | ✅ | Returns peer count on the node. |
web3_clientVersion | ✅ | Node software version string. |
web3_sha3 | ✅ | Standard. |
Debug and trace methods
| Method | Support | Notes |
|---|
debug_traceTransaction | Partial | Public RPC may disable under load. Returns opaque calldata for encrypted transactions. |
debug_traceCall | Partial | Same as above. |
What's not supported
| Method | Reason |
|---|
eth_signTransaction | Public RPC does not hold keys. |
eth_signTypedData_v4 | Public RPC does not hold keys. |
eth_getProof | Not implemented in current runtime. |
EIP-1559 maxFeePerGas / maxPriorityFeePerGas in eth_gasPrice | OXN uses legacy fee model. |
eth_feeHistory | Legacy fee model — no base fee history. |
Next steps