Introduction

Node rewards vary from project to project, but they share one foundation: your node earns based on its uptime. To keep that fair and transparent, LFG records node uptime onchain, where it cannot be quietly changed and anyone can check it. This guide shows you how to confirm your own node's recorded uptime. For the full explanation of how the system works, see Verifiable Node Uptime.

How Uptime Is Tracked

While your node runs, it sends uptime telemetry to LFG services. Every hour that data is grouped into a dataset, stored on IPFS (a distributed storage network), and summarized into a single cryptographic fingerprint called a Merkle root. Only the Merkle root, the dataset's IPFS reference (its CID), and a timestamp are written to the Binance Smart Chain. Because the chain record cannot be altered once confirmed, your uptime entry becomes permanent and publicly verifiable. Each entry records a Slug (the project workload name), your Node ID, and an Uptime Amount.

The Easiest Way: From the Node Dashboard

The simplest way to check is through the LFG Node Dashboard. Find your node, view its uptime, and click Verify Uptime Onchain. The dashboard gives you a link to the IPFS dataset, a BSCScan transaction link, and instructions, for both recent and historical records. For most operators this is all you need.

Verifying With the Uptime Tool

For a full manual check, use the verification tool at node.lfg.inc/verify-uptime. It rebuilds the official Merkle tree from the published dataset and generates a proof you can validate against the LFG Uptime smart contract on the Binance Smart Chain (contract address 0x4123933f0250b2966008878dccc00663444be746).

Step 1: Retrieve the Official Dataset

  • Open the LFG Uptime smart contract on BSCScan.
  • Locate the root submission for the date you want to check.
  • Copy the IPFS CID from that submission.
  • Open https://ipfs.io/ipfs/<CID> in your browser and copy the JSON dataset.
  • Paste the dataset into the Uptime Data field in the tool.

Step 2: Enter Your Node Details

This is what you provide for your own entry:

  • ID: the submission ID for that dataset.
  • Slug: the project or workload name.
  • Node ID: your node address (it starts with 0x).
  • Uptime Amount: your reported uptime value for that date.

Step 3: Compute Your Proof

Click Compute Proof. The tool rebuilds the Merkle tree from the dataset and generates a Merkle proof for your entry, a small piece of data that shows your entry belongs to the dataset.

Step 4: Verify Onchain

Confirm the proof against the contract itself:

  • Open the LFG Uptime smart contract on BSCScan and go to Read Contract.
  • Call the verify function and enter your id, slug, nodeId, uptimeAmount, and proof.

The contract returns a simple result:

  • true: your uptime matches the committed onchain root. Your record is confirmed.
  • false: the data does not match the committed root. Double-check that you used the right dataset, date, and values.

What a Successful Check Proves

A true result confirms three things: your node's uptime entry exists in the official dataset, the dataset matches the cryptographic record stored on the blockchain, and the data has not been changed since it was published. In short, you have independently confirmed your uptime rather than taking it on trust.

Need Help?

If your uptime looks lower than expected, your node may have gone offline during that period. See Node Troubleshooting: Offline or Not Reporting. For anything else, contact our team or ask in the LFG Discord.

Was this article helpful?