make a proof
A proof is 32 bytes posted on chain with a deposit and a timer. This chapter covers what to post, what you choose, and what it costs.
Every proof starts with 32 bytes. Not 31, not 33. Exactly 32. That's the size of a fingerprint made by a hash function, and a fingerprint is almost always what you should post.
hash it first. always.
A hash function is a blender. Same fruit in, same smoothie out, every time. But nobody can look at the smoothie and get the fruit back. So the fingerprint proves what went in without showing what went in.
Everything on chain is public, forever. Your 32 bytes, who made the proof, and when. The history stays even after the proof closes. So never post a secret directly. Post the hash of the secret. Reveal the secret later if you want. Anyone can hash it and check that it matches.
guessable data is findable
one data, one proof
The address comes from the data, so there can be only one live proof per 32-byte value. Prove the same bytes twice and the second transaction fails. Your proof holds that address until it closes.
what you choose when you prove
- The data. Your 32 bytes. The whole point.
- The beneficiary. The wallet that gets the deposit back when someone verifies the proof. Usually you.
- The size. Three sizes: 333, 777, or 2222 bytes. The bigger sizes exist to hold metadata, which chapter 7 covers. With no metadata, the smallest size does everything.
- The timer. The moment the proof becomes eligible for expire. At most 30 days out. Leave it empty and you get the full 30.
what it costs
Solana makes every account hold a deposit sized to the bytes it uses. Solana calls this rent. It behaves like a refundable deposit:
| size | bytes | deposit |
|---|---|---|
| base | 333 | about 0.0032 SOL |
| standard | 777 | about 0.0063 SOL |
| premium | 2222 | about 0.0164 SOL |
The deposit sits inside the proof account. When someone verifies the proof, the beneficiary gets it back. When someone expires it instead, the protocol treasury takes it. That is the incentive to handle your proofs before the timer runs out.