Skip to content

Free X Layer RPC endpoint — no API key

EVM-compatible

Endpoints

No API key required. Wallet methods only, rate-limited per IP. Check GET /v1/chains for current methods and limits.

Free public RPC endpoint
https://api.blockvectra.com/v1/xlayer_mainnet/public
curl -X POST 'https://api.blockvectra.com/v1/xlayer_mainnet/public' -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
Rate Limit: 3 req/s per IP, burst 20, batch max 10
Send Transaction Limit: 1 req/s per IP, burst 3
Public methods
  • eth_chainId
  • net_version
  • eth_blockNumber
  • eth_getBalance
  • eth_getTransactionCount
  • eth_getCode
  • eth_getStorageAt
  • eth_call
  • eth_estimateGas
  • eth_gasPrice
  • eth_maxPriorityFeePerGas
  • eth_feeHistory
  • eth_getBlockByNumber
  • eth_getBlockByHash
  • eth_getTransactionByHash
  • eth_getTransactionReceipt
  • eth_syncing
  • web3_clientVersion
  • eth_sendRawTransaction
All free public RPC endpoints
Public history: latest 1,000 blocks. Register for free to use free API credits for this chain’s supported methods.
JSON-RPC (Path Key)
https://api.blockvectra.com/v1/xlayer_mainnet/{api_key}
JSON-RPC (Header: x-api-key)
https://api.blockvectra.com/v1/xlayer_mainnet
x-api-key: {api_key}

WebSocket

WebSocket (Path Key)
wss://api.blockvectra.com/v1/xlayer_mainnet/{api_key}
WebSocket (Header: x-api-key or Authorization)
wss://api.blockvectra.com/v1/xlayer_mainnet
x-api-key: {api_key}
Authorization: Bearer {api_key}
Supported Subscription Types
  • newHeads
  • logs (filter must include address or topic0)

Network Parameters

Chain ID196
Free public RPC endpointhttps://api.blockvectra.com/v1/xlayer_mainnet/public
Methods with an API key43
Data APINot supported
WebSocket SupportSupported
Webhook pushNot supported
Send TransactionsSupported
Send Transactions (Keyless Public Endpoint)Supported
State History WindowHistorical state for the most recent 250,000 blocks
eth_getLogs Max Block Range1,000 blocks
Data API DatasetsNot supported
Supported Subscription TypesnewHeads, logs
Related testnetsUnknown
Related guidesUnknown

Quick Example

curl -X POST https://api.blockvectra.com/v1/xlayer_mainnet \
  -H "Content-Type: application/json" \
  -H "x-api-key: {api_key}" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

Limits

State History WindowHistorical state for the most recent 250,000 blocks
eth_getLogs Max Block Range1,000 blocks
Method Policy
Allow: debug_traceBlockByHash, debug_traceBlockByNumber, debug_traceCall, debug_traceTransaction, eth_blobBaseFee, eth_blockNumber, eth_call, eth_chainId, eth_createAccessList, eth_estimateGas, eth_feeHistory, eth_gasPrice, eth_getBalance, eth_getBlockByHash, eth_getBlockByNumber, eth_getBlockReceipts, eth_getBlockTransactionCountByHash, eth_getBlockTransactionCountByNumber, eth_getCode, eth_getHeaderByHash, eth_getHeaderByNumber, eth_getLogs, eth_getProof, eth_getRawTransactionByBlockHashAndIndex, eth_getRawTransactionByBlockNumberAndIndex, eth_getRawTransactionByHash, eth_getStorageAt, eth_getTransactionByBlockHashAndIndex, eth_getTransactionByBlockNumberAndIndex, eth_getTransactionByHash, eth_getTransactionCount, eth_getTransactionReceipt, eth_getUncleByBlockHashAndIndex, eth_getUncleByBlockNumberAndIndex, eth_getUncleCountByBlockHash, eth_getUncleCountByBlockNumber, eth_maxPriorityFeePerGas, eth_sendRawTransaction, eth_simulateV1, eth_syncing, net_version, web3_clientVersion, web3_sha3

Choose a task

Solutions for your onchain tasks

Next steps with an API key

eth_getLogs

set -eu
: "${BLOCKVECTRA_API_KEY:?BLOCKVECTRA_API_KEY is required}"
validate_response='import json,re,sys
response=json.load(sys.stdin)
if not (type(response) is dict and response.get("jsonrpc")=="2.0" and type(response.get("id")) is int and response["id"]==1 and "error" not in response and "result" in response):
    sys.exit("Invalid JSON-RPC response")
result=response["result"]
if sys.argv[1]=="head":
    if not (type(result) is str and re.fullmatch(r"0x(?:0|[1-9a-fA-F][0-9a-fA-F]*)",result)):
        sys.exit("Invalid block quantity")
    print(result)
else:
    if not (type(result) is list and all(type(log) is dict for log in result)):
        sys.exit("Invalid logs result")
    print(json.dumps(response,indent=2))'
head_response=$(curl -fsS 'https://api.blockvectra.com/v1/xlayer_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}')
head=$(printf '%s' "$head_response" | python3 -c "$validate_response" head)
logs_response=$(curl -fsS 'https://api.blockvectra.com/v1/xlayer_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
  -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$head\",\"toBlock\":\"$head\"}]}")
printf '%s' "$logs_response" | python3 -c "$validate_response" logs
eth_getLogs

WebSocket

echo '{"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]}' | websocat --no-close -H="x-api-key: $BLOCKVECTRA_API_KEY" 'wss://api.blockvectra.com/v1/xlayer_mainnet'
WebSocket

Frequently Asked Questions

Does X Layer RPC support WebSocket?

X Layer RPC supports WebSocket connections. Supported subscription types: newHeads, logs.

Does X Layer RPC support debug methods?

X Layer RPC supports debug methods, including: debug_traceBlockByHash, debug_traceBlockByNumber, debug_traceCall, debug_traceTransaction.

Pricing

Get 30,000,000 CU on sign-up, refilled every 30 days (balances and rate limits are pooled across chains; no credit card required); priced per million calls: eth_blockNumber $0.10, eth_call $1.50, eth_getLogs $3.00.

View Pricing Plans →