Avalanche API method that returns an object with information about the current synchronization status of the node, or false
if the node is fully synced. This method can track the progress of a node's synchronization with the Avalanche blockchain. The returned object contains data such as the starting block, current block, and highest block of the node, allowing developers to monitor and estimate the time remaining for the node to sync fully.
Get you own node endpoint today
Start 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
Response
result
— the boolean valuefalse
when not syncing or a JSON object when syncing:startingBlock
— the block number where the synchronization process started, encoded as hexadecimal.currentBlock
— the block number that the node has currently processed, same aseth_blockNumber
, encoded as hexadecimal.highestBlock
— the block number of the latest block in the blockchain known to the node.
eth_syncing
code examples
eth_syncing
code examplesconst Web3 = require("web3");
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);
async function syncStatus() {
const status = await web3.eth.isSyncing();
console.log(status)
}
syncStatus()
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const syncStatus = async () => {
const status = await provider.send("eth_syncing", []);
console.log(status);
};
syncStatus();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
print (web3.eth.syncing)
Use case
The eth_syncing
method on Avalanche can be useful for developers building applications that interact with the Avalanche blockchain. For example, you may want to provide feedback to your application's user about the status of the Avalanche node the application is connecting to.
Here is a code example using the web3.js library:
const Web3 = require("web3");
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);
async function syncstatus() {
try {
// Query the sync status
const syncing = await web3.eth.isSyncing();
if (syncing) {
console.log(`Node is syncing. Current block: ${syncing.currentBlock}. Highest block: ${syncing.highestBlock}`);
} else {
console.log('Node is fully synced.');
}
} catch (error) {
console.error(error);
}
};
syncstatus()
In this example, the program creates a new web3.js
instance and connects to the node. Then, it calls web3.eth.isSyncing
to get the current synchronization status of the node. If the node is fully synced, the function logs a message to the console indicating that the node is fully synced.
If the node is still syncing, the function logs the current block number and the highest block number known to the node.
Try the eth_syncing
RPC method yourself
eth_syncing
RPC method yourself