Vault-Check
Proof of reserves, without a custodian

A permanent record of what you hold.

Attest your holdings on-chain — the real balance, the hour, a short label — and it stands as a matter of record permanently. Anyone may audit it. No one may revise it.

Scroll
0
Chains recorded
0
Address, everywhere
0
Keys held by anyone
0min
Between entries
Exhibit A  Attested balance · 0x8f2a…c41d · BotChain Seven entries · Feb–Aug 2026
8.00 6.00 4.00 2.00 6.9020 BOT FEB MAR APR MAY JUN JUL AUG

Each mark is a single attestation. The line holds flat between them because the record asserts nothing it did not measure — only the balance read from the chain at the moment of each entry.

02
Principles

Trust that does not ask to be taken on faith.

i

Read, never typed

Each entry records the wallet's actual native balance at the instant of the call, read directly from the chain. There is no field in which to state a number, and so none to overstate.

msg.sender.balance
— read at call time
ii

Append-only, in perpetuity

An entry, once made, cannot be amended or withdrawn — not by its author, not by us, not by anyone. The record accumulates. It is never rewritten.

no delete
no update
no upgrade path
iii

No custody, no administration

No owner, no admin key, no fees. The contract holds no balance and has no payable function — it can only ever attest, never move a single unit of value.

0 payable fns
0 privileged roles
03
Mechanism

Nothing hidden in the accounting.

The contract is a few dozen lines and there is no second path through it. This is the whole of what an entry does.

VaultCheck.solSolidity 0.8 · EVM Paris
01// record what is there — not what was claimed
02history.push(Snapshot({
03  balance:   msg.sender.balance,
04  timestamp: uint64(block.timestamp),
05  label:     label
06}));
04
One ledger per chain

The same address, everywhere.

NetworkChain IDDenomination
BotChain677BOT
Base8453ETH
BNB Chain56BNB
Contract address — identical on every chain 0x57CBd8798A4921f6Ab9778b2B44DF0c918b98B83

Deployed through the standard CREATE2 proxy from bytecode carrying no constructor arguments, so every browser derives this address by arithmetic before anything exists at it. Where a chain holds no ledger yet, the application offers to open one; whoever does so stands up the ledger everyone thereafter shares.

Put it on the record.