Programs · Grants

BOLT grant engine

On-chain project registry plus per-epoch Merkle-root claim payouts. The registry is purely informational; the payouts contract escrows funds anyone can deposit and routes them to scored recipients.

Live on Bohr testnetMainnet activation pending

Registry

Bohr

Projects register a token + pool + target BOT-pool ratio + metadata. An admin moves each project Unverified → Pending → Verified → Rejected. No funds touch this contract.

BoltGrantRegistry0x8d3ff1a4ee2b

Payouts

Bohr

Per-epoch Merkle-root claim. Admin publishes a root + total allocation, anyone funds the epoch, each (account, amount) leaf claims exactly once. Owner can only sweep unclaimed funds after the epoch closes.

BoltGrantPayouts0xd294c4f3319e

End-to-end flow

  1. 1registerProject on BoltGrantRegistry — project owner submits token + pool + target BOT ratio.
  2. 2Off-chain — the indexer collects swap volume, gas spent, BOT-pool ratio; the scorer rates each address.
  3. 3Off-chain — the scorer publishes a Merkle root over (account, amount) leaves.
  4. 4createEpoch(epochId, token, merkleRoot, totalAllocation, metadataURI) on BoltGrantPayouts — admin only.
  5. 5fundEpoch(epochId, amount) — anyone deposits the rebate tokens.
  6. 6claim(epochId, account, amount, proof) — any caller; funds always go to account.
  7. 7closeEpoch then recoverUnclaimed — admin sweeps anything still escrowed back to a treasury.

Related surfaces