Decentralized trade finance on Stellar — SMEs get paid today, LPs earn yield, no banks involved.
Live App · Smart Contracts · Stellar Explorer
Small businesses that sell on credit terms wait 30–90 days to get paid. TrusTrove removes that wait.
An SME tokenizes their unpaid invoice on Stellar and receives immediate USDC from a shared liquidity pool at a small discount. The buyer repays the full invoice amount at the due date. Liquidity providers earn yield from those discount fees. Four Soroban smart contracts handle everything — no bank, no broker, no intermediary.
The Asian Development Bank estimates the global trade finance gap at $2.5 trillion annually. Most of it falls on SMEs in emerging markets who cannot access bank credit. TrusTrove runs on Stellar specifically because of its fast finality, low fees, USDC support, and anchor network for fiat on/off ramps.
| Name | Role | GitHub | Telegram | |
|---|---|---|---|---|
| Fuhad (K1NGD4VID) | Founder & Lead Developer | @k1ngd4vid | @k1ngd4vid |
Join the contributor community: t.me/trusttrove
SME creates invoice on-chain
↓
Lists for financing with a chosen discount rate
↓
Pool funds the invoice — SME receives USDC immediately
↓
Goods shipped → buyer confirms delivery
↓
Buyer repays face value at due date
↓
Yield distributes to LP shares
| Layer | Technology |
|---|---|
| Smart Contracts | Rust, Soroban SDK — TrusTrove-contract |
| Frontend | Next.js 14, TypeScript, Tailwind CSS, Framer Motion |
| Wallet | Freighter browser extension |
| Payments | USDC on Stellar |
| SDK | Custom TypeScript contract client wrappers |
| Indexer | Go 1.22, chi router, pgx v5 |
| Database | PostgreSQL 15 |
| Hosting | Vercel (frontend), Render (indexer + database) |
| Contract | Address |
|---|---|
| registry_contract | CABGWVIZFF62FG67ZGFEP67NEEY4WYTMFURDMFTKKNRDAFPKPOJDTN4C |
| invoice_contract | CA4O3MR7LWHRSUDBNU6FY6UDFFYBN7TGBZXBDZB4OYYXFYXIFJ6RJF6B |
| escrow_contract | CAJWGUKDTTC3SKN4RAAY72J4DVIIYSCFHX6GIMNTT22ABMISJK4GBCEH |
| pool_contract | CAKEWH7SJCXGV2MH2WZYIX3QDPTSSBQFXYVYBOWAGLNBBZMPLE2US6CS |
- Root
.env.exampleis the single source of truth for frontend, SDK, and Go indexer variables. It lists each variable's layer, type, required status, default value, description, and source. - For Render deployments, set
ALLOWED_ORIGINStohttps://trustrove.vercel.app,http://localhost:3000so the indexer accepts requests only from the production Vercel domain and local development origins. - Indexer OpenAPI documentation lives at
docs/openapi/indexer.yaml, including health, SEP-10 auth, invoices, events, stats, and pool endpoints. - Web app setup instructions live at
apps/web/README.md.
- Node.js 20+
- pnpm 9+
- Go 1.22+
- Docker
- Freighter browser extension
git clone https://github.com/TrusTrove/TrusTrove-app.git
cd TrusTrove-app
pnpm installcp .env.example .env.localThe contract IDs are pre-filled with the deployed testnet addresses. Review .env.example for every frontend, SDK, and indexer variable before changing networks.
docker-compose up -dcd indexer
go run main.gopnpm --filter web devOpen http://localhost:3000, connect Freighter on testnet, and get testnet USDC from demo.stellar.org.
We welcome contributions from the Stellar community. Before opening a PR, please read CONTRIBUTING.md.
Browse open issues labeled by complexity:
complexity:low— isolated scope, good starting pointcomplexity:medium— touches 2–3 componentscomplexity:high— architectural changes
- Features:
feat/123-short-description - Fixes:
fix/456-short-description - Docs:
docs/short-description
We use Conventional Commits:
feat(web): add invoice status timeline component
fix(sdk): handle soroban rpc timeout with retry
docs(indexer): add pagination endpoint documentation
- Assign yourself to the issue before starting
- Branch from
main - Open a draft PR early so maintainers can give early feedback
- All checks must pass before review
If you have questions, reach us on Telegram: t.me/trusttrove
MIT
