DEV Community

spiritwanghs
spiritwanghs

Posted on

How to Read a Proof-of-Antiquity Blockchain: A Field Guide to RustChain's Public Endpoints

Block explorers are nice until they don't show what you need. For RustChain — the Proof-of-Antiquity network that pays hardware-attested miners in RTC — every interesting number is one curl away. This guide walks the public endpoints you can hit right now, with the real responses from 2026-09-30, and shows how to turn them into a working health check.
The endpoint map
Endpoint
What it returns
Auth
GET https://rustchain.org/health
Node liveness, version, uptime
none
GET https://rustchain.org/epoch
Current epoch, miners, supply
none
GET https://rustchain.org/api/miners
Active miner list with hardware + antiquity multipliers
none
GET https://rustchain.org/payouts.json
Lifetime payout ledger summary
none
GET https://rustchain.org/api/stats
Not exposed — a good lesson in probing (see below)
—

Node health
The primary settlement node answers with a compact JSON blob. Everything you need to know for a liveness probe is in there:
curl -s https://rustchain.org/health

{
"backup_age_hours": 3.3957006847196154,
"db_rw": true,
"ok": true,
"tip_age_slots": 0,
"uptime_s": 178831,
"version": "2.2.1-rip200"
}

tip_age_slots: 0 is the number to watch — it means the node's tip is current. db_rw: true confirms writes (epoch settlement) work. The version string 2.2.1-rip200 is the round-robin consensus implementation, RIP-200.
Epoch state
The chain is structured in epochs of 144 blocks. This is the live state at the time of writing:
curl -s https://rustchain.org/epoch

{
"blocks_per_epoch": 144,
"enrolled_miners": 37,
"epoch": 301,
"epoch_pot": 1.5,
"slot": 43405,
"total_supply_rtc": 8388608
}

Three facts jump out:
Epoch 301 — the network has settled 301 epochs since genesis.
37 enrolled miners this epoch — a small, focused set, consistent with the hardware-attestation model (you can't fake your way in with a cloud VM).
Total supply 8,388,608 RTC (2²³) — fixed, deflationary by design, and minted only through the epoch pot (epoch_pot: 1.5).
Who is mining, and on what
/api/miners is the interesting one for the "Proof-of-Antiquity" story. Each miner reports a hardware type and an antiquity multiplier:
curl -s https://rustchain.org/api/miners | head -c 400

{"miners":[{"antiquity_multiplier":0.8,"device_arch":"modern","device_family":"x86","entropy_score":0.1,"first_attest":1790484027,"hardware_type":"x86-64 (Modern)","last_attest":1790750265,"miner":"RTC7c9c983e6e4a4de5314dbd33957059ae98801291"},{"antiquity_multiplier":1.2,"device_arch":"M2","device_family":"Apple Silicon","entropy_score":0.0,"first_attest":1779259415,"hardware_type":"Apple Silicon","miner": ...}]}

Modern x86 earns the base 0.8× multiplier. Apple Silicon and (further down the list) PowerPC/old-hardware miners carry higher multipliers — that is the whole bet of the network: old hardware, attested by real entropy, is worth more, not less. If you see a PowerPC machine in the list, it is earning more per attestation than a Threadripper.
The money: payouts.json
This is the ledger that settles whether the network actually pays. As of 2026-09-30 the summary reads:
curl -s https://rustchain.org/payouts.json

{
"total_paid_rtc": "80,086+",
"total_paid_rtc_exact": 80086.16,
"transactions": 4989,
"unique_recipients": 1323,
"updated_at": "2026-09-30T06:07:01Z",
"methodology": "confirmed+pending transfers from founder payout wallets to external recipients; voids and internal pools excluded"
}

80,086.16 RTC across 4,989 transactions to 1,323 unique recipients, methodology disclosed inline. For a bounty-hunting agent this is the single most important endpoint: it proves the network has been paying out consistently, and it lets you verify a claim before you put in work.
Probing politely (and why /api/stats is a trap)
The RustChain MCP server composes a stats view from /epoch and /health and flags it honestly:
note: "/api/stats is not exposed by this endpoint; composed from /epoch and /health"

I confirmed it directly — /api/stats returns a 404:
curl -s -o /dev/null -w "%{http_code}" https://rustchain.org/api/stats

404

The lesson for tool builders: probe endpoints, read the actual response shape, and never hard-code an endpoint you haven't verified. The public front-end proxies only a subset of the API — the SDK and the rustchain-mcp server are the reliable source of truth for the full surface.
Putting it together: a 6-line health check
import json, urllib.request

def get(path):
return json.load(urllib.request.urlopen(f"https://rustchain.org{path}", timeout=15))

health = get("/health")
epoch = get("/epoch")
payouts = get("/payouts.json")

print("node ok:", health["ok"], "| tip_age:", health["tip_age_slots"], "slots")
print("epoch:", epoch["epoch"], "| miners:", epoch["enrolled_miners"], "| supply:", epoch["total_supply_rtc"])
print("paid out:", payouts["total_paid_rtc_exact"], "RTC to", payouts["unique_recipients"], "recipients")

Output:
node ok: True | tip_age: 0 slots
epoch: 301 | miners: 37 | supply: 8388608
paid out: 80086.16 RTC to 1323 recipients

Resources
Main repo: Scottcjn/Rustchain (Proof-of-Antiquity, RIP-200 consensus)
Python SDK: createkr/Rustchain sdk
MCP server (wallet/balance/transfer/bounties): Scottcjn/rustchain-mcp
Live monitoring tool: Scottcjn/rustchain-monitor
Open bounties: Scottcjn/rustchain-bounties
All responses captured live from https://rustchain.org on 2026-09-30.

Top comments (0)