Documentation · v1.0

Everything you need to run trustless bounties.

BountyFlow turns on-chain actions into bounties that settle themselves. This guide covers the core model, the quest types, how verification reads your wallet, how payouts release, and the trust guarantees underneath it all.

Introduction

What is BountyFlow?

BountyFlow is an on-chain bounty platform. Someone posts a quest — a concrete on-chain action like a set of swaps, a hold period, or a staking position — and locks the reward in escrow. A hunter completes the action from their own wallet. The chain confirms it, and the reward releases automatically. No screenshots, no forms, no moderator approval.

Every other bounty board stops at "submit your proof and wait." BountyFlow removes the wait and the human in the loop: the on-chain record is the proof, and a verifier reads it directly through an indexer.

Trustless settlement Escrowed rewards Zero manual review Built on Solana
In one sentence

Do an on-chain action → the chain verifies it → you get paid in SOL, automatically.

Motivation

Why BountyFlow exists

Quest and bounty platforms — Hivemind, BountyPool, BountyCraft and the rest — all share the same gap: someone has to manually verify that the work was done. That means uploading a screenshot, filling a form, and waiting for a reviewer to approve it. It is slow, gameable, and entirely trust-dependent: the hunter hopes they get paid, the poster hopes the hunter was honest.

For on-chain actions, that manual step is unnecessary. A swap, a hold, a stake — they all leave a permanent, public record. BountyFlow reads that record and settles against it. The result is the one thing the others can't offer: trustless verification.

StepTypical bounty boardBountyFlow
Proof of workScreenshot / formOn-chain record
VerificationManual review by a modIndexer reads the chain
PayoutManual, after approvalAutomatic on settle
Trust requiredIn the reviewerIn math, not people
Time to settleHours to daysSeconds after conditions met

Fundamentals

Core concepts

Four primitives make up the whole system. Understand these and the rest follows.

Primitive 01

The Quest

A precise, machine-checkable on-chain task: "10 swaps on Jupiter in 7 days," "hold token X for 30 days," "stake in pool Y." Defined by the creator.

Primitive 02

The Escrow

The reward is locked in a smart contract the moment a quest goes live. Hunters can see the prize is real and funded before they lift a finger.

Primitive 03

The Verifier

An indexer-backed service that reads wallet activity and evaluates a quest's conditions. It counts swaps, tracks balances, detects rebalances. Math, not moderators.

Primitive 04

Auto-Settle

When the verifier confirms the conditions are met, the escrow releases the reward to the hunter's wallet — no claim button, no approval queue.

End to end

The quest lifecycle

From posting to payout, every quest follows the same five stages.

  1. Create & fundCreator defines the action, deadline, and reward, then funds the escrow. The quest is now live and discoverable.
  2. AcceptA hunter connects a wallet and accepts the quest. The wallet address is bound to the quest as the address that will be checked.
  3. PerformThe hunter completes the on-chain action on the protocols they already use — Jupiter, a token, an LP pool.
  4. VerifyThe verifier reads the wallet's activity through an indexer and evaluates the conditions continuously.
  5. SettleConditions met → the escrow contract releases the reward automatically. The quest closes.
Note

Verification is continuous, not a one-shot check. A hold quest, for example, is re-evaluated until the full duration elapses or the condition breaks.

Bounty Types

What you can post

BountyFlow ships with three verifiable quest families. Each maps to a class of on-chain action the verifier knows how to read deterministically.

TypeExampleRewardSettles when
Swap10 swaps on Jupiter / week0.5 SOLNth qualifying swap confirms
HoldHold token for 30 days0.2 SOLDuration elapses, balance intact
Stake / LPStake in pool0.1 SOLFirst rebalance after entry

Bounty Types · Swap

Swap quests

Reward hunters for routing volume through a DEX. The verifier counts qualifying swaps from the bound wallet within the time window. Partial fills count toward the target.

Example

"Make 10 swaps on Jupiter in a week → 0.5 SOL." The hunter routes any 10 swaps through Jupiter within 7 days of accepting. On the 10th confirmed swap, the escrow releases 0.5 SOL.

Configuration

json
{
  "type": "swap",
  "venue": "jupiter",
  "count": 10,
  "window": "7d",
  "minNotionalUsd": 5,   // ignore dust swaps
  "reward": { "asset": "SOL", "amount": 0.5 }
}

Bounty Types · Hold

Hold quests

Reward conviction. The hunter must keep a minimum balance of a token in the bound wallet for a continuous duration. The verifier watches the balance — sell below the threshold and the quest resets or fails, depending on the rule.

Example

"Hold this token for 30 days → 0.2 SOL." Keep the token in your wallet for 30 continuous days. The indexer tracks the balance, not a moderator. After the 30th day with the balance intact, 0.2 SOL releases.

Watch out

Transferring the token out — even to another wallet you own — breaks the continuous-hold condition. Verification is per the bound address only.

Bounty Types · Stake / LP

Stake / LP quests

Reward providing liquidity or staking. The hunter enters a position and stays in through a defined on-chain event — most commonly the pool's first rebalance after entry. The verifier detects the position and the event.

Example

"Stake in this pool → 0.1 SOL after first rebalance." Provide liquidity and remain staked through the pool's next rebalance. Once that rebalance event is observed on-chain with the position still active, the payout releases.

Mechanics

Trustless verification

