A blockchain-based digital wallet built on the Soroban smart contract platform (Stellar ecosystem), featuring social recovery, time-delayed recovery, multi-signature authorization, and emergency freeze capabilities.
- Social Recovery — Assign trusted guardians who can collectively authorize wallet recovery
- Time-Delayed Recovery — Recovery requests are subject to a configurable time delay, giving the owner a window to cancel fraudulent attempts
- Multi-Signature Support — Require M-of-N approvals for high-value transactions
- Emergency Freeze — Instantly freeze wallet activity in case of suspected compromise
- Guardian Registry — On-chain registry for managing guardian identities and thresholds
| Layer | Technology |
|---|---|
| Smart Contracts | Rust / Soroban SDK |
| Frontend | Next.js 14, TypeScript, Tailwind CSS, Zustand, React Query |
| Backend API | Node.js, Express, TypeScript, Zod, Winston |
| Blockchain | Stellar / Soroban (testnet & local) |
| Auth | JWT |
| Containerization | Docker / Docker Compose |
soroban-recovery-wallet/
├── contracts/ # Soroban smart contracts (Rust)
│ ├── recovery_wallet/
│ ├── guardian_registry/
│ ├── multisig/
│ └── test/
├── frontend/ # Next.js frontend application
│ └── src/
│ ├── app/ # App Router pages
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # SDK helpers
│ ├── store/ # Zustand state stores
│ └── types/ # TypeScript types
├── backend/ # Express REST API
│ └── src/
│ ├── routes/
│ ├── controllers/
│ ├── services/
│ ├── middleware/
│ └── utils/
├── scripts/ # Deployment & utility scripts
└── docs/ # Architecture & API documentation
- Rust +
wasm32-unknown-unknowntarget - Soroban CLI
>= 0.9 - Node.js
>= 18 - Docker + Docker Compose
- A Stellar testnet account (funded via Friendbot)
git clone https://github.com/your-org/soroban-recovery-wallet.git
cd soroban-recovery-wallet
cp .env.example .env
cp frontend/.env.local.example frontend/.env.localEdit .env and frontend/.env.local with your values.
docker-compose up -dchmod +x scripts/deploy.sh
./scripts/deploy.shcd frontend
npm install
npm run devcd backend
npm install
npm run devFrontend: http://localhost:3000
Backend API: http://localhost:4000
Soroban RPC: http://localhost:8000
# Add wasm target
rustup target add wasm32-unknown-unknown
# Build all contracts
cd contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to testnet
./scripts/deploy.sh --network testnetcd contracts
cargo testcd backend
npm testcd frontend
npm test- Owner assigns 3–5 guardians on-chain via the Guardian Registry contract
- If owner loses access, any guardian initiates a recovery request
- A configurable time delay (default: 48 hours) begins
- If M-of-N guardians approve within the window, recovery executes
- Owner can cancel the request at any time during the delay period
See docs/recovery-flow.md for the full walkthrough.
MIT