Zendvo is an expense, savings, and gifting platform that transforms digital money transfers into memorable experiences. It enables users to send cash gifts that remain completely hidden and locked until a predetermined date and time, save toward a specific item or goal, and track daily expenses accurately.
- Time-Locked Gifting: Funds are locked in Soroban smart contracts and only released after a specified date and time, enforced entirely on-chain.
- Stablecoin Preservation: Uses USDC on Stellar to keep gift value stable from creation to reveal, eliminating volatility risk.
- Yield on Savings: Idle savings earn yield through Stellar's AMM liquidity pools or Blend Protocol lending, so balances grow while waiting.
- Bank Integration: Seamless on/off-ramps connecting stablecoin liquidity to local bank accounts, with Paystack powering Nigerian NGN payouts.
- Surprise Experience: UI/UX built around anticipation, revealing gifts only at the exact unlock moment.
- Low-Cost Global Transfers: Stellar's 3–5 second finality and near-zero fees make cross-border gifting practical at any amount.
- Expense Tracking: Accurate daily expense calculation with categorization and spending summaries.
- Framework: Next.js 16 (App Router, React 19)
- Styling: Tailwind CSS 4, Framer Motion
- Language: TypeScript 5
- Server Framework: Node.js with Express.js
- Database: PostgreSQL with Drizzle ORM
- Language: TypeScript 5
- Task Scheduling: Integrated background cleanup cron jobs
- Integrations: Stripe (Payments), Paystack (NGN bank payouts), Nodemailer (Emails)
- Smart Contracts: Stellar Soroban (Rust)
- SDKs: Stellar SDK, Soroban SDK
Zendvo uses the Stellar ecosystem for its core financial primitives:
| Feature | Stellar Primitive |
|---|---|
| Time-locked gifts | Soroban smart contracts with time_lock logic |
| Stable transfers | USDC (Circle) on Stellar |
| Savings yield | Stellar AMM pools / Blend Protocol |
| Low-fee settlement | Stellar Consensus Protocol (SCP) |
| On/off-ramp | Anchor-compatible deposit/withdrawal |
Note
Stellar does not have native proof-of-stake staking. Yield on savings is earned through liquidity provision in Stellar's built-in AMM or via the Blend Protocol lending market — both non-custodial and on-chain.
This project is set up as an NPM Workspaces Monorepo. Dependencies are hoisted and both servers can be run concurrently.
-
Clone and prepare:
git clone https://github.com/codeze-us/zendvo.git cd zendvo # Copy and configure environment variables in the backend folder cp backend/.env.example backend/.env
-
Install dependencies (installs and hoists packages for both workspaces):
npm install
-
Database setup (runs Drizzle Kit from the backend workspace):
npm run db:push
-
Run in development (starts Next.js on port
3000and Express on port5000concurrently):npm run dev
web/ # Frontend Workspace (Next.js client)
├── src/
│ ├── app/ # UI Pages and layouts (pure client routes)
│ ├── components/ # Modular UI React components
│ ├── context/ # Client state & Auth contexts
│ ├── hooks/ # Client React hooks
│ ├── services/ # api.ts fetch client configuration
│ └── lib/ # Client-only utility functions
│
backend/ # Backend Workspace (Express, DB, Jobs)
├── src/
│ ├── api/ # API endpoints (migrated Next route handlers)
│ ├── server/ # Business services, cron jobs & audit logging
│ ├── lib/ # Drizzle DB setup, validations, token signing
│ ├── adapter.ts # Express-to-Next standard Request/Response adapter
│ ├── routes.ts # Express routes mapping
│ └── server.ts # Express server entry point
├── migrations/ # Raw SQL database migrations
├── drizzle/ # Drizzle Kit schema metadata
└── __tests__/ # Centralized test suites (Jest/ts-jest)
Send a cash gift weeks in advance that only unlocks at exactly 12:00 AM on the recipient's birthday.
Lock funds until a graduation date, ensuring the gift lands at the right moment.
Send USDC from anywhere in the world to Nigerian recipients with local bank payout and time-locked reveal logic.
Set a savings target for an item or date, earn yield while saving, and withdraw when ready.
We welcome contributions. See CONTRIBUTING.md for guidelines.
MIT — see LICENSE.
- Issues: GitHub Issues
- Website: www.zendvo.com
Emrys02 GitHub |
codeZe-us GitHub |
Decentralizing the art of surprise on Stellar

