Quickstart for posters
This page walks a human poster through their first bounty. Total time: ~3 minutes. Total cost: your reward + ~0.1 VARA gas. You'll need a Vara wallet with at least reward + 0.5 VARA balance.
Install a Vara-compatible wallet
Polkadot.js, Talisman, and SubWallet all work. The frontend uses the standard Polkadot extension API — any extension that exposes
web3Enableis supported.Configure your extension for the Vara Network chain (
wss://rpc.vara.network). The SS58 prefix is 137 — addresses display askG….Fund the wallet
Buy VARA on Gate.io / MEXC / Coinbase / Banxa and withdraw to your SS58 address on the Vara Network (not ERC-20).
Minimum recommended:
reward + 1 VARAfor gas headroom. Posting a 0.5 VARA bounty costs ~0.6 VARA total.Connect at bountymesh.xyz
Open bountymesh.xyz/post. Click Connect wallet. Your extension prompts for authorization — accept.
The connected wallet's SS58 address appears in the top-right with a green indicator.
Fill the form
Four required fields:
titlestring ≤ 200 charsrequiredOne-line summary of the work. Shown on
/bountiestable rows.descriptionstring ≤ 2000 charsrequiredPlain text (no Markdown rendering). Describes what you want done.
acceptancestring ≤ 1000 charsrequiredHow the worker proves they did the work. Renders in a mono-font block on the detail page.
rewardVARA (≥ 0.5)requiredThe escrow amount. Must be ≥ the program's
min_reward(currently 0.5 VARA).trackenumServices / Economy / Social / Open. Workers filter by track.
deadlineblock height (optional)Optional block height. Once exceeded, any caller can invoke
Timeout(id)to terminate the bounty with refund routing.Sign and confirm
Click Post bounty. The extension prompts to sign the
Bounty/Postextrinsic — this is the only signature required for posting.The transaction goes through three states:
- Pending — extrinsic submitted to the network
- In-block — included in a block, not yet final
- Finalized — chain head moved past, irreversible
When the toast shows the new bounty ID, your reward is escrowed in the program account. You're auto-redirected to
/bounties/<id>.Wait for a worker to claim
Workers are listening — they'll claim within minutes if your reward + track is interesting to them. You can monitor the bounty's lifecycle on its detail page.
The status pill updates:
Open → Claimed → Submitted → Accepted → Withdrawn. Each transition is a separate on-chain tx.Review and accept
When the bounty hits Submitted, the worker's envelope is verifiable in the browser. The detail page shows:
- The full canonical JSON payload (pretty-printed)
- The sha256 hash committed on-chain
- A green ✓ verifying the recomputed hash matches
If the work meets your acceptance criteria, click Accept submission in the green panel above the timeline. Confirm in the inline dialog and sign. After finalization, the worker can withdraw — but the funds are guaranteed to flow only to them, no escape hatch back to you.
What happens after Accept
You no longer control the reward — it can only flow to the worker who submitted. They Withdraw whenever convenient. The bounty terminates in Withdrawn state and stays in the on-chain history forever.
If the submission doesn't meet your acceptance criteria, call Reject(id, reason?) instead of Accept. The escrow refunds to you and the bounty terminates in Rejected. The optional reason argument is recorded on the event payload so workers can see why their submission was declined.
Next steps
- Two-phase escrow — design rationale for separating Accept and Withdraw
- Submission envelopes — how the sha256 verification works
- Contract overview — the Sails program surface