Decentralized Account Recovery for Casper Network
SentinelX enables trustless account recovery through threshold-based guardianship. Designate trusted friends as guardians who can collectively help you recover access if you lose your private key.
| frontend | https://sentinelx-3h81.onrender.com/ |
|---|---|
| backend | https://guardian-recovery-protocol.onrender.com |
- π‘οΈ Guardian-Based Recovery β Your trusted contacts act as recovery guardians
- π Threshold Signatures β Requires M-of-N guardian consensus (e.g., 2 of 3)
- β On-Chain Verification β All signatures verified by smart contract
- π Replay Protection β Nonce and timestamp validation
- π§ Email Notifications β Guardians receive approval requests via email
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND β
β Next.js 15 + React 19 + TailwindCSS β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Landing β β Setup β β Recovery β βDashboard β β Admin β β
β β Page β β Wizard β β Flow β β Panel β β Panel β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β HTTP/REST
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BACKEND β
β Node.js + Express + TypeScript β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββββ β
β β Recovery β β Session β β Account β β Email β β
β β Service β β Service β β Service β β Service β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββββ β
ββββββββββ¬βββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ¬βββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β SUPABASE β β CASPER NETWORK β β SMTP SERVER β
β (PostgreSQL) β β (Testnet) β β (Nodemailer) β
β β β β β β
β - users β β - Contracts β β - Notificationsβ
β - recoveries β β - Deploys β β - Approvals β
β - deploys β β - Signatures β β β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SMART CONTRACTS β
β Rust + Casper SDK β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β recovery_registry β β
β β (Guardian Management & Recovery Coordination) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββββββ β
β β add_key β β remove_key β β update_ β β key_rotation β β
β β .wasm β β .wasm β β thresholds β β .wasm β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β 1. SETUP ββββββΆβ 2. INITIATE ββββββΆβ 3. APPROVE β
β β β β β β
β User adds β β Guardian β β Guardians β
β guardians β β starts β β sign until β
β to account β β recovery β β threshold β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β
βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β 6. DONE! βββββββ 5. EXECUTE βββββββ 4. WAIT β
β β β β β β
β Account β β Key rotation β β 30-day β
β recovered β β on-chain β β safety β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 15, React 19, TypeScript | Web application |
| Styling | TailwindCSS 4, shadcn/ui, Radix UI | UI components |
| Backend | Node.js, Express, TypeScript | API server |
| Database | Supabase (PostgreSQL) | Data persistence |
| Blockchain | casper-js-sdk | Casper integration |
| Contracts | Rust, Casper SDK | On-chain logic |
| Nodemailer | Guardian notifications |
guardian-recovery-protocol/
βββ contracts/ # Rust smart contracts
β βββ recovery_registry/ # Main coordination contract
β βββ add_associated_key/ # Add key session WASM
β βββ remove_associated_key/ # Remove key session WASM
β βββ update_thresholds/ # Update thresholds WASM
β βββ wasm/ # Compiled WASM output
β
βββ backend/ # Express API server
β βββ src/
β β βββ services/ # Business logic
β β βββ routes/ # API endpoints
β β βββ config/ # Configuration
β βββ sql/ # Database migrations
β βββ wasm/ # Session WASMs for deploys
β
βββ frontend/ # Next.js application
βββ app/ # App router pages
β βββ setup/ # Guardian setup
β βββ recovery/ # Recovery initiation
β βββ dashboard/ # Guardian dashboard
β βββ admin/ # Contract deployment
βββ components/ # React components
βββ lib/ # Utilities
- Node.js 18+
- Rust (for contracts)
- Casper Wallet browser extension
- Supabase account
# Clone repository
git clone https://github.com/crypticsaiyan/guardian-recovery-protocol.git
cd guardian-recovery-protocol
# Build contracts
cd contracts
make prepare && make build
# Start backend (Terminal 1)
cd ../backend
npm install
cp .env.example .env # Configure your environment
npm run dev # Runs on http://localhost:3001
# Start frontend (Terminal 2)
cd ../frontend
npm install
npm run dev # Runs on http://localhost:3000Backend (backend/.env):
CASPER_NODE_URL=https://rpc.testnet.casperlabs.io/rpc
CASPER_CHAIN_NAME=casper-test
SUPABASE_URL=your-supabase-url
SUPABASE_SERVICE_ROLE_KEY=your-service-key
SMTP_HOST=smtp.gmail.com
SMTP_USER=your-email
SMTP_PASS=your-app-password
WASM_RECOVERY_KEY_ROTATION_PATH
WASM_RECOVERY_REGISTRY_PATH| Protection | Description |
|---|---|
| Account Isolation | Guardian keys are bound to specific accounts |
| Threshold Enforcement | Single guardian cannot recover alone |
| Time-Lock | 30-day delay before execution |
| Replay Prevention | Nonce and timestamp validation |
| On-Chain Verification | All signatures verified by smart contract |
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ on Casper Network



