CoresRent
Open dashboard

Building on it

Run the verifier locally

@coresrent/verify is an open-source command-line tool that runs every ledger check against your own Ethereum connection. It needs Node 20 or later and no account.

@coresrent/verify is a small command-line tool that runs every check from the ledger pages against Ethereum and IPFS, using your own connection. It is open source at github.com/coresrent/verify, needs Node 20 or later, and does not talk to any CoresRent server.

Install

Run it once with npx, or install it globally if you will use it often.

Shell
$ npx @coresrent/verify --version
@coresrent/verify 1.2.0

# or install it once
$ npm install --global @coresrent/verify

Check one record

Download a record from the machine's page or from IPFS and pass the file. The tool looks for the matching .proof.json next to it and fetches it from IPFS if it is not there.

Shell
$ npx @coresrent/verify record ./2026-09-27T14.json
Output
CoresRent verify 1.2.0 · Ethereum mainnet (chain 1)
record  CR-IAD4-07-04  2026-09-27T14:00Z  IAD-4

  ok  digest       0x1e59…00ca
  ok  signature    signed by 0xa089…836D
  ok  custodian    key of IAD-4 at 14:00Z (Registry)
  ok  machine      IAD-4, rack 07, slot 04, active
  ok  arithmetic   27,360 GPU-s × 0.90 / h = 6.840000 USDC
  ok  chain        prevHash matches the 13:00Z record
  ok  ledger       in root 0xcf85…5f58 (4 records, posted 15:06:12Z)

7 of 7 checks passed

Check a site and hour

This fetches every record for a site and hour using the content ID stored on the Ledger, checks each one, and rebuilds the Merkle root from scratch.

Shell
$ npx @coresrent/verify hour IAD-4 2026-09-27T14
Output
hour  IAD-4  2026-09-27T14:00Z
  fetched 4 records from IPFS (bafybeigx3q7…wkyzi)
  ok  every signature is the IAD-4 custodian key
  ok  rebuilt root matches the Ledger: 0xcf85…5f58
  ok  arithmetic on 4 of 4 records
  gross 26.280000 USDC across 4 sleds (8× L40S), 29.2 GPU-hours

Check a machine's history

This walks a machine's records in order and checks the hash chain. Hours with missing samples are listed, because they are real minutes that were not billed.

Shell
$ npx @coresrent/verify chain CR-IAD4-07-04 --from 2026-09-01 --to 2026-09-27
Output
chain  CR-IAD4-07-04  2026-09-01T00:00Z to 2026-09-27T23:00Z
  ok  648 records, no gaps, every prevHash matches
  ok  648 roots found on the Ledger
  3 hours with fewer than 60 samples: 2026-09-12T03 (57), 2026-09-12T04 (41), 2026-09-19T22 (59)

Check a day's payout

This adds up recorded gross rent across the pool for one UTC day and compares it with that day's settlement on the Distributor contract.

Shell
$ npx @coresrent/verify day 2026-09-27
Output
day  2026-09-27 (UTC)
  fetched 192 records across IAD-4, DFW-2
  ok  recorded gross matches the Settled event
  ok  fee is exactly 8.00% of gross
  ok  rent per share matches net ÷ shares on every machine

Options

OptionWhat it does
--rpc <url>Ethereum RPC to read from. Also read from CORESRENT_RPC.
--ipfs <url>IPFS gateway, or your own node's API. Defaults to a public gateway.
--from, --toDate range for chain and day, in UTC.
--jsonPrint results as JSON, one object per check, for scripts.
--quietPrint nothing unless a check fails.

Exit codes

CodeMeaning
0Every check passed.
1At least one check failed. The output says which.
2Something could not be fetched: the RPC, IPFS or a file. Nothing was judged.

Exit code 1 on a real record is worth reporting. Send the command, its output and the file to security@cores.rent.

Last updated 5 October 2026.