Thanks for taking the time to contribute. Here's what you need to know.
- Fork the repo and clone your fork
- Add the upstream remote:
git remote add upstream https://github.com/anonfedora/stellovault.git
- Create a branch from
main:git checkout -b type/short-description # e.g. feat/escrow-timeout, fix/oracle-rate-limit, docs/api-readme
| Prefix | Use for |
|---|---|
feat/ |
New features |
fix/ |
Bug fixes |
refactor/ |
Code cleanup with no behavior change |
docs/ |
Documentation only |
chore/ |
CI, deps, tooling |
contract/ |
Soroban contract changes |
Follow Conventional Commits:
type(scope): short description
# Examples
feat(escrow): add release timeout mechanism
fix(oracle): handle rate limit retry correctly
contract(collateral): validate expiry on register
- Run
npm run lintandnpm run formatbefore committing tsc --noEmitmust pass — no type errors- New endpoints need: controller + route + service layer
- Keep controllers thin; business logic lives in services
cargo fmtmust be cleancargo clippy -- -D warningsmust pass- Update snapshot tests if contract behavior changes (
cargo test) - No
unwrap()in production paths — use proper error handling
- Fill out the PR template completely
- Keep PRs focused — one concern per PR
- Contract changes require extra detail on interface/ABI impact
- All CI checks must pass before merge
Use the issue templates in .github/ISSUE_TEMPLATE/. Check existing issues before opening a new one. For the full feature backlog, see server/migration_issues.md.
Do not open public issues for security vulnerabilities. Contact the maintainers directly.