Verification is the heart of BountyFlow. Instead of trusting a submission, the verifier subscribes to the bound wallet's activity through an indexer and evaluates the quest's conditions against the raw on-chain history.

  • Deterministic — given the same chain state, every evaluation returns the same result. No discretion, no disputes.
  • Continuous — conditions are re-checked as new blocks land, so time-based quests (holds, durations) resolve exactly when they should.
  • Sybil-aware — quests bind to the accepting wallet; spreading activity across wallets doesn't satisfy a single quest.
  • Auditable — anyone can replay the same indexer reads and arrive at the same settle decision.

What the verifier reads

Quest familySignal read on-chain
SwapDEX program instructions & fill events from the wallet
HoldToken account balance over time (snapshots per block)
Stake / LPPosition accounts & pool rebalance events

Mechanics

Settlement & payouts

When the verifier marks a quest's conditions as satisfied, it submits the settle instruction to the escrow contract. The contract verifies the proof and transfers the reward to the hunter's wallet in the same transaction.

  1. Conditions metThe verifier flips the quest to SETTLEABLE the instant the on-chain criteria are satisfied.
  2. Settle instructionThe escrow program checks the verifier's attestation against the quest rules stored at creation.
  3. ReleaseIf valid, the reward transfers to the hunter. The quest moves to SETTLED and is closed.
No claim button

Hunters don't claim — settlement is pushed automatically. If a quest expires unmet, the escrow refunds the creator.

Mechanics

Fees

BountyFlow charges a small protocol fee on settled rewards. Posting and accepting are free; you only ever pay network gas plus the protocol fee on a successful settle. Expired, unmet quests are refunded in full minus network gas.

ActionCost
Post a questFree + network gas to fund escrow
Accept a questFree
Successful settleProtocol fee on the reward + network gas
Expired / unmetFull refund to creator, minus network gas

Mechanics

Security & trust model

The escrow contract is the only component that moves funds, and it only releases against rules fixed at creation time. The verifier can attest that conditions are met, but it cannot change a quest's terms or redirect a payout.

  • Funds are escrowed, not custodied — rewards sit in a program-owned account, released only by the settle path.
  • Rules are immutable post-funding — a creator can't move the goalposts after a hunter accepts.
  • Connect-only auth — you sign to prove wallet ownership; BountyFlow never asks for private keys or token approvals beyond what a quest needs.
  • Replayable settlement — every settle decision can be independently reproduced from public chain data.
Your keys, your responsibility

BountyFlow is non-custodial. Always confirm the program and the quest terms in your wallet before signing.

Guides

For hunters

Earning a bounty takes three actions and zero paperwork.

  1. Connect your walletOpen the app and connect. You're signing to prove ownership — nothing is moved.
  2. Pick a quest and acceptBrowse live quests, read the conditions and reward, and accept. Your wallet becomes the bound address.
  3. Do the action and get paidComplete the swap, hold, or stake from your wallet. When the chain confirms, the reward lands automatically.

Browse live example bounties →

Guides

For creators

Posting a bounty means defining a checkable action and funding the prize.

  1. Define the actionChoose a type — swap, hold, or stake — and set the parameters (count, duration, venue, thresholds).
  2. Set the reward and deadlinePick the payout amount and the window in which hunters can complete it.
  3. Fund the escrowLock the reward in the contract. The quest goes live and discoverable the moment it's funded.
  4. Let it settle itselfNo reviewing submissions. Met quests pay out automatically; expired ones refund you.

Guides

API & webhooks

Read quest state and subscribe to settlement events programmatically. The public read API requires no auth; webhooks let your backend react the moment a quest settles.

Fetch a quest

bash
# Read a quest's live status
curl https://api.bountyflow.xyz/v1/quests/QUEST_ID

Subscribe to settlements

json
{
  "event": "quest.settled",
  "questId": "q_8f2a…",
  "wallet": "7xKX…9fQ",
  "reward": { "asset": "SOL", "amount": 0.5 },
  "txSignature": "3Vn…"
}
Heads up

API endpoints are illustrative for this preview. Production base URLs and auth scopes ship with the public launch.

Reference

Frequently asked questions

Do I have to submit proof of my work?

No. The on-chain record is the proof. The verifier reads your wallet's activity directly — there's nothing to upload.

How fast do I get paid?

As soon as the conditions are met on-chain. For swap quests that's the moment the qualifying swap confirms; for holds it's when the duration completes.

Can I use multiple wallets to complete one quest?

No. A quest binds to the wallet that accepted it. Activity from other wallets doesn't count toward that quest.

What happens if nobody completes a quest?

When the deadline passes with the conditions unmet, the escrow refunds the creator in full, minus network gas.

Is BountyFlow custodial?

No. Rewards sit in a program-owned escrow and you connect with a wallet signature. BountyFlow never holds your keys.

Which chain does it run on?

Solana. The verifier reads Solana program activity and the escrow is a Solana program.

Reference

Glossary

TermMeaning
QuestA machine-checkable on-chain task with a reward and deadline.
Bound walletThe wallet that accepted a quest; the only address checked for that quest.
VerifierThe indexer-backed service that evaluates quest conditions against chain data.
EscrowThe program account holding a quest's reward until settle or refund.
Auto-settleAutomatic release of the reward when conditions are met — no claim step.
RebalanceA pool event that adjusts liquidity allocation; used as a settle trigger for LP quests.

Ready to run a trustless bounty?

Browse live quests or post one. Either way, the chain does the settling.