eth_syncing
curl --request POST \
--url https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300 \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "eth_syncing",
"id": 1
}
'import requests
url = "https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300"
payload = {
"jsonrpc": "2.0",
"method": "eth_syncing",
"id": 1
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({jsonrpc: '2.0', method: 'eth_syncing', id: 1})
};
fetch('https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'method' => 'eth_syncing',
'id' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_syncing\",\n \"id\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_syncing\",\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_syncing\",\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {
"startingBlock": "<string>",
"currentBlock": "<string>",
"highestBlock": "<string>"
}
}Optimism node API
eth_syncing | Optimism
Optimism API method eth_syncing checks if the node is currently syncing with the blockchain. Available on Optimism via Chainstack.
POST
/
efb0a5eccd2caa5135eb54eba6f7f300
eth_syncing
curl --request POST \
--url https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300 \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "eth_syncing",
"id": 1
}
'import requests
url = "https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300"
payload = {
"jsonrpc": "2.0",
"method": "eth_syncing",
"id": 1
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({jsonrpc: '2.0', method: 'eth_syncing', id: 1})
};
fetch('https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'method' => 'eth_syncing',
'id' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_syncing\",\n \"id\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_syncing\",\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_syncing\",\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {
"startingBlock": "<string>",
"currentBlock": "<string>",
"highestBlock": "<string>"
}
}Optimism API method
eth_syncing checks if the node is currently syncing with the blockchain. It provides details about the sync progress if the node is syncing.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
none— This method does not require any parameters.
Response
result— an object containing syncing details if the node is syncing; otherwise,false. The object includes:startingBlock— the block number where the sync started.currentBlock— the block number where the node is currently synced to.highestBlock— the highest block number known in the chain that the node is syncing towards.
false.
Use case
Theeth_syncing method is useful for:
- Monitoring tools and services that track the sync status of Optimism nodes.
- Developers and users who want to check if a node is fully synced before making transactions or deploying contracts.
Last modified on June 22, 2026
Was this page helpful?