Thanks for helping build trustless bounties on Stellar! This guide gets you from a clean checkout to passing checks.
- Prerequisites
- First-time setup
- Running locally
- Project layout
- Running checks
- Commit conventions
- Stellar Wave / Drips
| Tool | Version | Notes |
|---|---|---|
| Node.js | ≥ 20 | Use nvm use (see .nvmrc). |
| pnpm | ≥ 9 | npm i -g pnpm |
| Rust | stable | rustup toolchain. |
| Stellar CLI | ≥ 22 | cargo install --locked stellar-cli |
| wasm target | — | rustup target add wasm32v1-none |
git clone https://github.com/thefifthdev/questboard.git
cd questboard
make setup # installs deps, pushes the local DB, builds the typed client
cp web/.env.example web/.env.local
cp server/.env.example server/.envmake dev # API on :4000 and web on :3000
# or individually:
make dev-server
make dev-webConnect Freighter (set to Testnet) in the web app to post and claim quests.
| Path | What it is |
|---|---|
contracts/quest-escrow/ |
The Soroban escrow contract (Rust). |
packages/quest-client/ |
Typed TS bindings generated from the deployed contract. |
server/ |
Express + Prisma off-chain metadata indexer. |
web/ |
Next.js app wired to testnet. |
docs/ |
Architecture, deployment, contract API, security. |
These mirror CI — run them before opening a PR:
# Contract
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
# JS/TS
pnpm lint
pnpm format:check
pnpm test
pnpm buildWe use Conventional Commits: feat:,
fix:, docs:, refactor:, test:, ci:, chore:. Keep the subject under
72 characters and in the imperative mood.
QuestBoard participates in the Stellar Wave Program via
Drips. Issues labeled Stellar Wave and
good first issue are open for contributors to pick up and earn rewards.
Comment on an issue to get it assigned before you start.