Skip to content

Epic: Bounty builder lifecycle (discover -> apply -> submit -> withdraw -> rewards) #628

Description

@0xdevcollins

Context

Builder/participant lifecycle UI in v1 boundless: discover -> apply/join/claim -> submit -> withdraw (application/submission) -> reward receipt. Mirrors the hackathon participant patterns and reuses the shared escrow runner (participant scope, default MANAGED custodial anchoring), wallet kit, and API client. Rewards are push-model: winners are paid on-chain by select_winners, so "reward withdrawal" is the receipt/earnings view (the only real withdrawals are application + submission).

Depends on the backend gap endpoints: boundlessfi/boundless-nestjs milestone Bounty Builder Lifecycle (#331-#335).

Participant journey by mode (entryType x claimType)

Mode Entry action Selection Winners
OPEN + SINGLE_CLAIM Claim (on-chain apply; reputation gate) organizer select_winners 1
OPEN + COMPETITION Join (cap; auto-shortlist) organizer select_winners 1-3 (multiple winners)
APPLICATION_LIGHT + SINGLE_CLAIM Apply (short proposal) organizer selects 1 1
APPLICATION_LIGHT + COMPETITION Apply (short proposal) organizer shortlists N 1-3
APPLICATION_FULL + SINGLE_CLAIM Apply (full proposal) organizer selects 1 1
APPLICATION_FULL + COMPETITION Apply (full proposal) organizer shortlists N 1-3

All modes then: submit work (on-chain anchor) -> organizer select_winners pushes the reward -> receipt in /me/earnings. Withdrawals: withdraw-application, withdraw-submission.

Blueprint to mirror

  • Discover: components/hackathons/HackathonsPage.tsx + HackathonCard
  • Detail: app/(landing)/hackathons/[slug]/page.tsx
  • Submit: components/hackathons/submissions/SubmissionForm.tsx + SubmissionAnchorProgress.tsx, features/hackathons/api/use-submission-anchor.ts
  • My activity: app/me/participating, app/me/hackathons/submissions, app/me/earnings
  • Escrow: features/hackathons/api/use-escrow.ts (useEscrowOpRunner participant scope), lib/wallet/wallet-kit.ts

Tasks

Out of scope

Organizer Operate/Decide UI (separate); a reward claim/pull step (push model kept); the v2 boundless-platform builder UI (this lives in v1, alongside the organizer Configure flow).

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions