Vealth · Proof ledger

Prove you had it first.

Any file can carry a permanent timestamp: proof it existed on a date, held by whoever holds the file. Drop a file below and your browser checks it against the chain: no install, no account, no trusting us. The same rail is yours for free: anchor your own file's fingerprint and it lands in the next weekly batch. We built this because we give real findings away, and every one of them is anchored here before it leaves our hands.

1Your file gets a fingerprint: a short code computed from its exact contents. Change one letter and the fingerprint changes completely.
2The fingerprint goes on a public record with a date. The file itself never goes anywhere. We could not read it if we wanted to.
3Later, anyone holding the file can drop it on this page and see the date for themselves. No account, nothing installed, and no need to believe a word we say.

This page is one piece of how we do security: nothing on it asks for your trust. Your own browser runs every check.

What is on the record so far

artifacts anchored
last Base batch
last Ethereum root
~$0.0005per Base batch, any size

The combined fingerprint of everything above (engineers call it a Merkle root)

The same fingerprint, sitting inside the public transaction: match them yourself

Base mainnet, block , published by our wallet 0x034F29D2CCFf01551304ad92d2599B850D076c89 · the full record. One entry covers any number of files, which is why it can stay free.

Some entries name their file, some are fingerprint-only. When a finding is about a specific organization we record the fingerprint but not the name. The date is still provable to anyone we hand the file to, without publishing a list of who we have studied. Both kinds check identically below.

A second copy lives on Ethereum

The weekly record is written twice. The everyday copy goes on Base, where writing costs a fraction of a cent. A summary of it also goes on Ethereum, the oldest and most widely trusted public record there is, so even someone who trusts nothing else about us can check the dates in a place they already trust.

This week's summary fingerprint, on Ethereum

Ethereum mainnet, block . About eight cents a week to keep. See it on Etherscan → · the Ethereum record

The work board, right now

A ledger of finished proofs can look still. The work board underneath it is not: packets get claimed and worked on before they ever settle. Hydrated live from /labor/stats.

packets claimed
packets settled
in progress now
open on the board

In progress is claimed minus settled, a derived reading rather than its own field on the live payload, so it can undercount a claim that already expired. The live payload has no dollar figure for work still in flight, only for what has posted and what has settled, so we do not show one here rather than guess. Read the raw numbers yourself at /labor/stats.

Check a file, right here

Drop in a file you were given. Your browser fingerprints it, looks the fingerprint up in the record, and then reads the public transaction directly to confirm the record is really there. Four steps, each shown as it happens. The file never leaves your machine.

Timestamp your own, free

This record is open to anyone. About to disclose a security finding, send a draft, share a dataset, or publish anything where being first matters? Put it on the record first. No account, no cost, and you send only the fingerprint: we never receive your file and could not produce it if anyone asked.

Free is not a promotion. Thousands of fingerprints ride in one entry, so one more costs us nothing worth charging for, and a shared record is worth more to us than a toll.

shasum -a 256 my-finding.md          # hash it locally, the file never moves

curl -s -X POST https://vealth.net/anchor/submit \
  -H 'Content-Type: application/json' \
  -d '{"sha256":"<64 hex>","label":"optional note"}'

curl -s "https://vealth.net/anchor/verify?sha256=<64 hex>"   # check any claim, free

Agents with MCP get the same two operations as native tools at https://vealth.net/mcp: anchor_proof and verify_anchor. No key, no wallet, no payment path. There is also a plain-language skill file at prove-you-found-it-first.

Submissions land in the next weekly batch and the Ethereum root of the same run. Keep your file: it is the only thing that can open your proof, because nobody else ever had it.

For engineers: the exact scheme, so you can check it without us

Everything above in precise terms. Standard SHA-256 throughout. Leaves are domain separated from internal nodes, so a proof path can never be replayed as a file. Pairs are sorted, so a proof is just sibling hashes with no left or right flags to get wrong.

fileHash  = sha256(file bytes)
leaf      = sha256(0x00 || fileHash)
node      = sha256(0x01 || min(a,b) || max(a,b))
an odd node at any level is promoted unchanged to the next level

the weekly Ethereum root combines the Base batch roots the same way:
batchLeaf = sha256(0x02 || batchRoot), batches sorted by root;
one batch means the combined root is that single batchLeaf

Or run our verifier from a clone, which recomputes all of it and reads the chain:

npx tsx scripts/provisioning/verify-anchor.ts \
  --file docs/backlog/generated/<artifact>.md \
  --ledger apps/web/public/vealth/proof-ledger.json

What this proves, and what it does not

It proves two things. This exact file existed by that date, and we are the ones who put it on the record. So a finding cannot be quietly backdated, edited after the fact, or taken with no trace of who held it first.

It does not prove the file is right, and it is not a claim of ownership over anything the file describes. Being first is not being correct: the work inside still has to stand on its own, and ours carries its own evidence you can re-run.

Questions: brawlaphant@gmail.com.