7. Manage a bounty
What you’ll do: Drive a bounty through its middle stages — assignment, optional split, or rejection — before the PR merges.
Assign a contributor
Assign someone on GitHub the normal way (the issue’s Assignees field). TOSS reacts to the assignment:
- The bot links the contributor a page to connect a Stellar wallet.
- Until they connect, the bounty parks — no error, it just waits.
- When they connect, a worker pushes the milestone on-chain and the reward locks.
If you assign someone while the bounty has no amount, the bot says so and the flow waits. Set an amount (tier label or @trustless-oss <amount>) and it resumes automatically.
Split the payout (optional)
By default a merge pays the contributor the full reward. If you want to keep part of it — partial work, a shared effort — save a split before merging.
@trustless-oss pay 70The bot confirms with the exact amounts:
| Recipient | Example on a 100 USDC bounty, pay 70 |
|---|---|
| Contributor | 70 USDC |
| Maintainer (you) | 30 USDC |
A split is an intent saved against the bounty, applied at release time. Re-comment @trustless-oss pay <n> anytime before merging to change it. The contributor must have a connected wallet before a split can be saved.
Reject the work
If the work isn’t acceptable, reject it. This disputes the on-chain milestone and refunds the reserved USDC to your wallet.
@trustless-oss rejectYou can also apply the rejected label to the issue for the same effect.
Rejecting is irreversible and moves funds. It cancels the bounty, refunds the reserved reward to your wallet via an on-chain dispute resolution, and notifies the contributor. The milestone cannot be un-rejected — you’d create a new bounty to try again.
Force a re-check (rarely needed)
The automation parks and resumes on its own, and retries transient failures with backoff. If you ever want to nudge it:
@trustless-oss retryState reference
| Status | Meaning |
|---|---|
open | Priced, not yet assigned. Amount still editable. |
assigned | Contributor assigned. Locks once their wallet connects. |
paid | Released to the contributor. Terminal. |
cancelled | Rejected or closed. Funds refunded. Terminal. |
Next: Pay out (merge the PR) · Stuck? Troubleshooting