Thank you for your interest in contributing to SoroSave! This guide will help you get started.
- Fork the repository and clone your fork
- Set up your environment (see README.md for prerequisites)
- Find an issue — Look for issues labeled
good first issueorhelp wanted - Comment on the issue to let others know you're working on it
- Create a branch from
mainfor your changes - Submit a pull request when ready
# Clone your fork
git clone https://github.com/<your-username>/sorosave.git
cd sorosave
# Add upstream remote
git remote add upstream https://github.com/big14way/sorosave.git
# Install dependencies
pnpm install
# Build everything
pnpm build| Directory | Description | Language |
|---|---|---|
contracts/sorosave/ |
Soroban smart contract | Rust |
sdk/ |
TypeScript SDK wrapping contract | TypeScript |
frontend/ |
Next.js web application | TypeScript/React |
scripts/ |
Deployment and setup scripts | Bash |
# Build
stellar contract build
# Test
cargo test
# Test with logs
cargo test -- --nocapturecd sdk
pnpm install
pnpm build
pnpm testcd frontend
pnpm install
pnpm dev # Start dev server
pnpm build # Production build
pnpm lint # Lint check- Follow standard Rust conventions (
cargo fmt,cargo clippy) - Use descriptive error types from
ContractErrorenum - Add tests for all new contract functions
- Use TypeScript strict mode
- Follow existing patterns in the codebase
- Add JSDoc comments for public API methods
- One PR per issue — Keep changes focused
- Write tests — Contract changes need Rust tests, SDK changes need unit tests
- Update docs — If your change affects the API, update relevant documentation
- Descriptive commits — Use clear commit messages describing what and why
- Pass CI — Ensure all tests and linting pass before requesting review
feat(contract): add randomized payout order
fix(sdk): handle connection timeout
docs: update deployment guide
test(contract): add edge case for empty group
| Label | Description |
|---|---|
good first issue |
Simple tasks, great for newcomers |
help wanted |
Moderate complexity, well-defined scope |
bounty |
Significant features, eligible for rewards |
contract |
Smart contract (Rust) work |
sdk |
TypeScript SDK work |
frontend |
React/Next.js frontend work |
testing |
Test coverage improvements |
documentation |
Docs, guides, comments |
security |
Security-related improvements |
infrastructure |
CI/CD, tooling, deployment |
bug |
Bug reports and fixes |
enhancement |
Feature requests and improvements |
If you discover a security vulnerability, please do not open a public issue. Instead, email security concerns directly to the maintainers.
Be respectful, inclusive, and constructive. We're building for communities worldwide — let's reflect that in how we collaborate.
Open a discussion or reach out in our community channels. We're happy to help you get started!