ZingPay Technical Protocol
Advanced Open Source
Welcome to the internal mechanics of ZingPay.
ZingPay is an open-source, Solana-based protocol designed to bridge the gap between Web3 infrastructure and Web2 user experiences. By mapping Program Derived Addresses (PDAs) to hashed E.164 phone numbers, we enable frictionless, non-custodial SOL transfers without requiring receivers to have pre-existing wallets.
Our goal is to build a payment layer that feels as fast and intuitive as traditional UPI or mobile banking, while retaining the trustless, decentralized nature of the Solana blockchain.
Protocol Overview
Smart Contract
Anchor-based program managing registry accounts and escrow PDAs on Solana Devnet.
Privacy Layer
SHA-256 hashing via Web Crypto API. Phone numbers never touch the blockchain in plaintext.
PDA Architecture
Deterministic address derivation using hashed phone numbers as seeds for registry and escrow accounts.
Walletless Flow
Ephemeral keypair generation and non-custodial export for Web2 user onboarding.
Core Modules
| Module | File | Purpose |
|---|---|---|
| Phone Normalization | phone.ts | Parses raw input to E.164 format via libphonenumber-js |
| Hashing | hash.ts | SHA-256 hashing of E.164 strings using Web Crypto API |
| PDA Derivation | program.ts | Derives Registry and Escrow PDAs from phone hashes |
| Walletless Onboarding | walletless.ts | Generates ephemeral keypairs and handles key exports |
| Smart Contract | lib.rs | Anchor program with register, send, and claim instructions |
Quick Reference
Program ID: 8ik9hQSoHoEnnzDz2ifBjjNK8PBEAQwgcgJpuRYsgRMs
Network: Solana Devnet
Framework: Anchor v0.32.1 (Rust edition 2021)
Dive into the detailed specs using the sidebar navigation.