VaultDAO is a Soroban-native treasury management dApp for high-value Stellar organizations — multi-sig security with the speed of Soroban.
Think of it as the "Gnosis Safe of Stellar" — built for DAOs, enterprise treasuries, and investment clubs.
| Feature | Description |
|---|---|
| Multi-Signature | M-of-N signing enforced on-chain |
| RBAC | Admin, Treasurer, Member roles |
| Timelocks | Large transfers locked before execution |
| Spending Limits | Daily and weekly allowances |
| Recurring Payments | Payroll and subscriptions with interval checks |
| Path | Purpose |
|---|---|
contracts/vault/ |
Soroban smart contract (Rust) |
frontend/ |
React dashboard |
backend/ |
Indexing / API scaffold |
sdk/ |
TypeScript SDK |
docs/ |
Guides and reference |
- Rust (1.70+) with
wasm32-unknown-unknown - Node.js 20+ (22 recommended — Vite 7 requires it)
- Freighter wallet (optional for live wallet flows)
cd contracts/vault
cargo check --lib
cargo build --target wasm32-unknown-unknown --releaseDemo mode loads seeded treasury data so the dashboard works without a wallet or live contract.
cd frontend
cp .env.example .env
# In .env set:
# VITE_DEMO_MODE=true
# VITE_CONTRACT_ID / VITE_FEES_ACCOUNT / RPC URLs (see .env.example)
npm install --legacy-peer-deps
npm run devOpen http://localhost:5173.
Useful demo pages: /dashboard (overview), /dashboard/proposals, /dashboard/analytics.
Set VITE_DEMO_MODE=false and point VITE_CONTRACT_ID at a deployed VaultDAO contract on Soroban testnet. There is no fixed public contract ID checked into this repo right now — deploy from contracts/vault (see docs/guides/contracts/TESTNET_INTEGRATION.md) and paste the Contract ID into .env.
npm --prefix backend install
cp backend/.env.example backend/.env
npm run backend:dev- Import the GitHub repo in Vercel.
- Set Root Directory to
frontend. - Framework preset: Vite (or Other). Build:
npm run build, Output:dist. - Install command:
npm install --legacy-peer-deps - Add environment variables (Production):
| Variable | Suggested value |
|---|---|
VITE_DEMO_MODE |
true |
VITE_CONTRACT_ID |
placeholder CD… is fine in demo mode |
VITE_SOROBAN_RPC_URL |
https://soroban-testnet.stellar.org |
VITE_STELLAR_NETWORK_PASSPHRASE |
Test SDF Network ; September 2015 |
VITE_STELLAR_NETWORK |
TESTNET |
VITE_HORIZON_URL |
https://horizon-testnet.stellar.org |
VITE_STELLAR_EXPLORER_URL |
https://stellar.expert/explorer/testnet |
VITE_FEES_ACCOUNT |
any valid G… address placeholder |
frontend/vercel.json rewrites SPA routes to index.html.
After deploy, use the Vercel URL in your pitch / GrantFox official links.
Pull requests and pushes to main run .github/workflows/ci.yml:
- Frontend — install + TypeScript typecheck
- Contract —
cargo check --lib
- Documentation index: docs/README.md
- Architecture: docs/reference/ARCHITECTURE.md
- Contributing: CONTRIBUTING.md
- Security: docs/reference/SECURITY.md
- Code of conduct: CODE_OF_CONDUCT.md
AGPL-3.0 — see LICENSE.