A mobile-first Stellar Testnet wallet ecosystem
Stellar PocketPay is an open-source, mobile-first wallet ecosystem built on the Stellar Testnet. It is designed to demonstrate real-world blockchain development patterns while remaining approachable for developers of all experience levels.
The project spans three repositories that work together to provide a complete wallet experience β from a polished React Native mobile app, to a Soroban smart contract for savings vaults, to a reusable TypeScript SDK that ties everything together.
Note: This project runs on Stellar Testnet and is intended for educational and demonstration purposes. Do not use it with real funds.
The Stellar PocketPay ecosystem is organized as a multi-repo project:
| Repository | Description | Tech Stack |
|---|---|---|
stellar-pocketpay-wallet |
Mobile wallet app with full Stellar Testnet integration | React Native, Expo, TypeScript |
stellar-pocketpay-vault |
Soroban savings vault smart contract | Rust, Soroban SDK |
stellar-pocketpay-sdk |
Reusable TypeScript SDK for Stellar & Soroban interactions | TypeScript, Stellar SDK |
stellar-pocketpay-docs |
Central documentation (this repo) | Markdown |
stellar-pocketpay/
βββ stellar-pocketpay-wallet/ # React Native mobile app
β βββ src/
β β βββ screens/ # UI screens (Home, Send, Receive, Vault, etc.)
β β βββ services/ # Stellar & Soroban service layers
β β βββ components/ # Reusable UI components
β β βββ navigation/ # App navigation (React Navigation)
β β βββ store/ # State management (Zustand)
β β βββ theme/ # Design tokens & theming
β β βββ utils/ # Helpers & constants
β βββ app.json
β βββ package.json
β
βββ stellar-pocketpay-vault/ # Soroban smart contract
β βββ contracts/
β β βββ savings-vault/
β β βββ src/
β β βββ lib.rs # Contract entry point
β β βββ vault.rs # Core vault logic
β β βββ types.rs # Data types & enums
β β βββ errors.rs # Custom error codes
β β βββ events.rs # Contract events
β β βββ storage.rs # Storage helpers
β β βββ test.rs # Unit tests
β βββ Cargo.toml
β
βββ stellar-pocketpay-sdk/ # TypeScript SDK
β βββ src/
β β βββ wallet/ # Wallet creation & management
β β βββ transactions/ # XLM payment operations
β β βββ vault/ # Soroban vault interactions
β β βββ types/ # TypeScript type definitions
β β βββ utils/ # Utility functions
β β βββ index.ts # Public API exports
β βββ tests/ # Test suites
β βββ package.json
β
βββ stellar-pocketpay-docs/ # Documentation (this repo)
βββ README.md
βββ ARCHITECTURE.md
βββ SETUP.md
βββ CONTRIBUTING.md
βββ CODE_OF_CONDUCT.md
βββ ROADMAP.md
βββ SECURITY.md
βββ ISSUES.md
- Wallet Management β Create, import, and securely store Stellar keypairs
- Send & Receive XLM β Full payment flows with QR code support
- Transaction History β Paginated, real-time transaction feed
- Contact Book β Save and manage frequently used addresses
- Savings Vault β Deposit, withdraw, and time-lock funds via Soroban
- Testnet Funding β One-tap Friendbot integration for test XLM
- Deposits & Withdrawals β Secure fund management on-chain
- Time Locks β Lock funds for a specified duration
- Emergency Withdrawal β Owner-only emergency access with penalties
- Event Logging β Full audit trail via Soroban contract events
- Wallet Utilities β Generate keypairs, check balances, fund from Friendbot
- Payment Operations β Build, sign, and submit XLM transactions
- Vault Client β Typed interface for all Soroban vault operations
- Fully Typed β Comprehensive TypeScript definitions for all APIs
Each repository has its own detailed setup guide. Here's the fastest way to get started:
# 1. Clone all repos
git clone https://github.com/Stellar-PocketPay/stellar-pocketpay-wallet.git
git clone https://github.com/Stellar-PocketPay/stellar-pocketpay-vault.git
git clone https://github.com/Stellar-PocketPay/stellar-pocketpay-sdk.git
git clone https://github.com/Stellar-PocketPay/stellar-pocketpay-docs.git
# 2. Set up the SDK
cd stellar-pocketpay-sdk
npm install
npm run build
# 3. Set up the wallet app
cd ../stellar-pocketpay-wallet
npm install
npx expo start
# 4. Set up the smart contract (requires Rust & Soroban CLI)
cd ../stellar-pocketpay-vault
cargo build
cargo testFor detailed setup instructions, see SETUP.md.
| Document | Description |
|---|---|
| Architecture | System design, data flow, and component relationships |
| Setup Guide | Step-by-step setup for each repository |
| Contributing | How to contribute, branch naming, commit conventions |
| Code of Conduct | Community standards and expectations |
| Roadmap | Planned features and milestones |
| Security | Security practices and vulnerability reporting |
| Issue Guide | Issue labels, templates, and good first issues |
| Layer | Technology |
|---|---|
| Mobile App | React Native, Expo, TypeScript |
| State Management | Zustand |
| Navigation | React Navigation |
| Secure Storage | expo-secure-store |
| Smart Contract | Rust, Soroban SDK |
| SDK | TypeScript, @stellar/stellar-sdk |
| Network | Stellar Testnet / Soroban RPC |
We welcome contributions from developers of all experience levels! Whether you're fixing a typo, adding a feature, or improving documentation β every contribution matters.
- Read our Contributing Guide
- Check the Issue Guide for beginner-friendly tasks
- Follow our Code of Conduct
All repositories in the Stellar PocketPay ecosystem are licensed under the MIT License.
MIT License
Copyright (c) 2026 Stellar PocketPay Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Built with π on Stellar
