Thank you for your interest in contributing to Quorum!
Open issues tagged contract are the best starting point. To add a feature:
- Modify
contracts/governance/src/lib.rsorcontracts/token/src/lib.rs - Write tests using soroban-sdk testutils
- Update the contract README
Issues tagged frontend cover UI improvements, new pages, and accessibility work:
- Work in
frontend/app/andfrontend/components/ - Run
npm run devto preview changes - Run
npm run buildbefore opening a PR to verify no build errors
Issues tagged sdk cover new methods and improved typing:
- Work in
sdk/src/ - Wire methods to real Soroban RPC calls
- Export new types from
sdk/src/index.ts
Quorum participates in the Stellar Wave on Drips Network. Tagged issues earn Points during each sprint cycle so contributors can identify which work is rewarded before they start.
Maintainers should add one points label to each approved issue:
| Label | Typical scope | Examples |
|---|---|---|
drips:1 |
Small task | Docs edits, copy fixes, styling tweaks, good first issues |
drips:3 |
Medium task | New component, focused test coverage, SDK method |
drips:5 |
Large task | New page, contract function, integration flow |
drips:8 |
Complex task | Full feature, security-sensitive work, multi-package change |
If an issue grows during implementation, discuss the new scope in the issue before changing the label. Avoid adding more than one points label to the same issue.
- Pick an open issue with a
drips:*label and confirm it is not already assigned or claimed. - Comment
/attempt #ISSUE_NUMBERwith a short plan before starting work. - Keep the change focused on the issue acceptance criteria.
- Run the relevant frontend, SDK, or contract checks and include the commands in the pull request.
- Open a pull request with
/claim #ISSUE_NUMBERand link the issue.
Pull requests without an issue link or claim marker may still be reviewed, but they may not be tracked correctly by Drips Wave automation.
- Apply to the Stellar Wave program at https://www.drips.network/wave.
- Label approved issues with exactly one
drips:*points label. - Pin a "Drips Wave active" issue during active sprint cycles.
- Keep this guide updated if the reward program or sprint cadence changes.
Maintainers use drips:* labels to show the expected reward size before work starts:
| Label | Typical scope |
|---|---|
drips:1 |
Small documentation, style, copy, or good-first-issue fixes |
drips:3 |
Medium UI components, focused SDK work, or test coverage |
drips:5 |
Larger pages, contract functions, or multi-file integrations |
drips:8 |
Complex features, security-sensitive contract work, or full workflows |
If an issue is missing a point label, ask for sizing before opening a PR. During an active sprint, maintainers should pin a Drips Wave tracking issue that lists the eligible tasks for that cycle.
- TypeScript: strict mode, no
any - Rust: follow Soroban SDK patterns, use
Result<T, Error>overpanic!() - Commits: conventional commits format (
feat:,fix:,docs:,style:,test:,chore:)