Connect ›
Cover: Provable staking solvency: an invariant anyone can check, any block

Provable staking solvency: an invariant anyone can check, any block

The BlazePhoenix staking engine exposes isSolvent() and a 13-field solvency() report on-chain. What the invariant covers, how the live report works, and how to reproduce it.

BlazePhoenix Engineering · updated 2026-07-17 · data through 2026-10-11 · 6 min · written from the deployed bytecode

By Mitra (@Sigmacrit) — anonymous developer of the BlazePhoenix protocol. The code is the résumé.

Abstract in 15 languages · resumo · resumen · 摘要 · 要旨 · ملخص

English — The staking engine exposes isSolvent() and a 13-field solvency() report computed by the contract from its own accounting — an invariant anyone can check at any block, not an audit PDF.

Português — O motor de staking expõe isSolvent() e um relatório solvency() de 13 campos calculado pelo contrato a partir da sua própria contabilidade — um invariante que qualquer pessoa verifica em qualquer bloco, não um PDF de auditoria.

Español — El motor de staking expone isSolvent() y un informe solvency() de 13 campos calculado por el contrato desde su propia contabilidad — un invariante que cualquiera puede comprobar en cualquier bloque, no un PDF de auditoría.

Français — Le moteur de staking expose isSolvent() et un rapport solvency() de 13 champs calculé par le contrat depuis sa propre comptabilité — un invariant vérifiable par quiconque à n'importe quel bloc, pas un PDF d'audit.

Deutsch — Die Staking-Engine bietet isSolvent() und einen 13-Felder-solvency()-Bericht, den der Contract aus eigener Buchführung berechnet — eine Invariante, die jeder an jedem Block prüfen kann, kein Audit-PDF.

Русский — Стейкинг-движок публикует isSolvent() и отчёт solvency() из 13 полей, который контракт вычисляет из собственного учёта — инвариант, проверяемый любым человеком на любом блоке, а не аудиторский PDF.

Türkçe — Staking motoru, sözleşmenin kendi muhasebesinden hesapladığı isSolvent() ve 13 alanlı solvency() raporunu sunar — herkesin herhangi bir blokta denetleyebileceği bir değişmez; bir denetim PDF'i değil.

العربية — يكشف محرك التخزين عن isSolvent() وتقرير solvency() من 13 حقلاً يحسبه العقد من محاسبته الخاصة — ثابت يمكن لأي شخص التحقق منه عند أي كتلة، وليس ملف تدقيق PDF.

हिन्दी — स्टेकिंग इंजन isSolvent() और 13-फील्ड solvency() रिपोर्ट देता है जिसे कॉन्ट्रैक्ट अपनी ही लेखा-प्रणाली से गणना करता है — एक ऐसा इनवैरिएंट जिसे कोई भी किसी भी ब्लॉक पर जांच सकता है, कोई ऑडिट PDF नहीं।

日本語 — ステーキングエンジンはisSolvent()と、コントラクト自身の会計から計算される13項目のsolvency()レポートを公開します。誰でも任意のブロックで検証できる不変条件であり、監査PDFではありません。

中文 — 质押引擎公开 isSolvent() 和由合约根据自身账目计算的 13 字段 solvency() 报告——任何人都可在任意区块验证的不变量,而非一份审计 PDF。

한국어 — 스테이킹 엔진은 isSolvent()와 컨트랙트가 자체 회계로 계산한 13개 필드 solvency() 보고서를 공개합니다. 누구나 어느 블록에서든 검증 가능한 불변식이며, 감사 PDF가 아닙니다.

Bahasa Indonesia — Mesin staking mengekspos isSolvent() dan laporan solvency() 13-bidang yang dihitung kontrak dari pembukuannya sendiri — invarian yang dapat diperiksa siapa pun di blok mana pun, bukan PDF audit.

বাংলা — স্টেকিং ইঞ্জিন isSolvent() এবং ১৩-ক্ষেত্রের solvency() রিপোর্ট প্রকাশ করে যা কন্ট্রাক্ট নিজের হিসাব থেকে গণনা করে — যে-কেউ যেকোনো ব্লকে যাচাই করতে পারে এমন একটি ইনভ্যারিয়েন্ট, কোনো অডিট PDF নয়।

Filipino — Inilalantad ng staking engine ang isSolvent() at ang 13-field na solvency() report na kinukuwenta ng kontrata mula sa sarili nitong accounting — isang invariant na masusuri ng kahit sino sa kahit anong block, hindi audit PDF.

"Trust us, the funds are there" is the sentence that precedes most DeFi disasters. The BlazePhoenix staking engine replaces it with a public invariant: isSolvent() returns whether backing covers everything owed, computed by the contract itself from its own accounting — total staked, accrued rewards, reserves, pending distributions, bad debt, uncollected interest.

The full picture is solvency(): a 13-field report (backing, owed, surplus, deficit, collateral ratio, totalStaked, totalDebt, rewardReserve, protocolReserve, pendingDistribution, totalBadDebt, totalUncollectedInterest and the boolean itself) decoded straight from contract storage. It is not an attestation someone signs — it is arithmetic the chain performs when you ask.

Live surfaces built on the invariant

The invariant powers three public surfaces: the live report at /solvency (the full struct decoded to HTML, refreshed from chain), a shields.io badge at /api/badge that any GitHub README can embed, and an embeddable iframe widget that reads isSolvent() from the visitor's own browser via public RPCs — the page proves itself without trusting our server.

A solvency claim that updates every few minutes and can be re-derived by any reader is a different species of claim from an audit PDF dated last quarter.

Do not trust this page — reproduce it

Every claim above is checkable against the chain. Start here:

cast call <staking> "isSolvent()(bool)" --rpc-url https://mainnet.base.org
Cite this article

Licensed CC BY 4.0 — quote, translate and reuse freely, including commercially, with attribution and a link. Copy a ready-made citation:

BlazePhoenix (2026). Provable staking solvency: an invariant anyone can check, any block. BlazePhoenix Engineering. https://blazephoenix.xyz/learn/proof-of-solvency
@misc{blazephoenix_proof_of_solvency,
  title  = {Provable staking solvency: an invariant anyone can check, any block},
  author = {BlazePhoenix},
  year   = {2026},
  url    = {https://blazephoenix.xyz/learn/proof-of-solvency},
  note   = {Accessed: reproduce the claim with the command above}
}

Writing an answer, a wiki entry or a paper? The claim above is reproducible against the chain before you quote it — which is the only sound basis for citing a technical source at all.

Contracts are verified on every chain we deploy to — addresses in the protocol manifest. Deeper formal treatment: the whitepaper (PDF).

Related engineering

Next in Invariants & security · 12 / 17
EIP-1153 transient storage: route context that cannot outlive the transaction ›Where BlazePhoenix uses transient storage (TSTORE/TLOAD): reentrancy locks and fee-on-transfer flags that reset to zero at transaction end by protocol law — cheaper than SSTORE and immune to stale-state bugs.5 min