A decentralised freelance marketplace powered by Stellar blockchain and Soroban smart contracts.
Stellar MarketPay is an open-source decentralised freelance marketplace where clients post jobs, freelancers apply, and payments are secured in Soroban smart contract escrow — released automatically when work is approved. No middlemen. No payment delays. No platform fees eating your earnings.
- 🔗 Wallet Connect — Freighter browser wallet integration
- 📋 Post Jobs — Clients post jobs with XLM budget locked in escrow
- 🙋 Apply & Bid — Freelancers apply with proposals
- 🔒 Escrow Payments — Funds held in Soroban contract until work approved
- ✅ Release & Complete — Client approves → funds released to freelancer instantly
- 📜 Job History — Track all your jobs and earnings on-chain
stellar-marketpay/
├── frontend/ # Next.js + React + Tailwind CSS
├── backend/ # Node.js + Express API
├── contracts/ # Stellar Soroban smart contracts (Rust)
├── docs/ # Architecture & API documentation
├── scripts/ # Deployment & utility scripts
├── .github/ # CI/CD workflows & issue templates
├── CONTRIBUTING.md
├── ROADMAP.md
└── LICENSE
| Tool | Version |
|---|---|
| Node.js | ≥ 18.x |
| npm | Latest |
| Rust + Cargo | ≥ 1.74 (for contracts) |
| Freighter Wallet | Browser extension |
git clone https://github.com/your-org/stellar-marketpay.git
cd stellar-marketpaychmod +x scripts/setup-dev.sh
./scripts/setup-dev.shcd frontend
npm run dev
# → http://localhost:3000cd backend
npm run dev
# → http://localhost:4000NEXT_PUBLIC_STELLAR_NETWORK=testnet
NEXT_PUBLIC_HORIZON_URL=https://horizon-testnet.stellar.org
NEXT_PUBLIC_SOROBAN_RPC_URL=https://soroban-testnet.stellar.org
NEXT_PUBLIC_API_URL=http://localhost:4000
NEXT_PUBLIC_CONTRACT_ID= # Set after deploying contract
NEXT_PUBLIC_USE_CONTRACT_MOCK=false # Set to 'true' for offline developmentPORT=4000
STELLAR_NETWORK=testnet
HORIZON_URL=https://horizon-testnet.stellar.org
CONTRACT_ID= # Set after deploying contractFor frontend development without a deployed Soroban contract:
-
Enable mock mode in
frontend/.env.local:NEXT_PUBLIC_USE_CONTRACT_MOCK=true
-
Start the frontend:
cd frontend npm run dev -
What works offline:
- ✅ Job creation with escrow locking
- ✅ Start work, release escrow, refund escrow
- ✅ Query escrow status and records
- ✅ All contract calls logged to browser console
- ✅ Realistic delays and error simulation
- ✅ No Freighter signing required
- ✅ No network calls to Stellar/Soroban
-
Check the console: All mock contract calls are logged with
[CONTRACT MOCK]prefix for debugging. -
Switch back to real contract: Set
NEXT_PUBLIC_USE_CONTRACT_MOCK=falseand provide a validNEXT_PUBLIC_CONTRACT_ID.
- Install Freighter Wallet
- Switch to Testnet in Freighter settings
- Visit Stellar Friendbot with your public key
- Receive 10,000 test XLM instantly
See CONTRIBUTING.md to get started. All skill levels welcome!
See ROADMAP.md for planned features.
MIT — see LICENSE