First off, thank you for considering contributing to StellarStream! It's people like you that make the Stellar ecosystem a great place to build.
StellarStream is a community-driven project for the Drips Stellar Wave. We use a modular architecture and an Issue-First workflow to ensure a clean, decentralized build process.
To maintain order, we do not allow direct Pull Requests that aren't linked to an existing issue.
- Find an Issue: Browse the [Issues] tab. Look for the
[Task]prefix. - Claim it: Comment on the issue you want to work on. A maintainer will assign it to you.
- Initialize & Build: If you are claiming an Initialization Issue, you are responsible for creating the folder structure for that specific module (e.g.,
/contracts,/frontend, or/backend). - Submit a PR: Once your task is complete, open a Pull Request and link it using
Closes #IssueNumber.
This repository starts as a blank canvas. We are building the following three independent modules. If the folder doesn't exist yet, it's because nobody has claimed the Initialization Task yet!
/contracts: The Soroban smart contract logic (Rust)./frontend: The user dashboard (Next.js + Tailwind)./backend: The indexing and analytics layer (Node.js/TypeScript).
- Language: Rust (Targeting
wasm32-unknown-unknown). - SDK:
soroban-sdk. - Testing: All logic must be accompanied by unit tests using the
cargo testsuite. - Formatting: Run
cargo fmtbefore committing.
- Framework: Next.js 14+ (App Router).
- Styling: Tailwind CSS.
- State: Preferred state management is Zustand or React Context.
- Wallet: Integration must use the Freighter Wallet API.
- Runtime: Node.js with TypeScript.
- Database: PostgreSQL (provided via Docker Compose).
- Goal: Listen for Soroban events and serve them via a REST API.
We use clean, imperative commit messages. Please format yours like this:
feat: add linear streaming math to contractfix: resolve freighter connection timeoutchore: initialize backend docker environment
By contributing, you agree that your contributions will be licensed under the MIT License of this project.
Questions? Open a "Discussion" or an "Issue" titled [Question] ... and we'll get back to you!