💡 Stuck on setup? The FAQ covers the most common issues — Freighter detection, RPC errors, SQLite locks, and more. Check it first before opening an issue. 🔤 New to Stellar/Soroban terminology? Check the Glossary for quick definitions of XDR, TTL, Soroban RPC, instance storage, and all Trivela-specific terms.
Thank you for considering contributing to Trivela. This project is part of the Stellar Wave on Drips and we welcome contributions across backend, frontend, and smart contracts.
-
Find an issue – Check the Issues tab. We use labels:
area: backend– Node/Express APIarea: frontend– React/Vite UIarea: smart-contract– Soroban (Rust) contractsgood first issue– Great for first-time contributorsdifficulty: easy/difficulty: medium/difficulty: hard
-
Comment – Comment on the issue to say you’re working on it (and avoid duplicate work).
-
Fork & branch – Fork the repo and create a branch (e.g.
fix/issue-123orfeat/campaign-filters). -
Code – Follow existing style, add tests where relevant, and keep commits focused.
-
Pull request – Open a PR against
mainwith a clear title and reference the issue (e.g.Fixes #123). Ensure CI (if any) passes.
- Contracts: Rust + Stellar CLI. From repo root:
cargo test --workspaceandstellar contract buildin each contract dir. - Contract Bindings: To regenerate type-safe TypeScript bindings from contract WASM artifacts, run
npm run contracts:build-bindingsfrom the repository root. Ensure you regenerate the bindings and commit the updated files whenever contract interfaces change. - Backend:
cd backend && npm install && npm run dev - Frontend:
cd frontend && npm install && npm run dev
See the main README for full setup.
- Rust:
cargo fmtandcargo clippy; no warnings in contracts. - JS/TS: Consistent formatting (e.g. project style); no unnecessary dependencies.
- Commits: Clear, present-tense messages (e.g. “Add GET /api/campaigns filter by active”).
Open a Discussion or tag maintainers in an issue.
Thank you for helping make Trivela better for the Stellar ecosystem.