Bounty programs pay the earliest complete report. Every hunter has been told their finding was a duplicate, and none of them could prove otherwise. Huntstamp writes the fingerprint of a finding on chain before you file it, so the timestamp belongs to you rather than to the inbox that received it.
Live record
Not a mockup. This is finding F-03 from a real bug bounty report — a settled prediction market showing a settlement date a week in the future — hashed and claimed on Solana devnet, then revealed the next day once the report went public. The 81,641 seconds between the two is elapsed time, not a demo loop.
Mechanism
Hash the finding locally. Only the digest goes on chain, so nothing about the vulnerability is disclosed by the act of claiming it.
Submit to the bounty programme as you always would. Huntstamp sits beside that process rather than replacing it.
When the report is public, attach it to the claim — the step shown in the record above. Anyone can hash the text, derive the address, and read both timestamps.
The guarantee
The claim account's address is derived from the digest itself. That single design choice is the whole product: a given finding maps to exactly one address, and an address can only be created once. The second hunter to send the same digest does not lose an argument — their transaction never lands.
$ node scripts/force-duplicate.js "<the same finding>" claim PDA : CCo9veeEAyfuBPX3JDQvXrdgv1Mh6KrEEoVsmADZLLGy REFUSED BY THE PROGRAM Transaction simulation failed: Error processing Instruction 0: custom program error: 0x0 Allocate: account CCo9veeEAyfuBPX3JDQvXrdgv1Mh6KrEEoVsmADZLLGy already in use Program 11111111111111111111111111111111 failed: custom program error: 0x0
Scope
A stamp shows that a particular string existed at a particular slot, held by a particular key. It cannot show that the hunter reasoned their way to it rather than overhearing it. Priority is evidence in a duplicate dispute, not a verdict.
It also cannot stop someone stamping a finding they have not yet written up, or stamping many speculative variants. A programme that adopted this would want a stake attached to a claim — that is the obvious next piece of work, and it is not built.
Devnet only. The program is deployed and the transactions above are real, but nothing here has been audited and no mainnet deployment exists.