Soroban-powered on-chain quests, rewards, and community engagement on Stellar.
Stellar Scavenger is an open-source platform for creating wallet-based quests on the Stellar network. Projects can define tasks such as making a donation, interacting with a contract, sending a transaction, or completing an onboarding flow, then verify completion and distribute rewards transparently.
It is designed for hackathons, DAOs, community campaigns, grants programs, onboarding experiences, and ecosystem growth initiatives.
A Soroban-powered quest and reward platform for creating on-chain challenges, verifying wallet activity, and distributing community rewards on Stellar.
- Create and manage quests
- Verify wallet-based quest completion
- Distribute rewards after verification
- Track participation and leaderboard rankings
- Expose API endpoints for apps and dashboards
- Support future integrations for badges, NFTs, and campaign analytics
stellar-scavenger/
├── README.md
├── CONTRIBUTING.md
├── LICENSE
├── .gitignore
├── .env.example
├── docs/
│ ├── architecture.md
│ ├── api-spec.md
│ ├── endpoints.md
│ └── roadmap.md
├── contracts/
│ ├── quest-contract/
│ │ ├── Cargo.toml
│ │ └── src/lib.rs
│ ├── reward-contract/
│ │ ├── Cargo.toml
│ │ └── src/lib.rs
│ └── leaderboard-contract/
│ ├── Cargo.toml
│ └── src/lib.rs
├── api/
│ ├── package.json
│ ├── tsconfig.json
│ ├── src/
│ │ ├── index.ts
│ │ ├── health/
│ │ │ └── health.controller.ts
│ │ ├── quests/
│ │ │ ├── quests.controller.ts
│ │ │ └── quests.service.ts
│ │ ├── rewards/
│ │ │ ├── rewards.controller.ts
│ │ │ └── rewards.service.ts
│ │ ├── users/
│ │ │ └── users.controller.ts
│ │ └── verification/
│ │ └── verification.controller.ts
│ └── tests/
│ └── smoke.test.ts
├── web/
│ ├── package.json
│ ├── tsconfig.json
│ ├── app/
│ │ ├── page.tsx
│ │ ├── quests/page.tsx
│ │ ├── leaderboard/page.tsx
│ │ ├── wallet/page.tsx
│ │ └── rewards/page.tsx
│ └── components/
│ └── header.tsx
└── .github/
├── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ ├── feature_request.md
│ └── good_first_issue.md
└── workflows/
└── ci.yml
GET /health
POST /api/v1/questsGET /api/v1/questsGET /api/v1/quests/:questIdPATCH /api/v1/quests/:questIdPOST /api/v1/quests/:questId/joinPOST /api/v1/quests/:questId/verifyPOST /api/v1/quests/:questId/complete
GET /api/v1/rewardsPOST /api/v1/rewards/claimGET /api/v1/rewards/:rewardId
GET /api/v1/users/:walletAddressGET /api/v1/users/:walletAddress/questsGET /api/v1/users/:walletAddress/rewardsGET /api/v1/users/:walletAddress/leaderboard
GET /api/v1/leaderboardGET /api/v1/analytics/questsGET /api/v1/analytics/rewards
- Admin creates a quest.
- User connects a Stellar wallet.
- User joins the quest.
- App verifies required wallet activity.
- Reward is marked claimable.
- User claims reward.
- Leaderboard and analytics update.
cd api
npm install
npm run devcd web
npm install
npm run devCompile with Soroban tooling after adding your workspace configuration.
git init
git add .
git commit -m "feat: bootstrap stellar-scavenger repository"See CONTRIBUTING.md.
MIT