REWARDS PAID IN tNIGHT · ESCROW HELD ON-CHAIN PROGRAM FUNDING FEE: 2% · GOES TO PLATFORM TREASURY RESEARCHERS POST A BOND ON SUBMIT · REFUNDED ON ACCEPT OR NO-FAULT REJECT SEVERITY TIERS: CRITICAL · HIGH · MEDIUM · LOW PROGRAMS GO STALE IF OWNER INACTIVE 30+ DAYS REWARDS PAID IN tNIGHT · ESCROW HELD ON-CHAIN PROGRAM FUNDING FEE: 2% · GOES TO PLATFORM TREASURY RESEARCHERS POST A BOND ON SUBMIT · REFUNDED ON ACCEPT OR NO-FAULT REJECT SEVERITY TIERS: CRITICAL · HIGH · MEDIUM · LOW PROGRAMS GO STALE IF OWNER INACTIVE 30+ DAYS
ON-CHAIN BUG BOUNTY · MIDNIGHT BLOCKCHAIN

HUNT
ZERO
DAYS.

A bug bounty registry deployed as a single Compact contract on Midnight. Program funds sit in on-chain escrow, submissions and bonds are tracked by the ledger, and rewards settle directly to the researcher's wallet on claim. No custodian in the middle.

bountyregistry.compact · midnight:preprod
// circuits
createProgram scope · tiers · bondBps
topUpProgram add to escrow (2% fee)
submitReport hash + bond on-chain
unlockSubmission owner moves to review
accept / reject owner decision
claimPayout researcher pulls reward
 
// ledger
programs Map<Uint64, Program>
submissions Map<Uint64, Submission>
lockedPayouts Map<Uint64, Uint64>
 
// network
midnight:preprod · block #
Potential Payouts
Active Programs
Researchers
BLOCK
FETCHING...
PROCESS
THE PROTOCOL
STEP_01

FUND A PROGRAM

An owner calls createProgram with their scope, per-severity reward tiers, and a bond rate. tNight is transferred into the contract and held in escrow. A 2% funding fee goes to the platform treasury; the rest becomes the reward pool.

STEP_02

SUBMIT WITH A BOND

A researcher calls submitReport with a program id, severity, and a 32-byte report hash. They post a bond proportional to the tier reward. The submission lands on-chain in Pending and the report itself is shared with the owner off-chain.

STEP_03

OWNER REVIEWS · RESEARCHER CLAIMS

The owner unlocks the submission into Review, locking the tier reward from the pool, then accepts or rejects. On accept, the researcher calls claimPayout and the contract releases their bond plus the full tier reward in a single transfer.

SUBMISSION STATES
LIFECYCLE
STATE_01
PENDING
submitReport landed.
Bond held by contract.
STATE_02
REVIEW
Owner called unlockSubmission.
Tier reward locked from pool.
STATE_03A
ACCEPTED
Owner accepted.
Reward ready to claim.
STATE_03B
REJECTED
Owner rejected with a reason.
Reward unlocked back to pool.
STATE_04
PAID
claimPayout settled.
Reward + bond sent.
ALT
WITHDRAWN
Researcher withdrew while
still Pending. Bond refunded.
✓ ON ACCEPT
Reward stays locked · researcher calls claimPayout() · receives bond + full tier reward in one transfer
✗ FAULT REJECT
Invalid · NotReproducible · InsufficientDetail — bond forfeited to platform treasury, no payout
↺ NO-FAULT REJECT
OutOfScope · Duplicate · KnownIssue · SeverityMismatch — researcher pulls bond back via claimBondRefund
LIVE ON MIDNIGHT
ACTIVE PROGRAMS
ALL PROGRAMS
PARTICIPANTS
BUILT FOR BOTH SIDES
FOR RESEARCHERS

HUNT.
EARN.

Pick a program, post a bond, submit a report hash. Once the owner accepts, claim your reward straight from the contract.

  • Per-tier rewards visible on-chain before you commit
  • Bond refunded on accept, withdraw, or no-fault reject
  • Programs can't strand you — owners go stale after 30 days inactive
  • One claimPayout call settles bond + full tier reward in a single transfer
  • Tier rewards are fixed at submission time — what you see is what you get
START HUNTING
FOR PROTOCOL OWNERS

SECURE.
SHIP.

Deploy a program in one transaction. Funds sit in the registry contract; you keep full control of triage and acceptance.

  • Set per-severity reward tiers and a custom bond rate
  • Top up, close, reopen, or withdraw idle funds anytime
  • 2% funding fee — no per-submission cost to you
  • Reject reasons distinguish good-faith from low-effort reports
  • Update scope and tiers as long as the pool covers them
LAUNCH A PROGRAM
// READY TO START

ZERO TRUST.
FULL PAYOUT.

Connect a Midnight wallet to fund a program or post a bond on a submission. All escrow, state transitions, and payouts settle through a single on-chain registry.

BROWSE PROGRAMS LAUNCH A PROGRAM