> ## Documentation Index
> Fetch the complete documentation index at: https://docs.validationcloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

![](https://mintcdn.com/validation-cloud/kmKhddNTNWl0kZp8/nodeapi/assets/xlayer-overview-2x.png?fit=max\&auto=format\&n=kmKhddNTNWl0kZp8\&q=85\&s=9ed6f930a0df8b4ce3b5d9076bad8b76)

![](https://docs.validationcloud.io/nodeapi/assets/chains/xlayer.svg)

Start building on X Layer for freeCreate an endpoint in under a minute. The Free plan includes 50 million compute units a month, and no credit card is required.

[Try free](https://app.validationcloud.io/auth/signup?returnTo=%2Fnode%2Fcreate-endpoint)

X Layer is an Ethereum Layer 2 built by OKX on the OP Stack. It produces a block every second. Its native token is `OKB`.

Block explorer: [https://web3.okx.com/explorer/x-layer](https://web3.okx.com/explorer/x-layer)

X Layer's own developer documentation: [https://web3.okx.com/xlayer/docs](https://web3.okx.com/xlayer/docs)

## Network Support

| Network | Full History / Archive | HTTPS | WSS |
| - | - | - | - |
| X Layer Mainnet | ✅ since re-genesis (block 42,810,021) | ✅ | ✅ |

> X Layer moved from Polygon CDK to the OP Stack at block 42,810,021 on 27 October 2025. All account state carried over, so current balances and contracts are complete. State methods such as `eth_call` and `eth_getBalance`, the [Debug API](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_traceblockbynumber.md) and the [Trace API](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_block.md) work for any block from 42,810,021 onward. Blocks before the re-genesis are not served. Block requests for them return `null` and state requests return an error.

> `eth_getProof` serves the latest 128 blocks. Older blocks return JSON-RPC error `-32602`.

> WebSocket clients **MUST** respond to server `ping` frames, otherwise the connection will be closed and re-established every minute.

## Getting Started

Send a request to check that your endpoint works. Replace `<YOUR_API_KEY_HERE>` with the key from your endpoint in the [Validation Cloud app](https://app.validationcloud.io/node).

```bash title="mainnet" theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
curl https://mainnet.xlayer.validationcloud.io/v1/<YOUR_API_KEY_HERE> \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":0}'
```

Connect over WebSocket:

```bash title="mainnet" theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
wscat -c wss://mainnet.xlayer.validationcloud.io/v1/wss/<YOUR_API_KEY_HERE>
```

## Compute Units

| Method | Compute units |
| - | - |
| [debug\_getBadBlocks](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_getbadblocks.md) | 80 |
| [debug\_getRawBlock](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_getrawblock.md) | 80 |
| [debug\_getRawHeader](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_getrawheader.md) | 80 |
| [debug\_getRawReceipts](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_getrawreceipts.md) | 80 |
| [debug\_getRawTransaction](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_getrawtransaction.md) | 80 |
| [debug\_traceBlockByHash](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_traceblockbyhash.md) | 80 |
| [debug\_traceBlockByNumber](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_traceblockbynumber.md) | 80 |
| [debug\_traceCall](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_tracecall.md) | 80 |
| [debug\_traceTransaction](https://docs.validationcloud.io/nodeapi/xlayer/debug-api/debug_tracetransaction.md) | 80 |
| [eth\_accounts](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_accounts.md) | 20 |
| [eth\_blobBaseFee](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_blobbasefee.md) | 10 |
| [eth\_blockNumber](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_blocknumber.md) | 20 |
| [eth\_call](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_call.md) | 40 |
| [eth\_chainId](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_chainid.md) | 10 |
| [eth\_createAccessList](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_createaccesslist.md) | 20 |
| [eth\_estimateGas](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_estimategas.md) | 40 |
| [eth\_feeHistory](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_feehistory.md) | 20 |
| [eth\_gasPrice](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_gasprice.md) | 40 |
| [eth\_getBalance](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getbalance.md) | 40 |
| [eth\_getBlockByHash](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getblockbyhash.md) | 40 |
| [eth\_getBlockByNumber](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getblockbynumber.md) | 40 |
| [eth\_getBlockReceipts](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getblockreceipts.md) | 40 |
| [eth\_getBlockTransactionCountByHash](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getblocktransactioncountbyhash.md) | 40 |
| [eth\_getBlockTransactionCountByNumber](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getblocktransactioncountbynumber.md) | 40 |
| [eth\_getCode](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getcode.md) | 40 |
| [eth\_getFilterChanges](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getfilterchanges.md) | 40 |
| [eth\_getFilterLogs](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getfilterlogs.md) | 40 |
| [eth\_getLogs](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getlogs.md) | 80 |
| [eth\_getProof](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getproof.md) | 40 |
| [eth\_getRawTransactionByHash](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getrawtransactionbyhash.md) | 10 |
| [eth\_getStorageAt](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getstorageat.md) | 40 |
| [eth\_getTransactionByBlockHashAndIndex](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_gettransactionbyblockhashandindex.md) | 40 |
| [eth\_getTransactionByBlockNumberAndIndex](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_gettransactionbyblocknumberandindex.md) | 40 |
| [eth\_getTransactionByHash](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_gettransactionbyhash.md) | 40 |
| [eth\_getTransactionCount](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_gettransactioncount.md) | 40 |
| [eth\_getTransactionReceipt](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_gettransactionreceipt.md) | 40 |
| [eth\_getUncleByBlockHashAndIndex](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getunclebyblockhashandindex.md) | 40 |
| [eth\_getUncleByBlockNumberAndIndex](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getunclebyblocknumberandindex.md) | 40 |
| [eth\_getUncleCountByBlockHash](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getunclecountbyblockhash.md) | 40 |
| [eth\_getUncleCountByBlockNumber](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_getunclecountbyblocknumber.md) | 40 |
| [eth\_maxPriorityFeePerGas](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_maxpriorityfeepergas.md) | 20 |
| [eth\_newBlockFilter](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_newblockfilter.md) | 40 |
| [eth\_newFilter](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_newfilter.md) | 40 |
| [eth\_newPendingTransactionFilter](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_newpendingtransactionfilter.md) | 40 |
| [eth\_protocolVersion](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_protocolversion.md) | 10 |
| [eth\_sendRawTransaction](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_sendrawtransaction.md) | 80 |
| [eth\_simulateV1](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_simulatev1.md) | 40 |
| [eth\_subscribe](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_subscribe.md) | 20 |
| [eth\_syncing](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_syncing.md) | 10 |
| [eth\_uninstallFilter](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_uninstallfilter.md) | 20 |
| [eth\_unsubscribe](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/eth_unsubscribe.md) | 20 |
| [net\_listening](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/net_listening.md) | 10 |
| [net\_peerCount](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/net_peercount.md) | 20 |
| [net\_version](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/net_version.md) | 10 |
| [trace\_block](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_block.md) | 80 |
| [trace\_call](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_call.md) | 80 |
| [trace\_callMany](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_callmany.md) | 80 |
| [trace\_filter](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_filter.md) | 80 |
| [trace\_get](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_get.md) | 80 |
| [trace\_rawTransaction](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_rawtransaction.md) | 80 |
| [trace\_replayBlockTransactions](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_replayblocktransactions.md) | 270 |
| [trace\_replayTransaction](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_replaytransaction.md) | 270 |
| [trace\_transaction](https://docs.validationcloud.io/nodeapi/xlayer/trace-api/trace_transaction.md) | 80 |
| [txpool\_content](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/txpool_content.md) | 500 |
| [txpool\_inspect](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/txpool_inspect.md) | 80 |
| [txpool\_status](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/txpool_status.md) | 80 |
| [web3\_clientVersion](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/web3_clientversion.md) | 40 |
| [web3\_sha3](https://docs.validationcloud.io/nodeapi/xlayer/execution-api/web3_sha3.md) | 40 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.