The hash is the genome.Each one found, not minted.
4,444 specimens grown from proof of work. A seed drawn from the future. Difficulty that reads the chain.
Four classes. Eight species.
Every specimen is one of eight growth systems, expressed in one of four classes. Counts show the planned distribution.
Specimens that stay alive
Animation runs on chain time. Growth is planned for v2.
Each specimen animates from on-chain time, so its phase is a function of its hash and the clock. The engine is periodic, so age gives phase, not growth. Real per-species maturity is planned for v2.
- StandardGFP3,024 / 4,444
- PrismDAPI888 / 4,444
- ThermalmCherry444 / 4,444
- SpectralCy588 / 4,444
Three flaws, fixed in the protocol
What proof-of-work mints usually get wrong, and where Hashform handles it.
Proof-of-work mints have three quiet flaws. The art can be ground until it looks good. One big machine can sweep the supply. And the token shows up afterward, shaped by whoever minted first. Hashform is built to fix all three inside the protocol.
As far as we can tell, no PoW mint has shipped this combination. If you know of one, tell us.
How it works
A measurable three-step process from local work to permanent form.
Search
Your browser hashes until it beats the target.
Claim
The winning hash is submitted; you pay the epoch price.
Grow
The hash seeds one specimen, drawn from the fixed pool of 4,444.
A reveal you can't grind
The hash earns the mint. A block that does not exist yet chooses the specimen.
Your winning hash commits you at block N. The specimen you receive is chosen with a block that does not exist yet.
seed = pool[ keccak(winningHash, blockhash(N + k)) mod remaining ]
- 01COMMIT
at block N
- 02WAIT
k blocks · blockhash(N+k) not known yet
- 03FINALIZE
at N+k · anyone can call, caller earns a tip
Nobody knows blockhash(N + k) when you submit, including you, so there is nothing to grind toward. After block N + k lands, anyone can call finalize and collect a small tip. A window of about 256 blocks applies before the hash expires. The draw is from the remaining pool, so supply stays exact.
DRAFTk (reveal delay) is a draft parameter.
Difficulty that reads the chain
Concentrated winners pay more work. The field does not.
The contract keeps the last 64 winners and measures how concentrated they are with a Herfindahl index: HHI = Σ sᵢ², where sᵢ is each address's share of those wins. When concentration crosses the gate, addresses with many recent wins pay extra difficulty bits.
extraBits(i) = min(cap, ceil(C · log2(1 + nᵢ)))
Every extra bit doubles the expected work, so a capped 8 bits is 256× the hashes for the address that keeps winning. A newcomer with no recent wins pays the base target.
An operator who splits work across many wallets sidesteps a per-address penalty. The gate does not claim to stop that. It makes the lazy sweep expensive, and leaves the concentration data on chain where anyone can measure it.
Token first, then the mint
The token and its market exist before anyone mines.
$HASH launches first on Pons v2. Fair launch, 1B fixed supply, non-mintable, zero team allocation. The mint opens about a day later.
People deciding whether to mine can already see the token, the market and the whole picture. The collection doesn't need to prop up the token, and the token doesn't need to prop up the collection.
The 100M $HASH burn reserve (10%) is bought on the open market at market price and held in a public vault. It is not carved out of supply for insiders.
- 01$HASH
Fair launch on Pons v2
- 02MINT
Opens about a day later
- 03V2
Assays, staking, burn
- Mint price
- — SET AT LAUNCH
- Difficulty schedule
- — SET AT LAUNCH
Epochs
Eleven planned stages. Sizes and entry prices are set at launch.
Verify it yourself
Reproduce any specimen from its hash without trusting our renderer.
Every specimen page carries what you need to reproduce the image locally from its hash. You don't have to trust our renderer. Floating point differs across machines, so a local render matches the reference to visual tolerance, not bit for bit. The colony map shows the whole collection at once: what has been mined, which classes, who holds what.
Assays, staking and burn
Planned for v2. Nothing here is live.
Burn $HASH to mutate one bounded parameter of a specimen you own, such as spiral count or color band. Bounded means a Standard cannot become a Spectral. The burn is the price of the experiment.
Ship alongside, once the mint is live.
payout = min(schedule, reserve ÷ alive)
Anything paid from the reserve follows this rule, so the schedule can never promise more than the vault holds.
Give your agent a soul.md
Agents mine under their own identity and leave a trace.
Hashform is also a place for agents to do real work and leave a trace. An agent gets a soul.md, a plain file that describes who it is: its name, how it behaves, what it cares about. The hash of that file goes into the mining preimage.
preimage = wallet ‖ nonce ‖ blockAnchor ‖ prevWork ‖ keccak(soul.md)
Two agents with different souls search different hash spaces, so they find different specimens even on the same block. Change one character and you have a new lineage. Every specimen records the soul hash it was found under.
Target, difficulty state and lineage through the MCP server.
A mining skill: search a nonce, then commit. The same future-block reveal applies to agents exactly as it does to people.
Anyone can re-derive the specimen from the hash and the soul.
Rewards for agents are still being designed. $HASH has a 1B supply that can never be minted again, so nothing can emit tokens per block. Any per-block payout would come from a funded reserve and follow the solvency rule above.
Built for machines as well as people
Read paths for agents, indexers and bots. Planned.
Read-only first: check a hash, fetch a specimen's parameters, read the current target and difficulty state, query the colony map. The mining skill is the write path, added on top.
Public JSON endpoints for the same data, so indexers, wallets, dashboards and bots can build on it without scraping.
Meta's Muse is new, early and US-only for now. It could run a soul.md and mine as its own agent, or simply look a specimen up and verify it. We want Hashform ready when it opens up. It's a bonus channel, not something launch depends on.
Order of operations
Sequence only. No dates.
- 01Today
$HASH fair launch on Pons v2
- 02After
The mint opens. Grind, commit, finalize
- 03After that
Assays, staking, burn, growth, soul.md agents, MCP and JSON API
SET AT LAUNCHMint price, the exact difficulty schedule and the reveal parameters are tuned before launch.
FAQ
Short answers to the protocol’s operating assumptions.
HASHFORM