A decentralized prediction market for boxing matches, built on Stellar with Soroban smart contracts.
BOXMEOUT lets users create boxing match markets, place XLM bets on fight outcomes, and claim winnings after results are confirmed on-chain. All funds are held in escrow by the smart contract — no centralized custody.
boxmeout/
├── contracts/ Soroban smart contracts (Rust)
├── backend/ Indexer + REST API (Node.js / TypeScript)
├── frontend/ User interface (Next.js 14)
└── docs/ Architecture docs and contributor guide
| Contract | Purpose |
|---|---|
MarketFactory |
Deploys and tracks all boxing market contracts |
Market |
Holds bets, manages pools, handles resolution and claims |
Treasury |
Collects protocol fees, admin-controlled withdrawals |
- Rust +
cargowithsoroban-cli - Node.js 20+
- PostgreSQL
- Redis
- Freighter wallet browser extension
cd contracts
cargo build --release
cargo testcd backend
cp .env.example .env # fill in your Stellar + DB credentials
npm install
npm run db:migrate
npm run devcd frontend
npm install
npm run dev
# open http://localhost:3000See docs/CONTRIBUTING.md for coding standards, naming conventions, and how to pick and submit issues.
All functions are stubbed with todo!() (Rust) or throw new Error("Not implemented") (TypeScript). Pick a GitHub issue, implement the function, and open a PR.
MIT