Welcome! StellarMind is a community-driven open-source project and we're actively looking for contributors across all skill levels. Whether you write Rust, TypeScript, React, or just good documentation — there's a place for you here.
All open work lives in GitHub Issues. Every issue is labeled so you can find something that fits your skills:
| Label | Meaning |
|---|---|
🟢 good-first-issue |
Well-scoped, fully explained, no prior context needed |
🟡 help-wanted |
Needs an owner, clear requirements, moderate complexity |
🔵 soroban |
Rust/Soroban smart contract work |
🟣 sdk |
TypeScript SDK work |
🟠 dashboard |
React/frontend work |
📖 docs |
Documentation, guides, examples |
🧪 testing |
Writing or improving tests |
New to Stellar? Start with a good-first-issue + docs or sdk — these have the most guidance and don't require deep Soroban knowledge.
stellarmind/
├── contracts/ Rust/Soroban smart contracts
├── sdk/ TypeScript SDK (@stellarmind/sdk)
└── dashboard/ React explorer app
Each area has its own setup instructions below.
| Tool | Version | Install |
|---|---|---|
| Node.js | ≥ 18 | nodejs.org |
| Rust | stable | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
| Soroban CLI | latest | cargo install --locked soroban-cli |
| Stellar CLI | latest | cargo install --locked stellar-cli |
git clone https://github.com/IyanuOluwaJesuloba/stellarmind
cd stellarmind
npm installcd contracts
# Add WASM target
rustup target add wasm32-unknown-unknown
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Run tests
cargo testcd sdk
npm install
npm run build
npm testcd dashboard
npm install
npm run dev
# Opens at http://localhost:5173-
Get a testnet account:
stellar keys generate --global my-account --network testnet stellar keys address my-account
-
Fund it via Friendbot:
https://friendbot.stellar.org?addr=<YOUR_ADDRESS> -
Deploy contracts to testnet:
stellar contract deploy \ --wasm target/wasm32-unknown-unknown/release/stellarmind_contracts.wasm \ --source my-account \ --network testnet
-
Point the SDK at testnet (already the default):
const mind = new StellarMind({ network: 'testnet' })
- Find an issue — check the Issues tab, filtered by label
- Comment to claim it — say "I'd like to work on this" so maintainers can assign it
- Fork the repo and create a branch:
git checkout -b feat/your-feature - Write code + tests — every PR needs tests for new functionality
- Open a PR — reference the issue with
Closes #123 - Review — maintainers will review within 3 business days
- Merge 🎉
- Follow standard Rust formatting:
cargo fmt - Run clippy before submitting:
cargo clippy -- -D warnings - Every public function needs a doc comment (
///) - Every new contract function needs a matching test
- Prettier for formatting (config in
package.json) - ESLint with the project config
- Prefer
async/awaitover raw Promises - Export types alongside implementations
Follow Conventional Commits:
feat(sdk): add find() method with indexer support
fix(contracts): clamp reputation score to valid range
docs(contributing): add testnet setup section
test(registry): add deactivation edge case test
Open an issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Environment (OS, Node version, Rust version)
Open an issue with the enhancement label. Describe:
- The problem you're solving
- Your proposed solution
- Any alternatives you considered
All contributors are credited in our CONTRIBUTORS.md and release notes.
Active contributors may be invited to become project maintainers.
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for helping build the AI agent economy on Stellar. 🚀