Getting Ethereum RPC
API Reference
- JSONRPC/HTTP
- JSONRPC/WEBSOCKET
- cURL
- Python
- NodeJS
curl -X POST -H "Content-Type: application/json" https://g.w.lavanet.xyz:443/gateway/eth/rpc-http/3dc655f970c930f1d3e78ee71beece18 --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
# pip install requests
import requests
import json
# URL for the Ethereum RPC HTTP endpoint
url = "https://g.w.lavanet.xyz:443/gateway/eth/rpc-http/3dc655f970c930f1d3e78ee71beece18"
# JSON-RPC request payload
request_payload = {
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 1,
}
try:
# HTTP headers
headers = {"Content-Type": "application/json"}
# Sending POST request
response = requests.post(url, headers=headers, data=json.dumps(request_payload))
response.raise_for_status() # Check if the request was successful
# Parsing JSON response
data = response.json()
print("Block Number Response:", data)
except requests.exceptions.RequestException as e:
print(f"Error fetching block number: {e}")
//npm i axios
const axios = require("axios");
// URL for the Ethereum RPC HTTP endpoint
const url =
"https://g.w.lavanet.xyz:443/gateway/eth/rpc-http/3dc655f970c930f1d3e78ee71beece18";
// JSON-RPC request payload
const requestPayload = {
jsonrpc: "2.0",
method: "eth_blockNumber",
params: [],
id: 1,
};
async function fetchBlockNumber() {
try {
// Sending POST request
const response = await axios.post(url, requestPayload, {
headers: {
"Content-Type": "application/json",
},
});
// Logging the response
console.log("Block Number Response:", response.data);
} catch (error) {
console.error("Error fetching block number:", error.message);
}
}
fetchBlockNumber();
- WSCAT
- Python
- NodeJS
wscat -c wss://g.w.lavanet.xyz:443/gateway/eth/rpc/3dc655f970c930f1d3e78ee71beece18?secret=null -x '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
# pip install asyncio websockets
import asyncio
import websockets
import json
# WebSocket URL and JSON-RPC request payload
url = "wss://g.w.lavanet.xyz:443/gateway/eth/rpc/3dc655f970c930f1d3e78ee71beece18?secret=null"
request_payload = {
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 1,
}
async def fetch_block_number():
try:
async with websockets.connect(url) as websocket:
print("WebSocket connection opened.")
# Send the JSON-RPC request payload
await websocket.send(json.dumps(request_payload))
# Receive the response
response = await websocket.recv()
print("Received response:", response)
except Exception as e:
print("Error:", e)
# Run the async function
asyncio.run(fetch_block_number())
//npm i ws
const WebSocket = require("ws");
// WebSocket URL and JSON-RPC request payload
const url =
"wss://g.w.lavanet.xyz:443/gateway/eth/rpc/3dc655f970c930f1d3e78ee71beece18?secret=null";
const requestPayload = {
jsonrpc: "2.0",
method: "eth_blockNumber",
params: [],
id: 1,
};
const ws = new WebSocket(url);
// Open the WebSocket connection
ws.on("open", () => {
console.log("WebSocket connection opened.");
// Send the JSON-RPC request
ws.send(JSON.stringify(requestPayload));
});
// Listen for the response message
ws.on("message", (message) => {
console.log("Received response:", message.toString());
ws.close();
});
// Handle WebSocket errors
ws.on("error", (error) => {
console.error("WebSocket error:", error.message);
});
// Handle connection closure
ws.on("close", () => {
console.log("WebSocket connection closed.");
});
Gateway
To learn more about using the Lava Gateway visit the Getting Started guide
SDK
Input 📥
- BackEnd
- FrontEnd
// Install lavaSDK with the following command:
// npm i @lavanet/lava-sdk
const { LavaSDK } = require("@lavanet/lava-sdk");
async function useEthereumMainnet() {
const ethereumMainnet = await LavaSDK.create({
privateKey: process.env.PRIVATE_KEY, //hide your private key in an environmental variable
chainIds: "ETH1",
});
const ethereumBlockResponse = await ethereumMainnet.sendRelay({
method: "eth_blockNumber",
params: [],
});
console.log(ethereumBlockResponse);
}
(async () => {
await useEthereumMainnet();
})();
// Install lavaSDK with the following command:
// npm i @lavanet/lava-sdk
const { LavaSDK } = require("@lavanet/lava-sdk");
async function useEthereumMainnet() {
const ethereumMainnet = await LavaSDK.create({
badge: {
badgeServerAddress: "https://badges.lavanet.xyz", // Or your own Badge-Server URL
projectId: "enter_your_project_id_here",
},
chainIds: "ETH1",
});
const ethereumBlockResponse = await ethereumMainnet.sendRelay({
method: "eth_blockNumber",
params: [],
});
console.log(ethereumBlockResponse);
}
(async () => {
await useEthereumMainnet();
})();