Poster review
The poster approves, which pays out, or rejects with a reason.
For everyday tasks: bugs, docs, designs.
The rules the bounty contract enforces, in plain words.
Posting moves the reward into escrow, a smart contract that pays an approved contributor or refunds you if you cancel.
Each bounty says who decides before anyone starts.
The poster approves, which pays out, or rejects with a reason.
For everyday tasks: bugs, docs, designs.
A named council votes; the quorum (e.g. 2 of 3) triggers the payout.
For audits, prizes and grants.
Contributors see the note and can resubmit.
The others are marked "not selected".
Cancelling refunds the poster, in the bounty's history.
Everyone can read every bounty; posters restrict who can submit.
Earned only from approved work. It can't be bought or transferred.
| Difficulty | Points per approved bounty |
|---|---|
| Beginner | +10 |
| Intermediate | +25 |
| Advanced | +50 |
| Expert | +100 |
The demo's data layer mirrors this contract, so it can switch to wagmi/viem calls.
// TaskFlow bounty escrow (simplified)
function post(token, reward, deadline, visibility, review) returns (bountyId);
function submit(bountyId, workUri) returns (submissionId); // before deadline, role-gated
// Poster review
function approve(bountyId, submissionId); // pays the winner in the same call
function reject(bountyId, submissionId, string reason); // reason is required
// Validator review
function vote(bountyId, submissionId, bool approve, string reason);
// when approvals >= quorum: pays the winner in the same call
function cancel(bountyId); // only with no submission awaiting a decision; refunds the poster
event Posted(bountyId, poster, reward);
event Submitted(bountyId, submissionId, contributor);
event Voted(bountyId, submissionId, validator, approve);
event Paid(bountyId, contributor, amount);
event Cancelled(bountyId, refund);src/lib/demo/types.tsBounties, submissions, votes, review modessrc/lib/demo/ops.tsPost, submit, approve, reject, vote, cancelsrc/lib/demo/chain.tsWallet prompt, pending, confirmed or failedsrc/lib/demo/select.tsReputation, leaderboard, who can submit