Glossary
Names in the code that the other docs leave undefined. Values come from prisma/schema.prisma and the routes that write them.
Account roles
Stored on User.role. New accounts start as CLIENT. Onboarding picks Hunter or Team once. Admin is not a signup choice.
CLIENT— default before onboarding. Not a role you choose on the board.HUNTER— individual account. Apply, get assigned, submit work, receive a shielded payout.TEAM— posts work with a team and a shared wallet.ADMIN— operator. Can approve bounties, change approval, and authorize payment.
Team membership
TeamMember.role is a string, not an account role. Values: OWNER, ADMIN, MEMBER (default). A team role does not change User.role.
Creator
Not a role. It is the user in Bounty.createdBy. A Hunter who creates a bounty is stored as its creator, is auto-assigned, and the bounty is saved with isApproved false, even when the suggestion names a team. Admin bounties are approved on creation. Team bounties created by a team user are approved on creation too.
Bounty status
TO_DO— default. Treated as not approved.IN_PROGRESS— someone is assigned, or an admin approval moved it here. A rejected submission, or one that needs revision, returns the bounty here when no other submission is approved.IN_REVIEW— an assignee submitted work.DONE— work was accepted, or an admin set this status. Several assignees require a winner first.CANCELLED— no assignees left, or an admin cleared approval. Treated as not approved.
Applications and submissions use their own strings. Applications default to pending. Submission review accepts approved, rejected, or needs_revision.
Flags
isApproved— submit work fails while this is false. Setting it true moves status toIN_PROGRESS. Setting it false moves status toCANCELLED.isPaid— a payout was recorded. ADONEbounty with this flag false is still unpaid.paymentAuthorized— an admin authorized payout. A successful send also sets it true.paymentInFlight— a send has claimed this bounty so a second send cannot start. Cleared when the send is recorded or marked failed.paymentScheduled— optional schedule. It does not by itself pay the bounty.
Transaction status
On the payment record, not on the bounty. PENDING means claimed and not yet sent. BROADCAST means a txid was seen and the bounty is marked paid. FAILED means the wallet reported an error before sending. UNKNOWN means the outcome is unclear and a human has to resolve it.
Next: FAQ →