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
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions