Skip to main content

How It Works

Unipay provides privacy for Solana transactions through a graph-break primitive that separates the on-chain link between sender and recipient addresses.

Architecture

1

Client Layer

React-based web application. Runs entirely in the browser with no server-side state.
2

Routing Layer

Stateless HTTP services that provide ephemeral deposit addresses. Never holds user funds.
3

On-Chain Integration

Direct integration with Solana programs: SystemProgram, Token Program, and liquidity aggregators.

Execution Modes

Wallet Mode

Standard Solana transaction flow with local signing:
const transaction = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: wallet.publicKey,
    toPubkey: recipientAddress,
    lamports: amount
  })
);
Characteristics:
  • Direct on-chain transaction
  • Single signature required
  • Immediate execution

Private Mode

Privacy-enhanced flow with routing layer. Client requests ephemeral deposit address. User sends funds to ephemeral address. Routing layer detects deposit and initiates output. Recipient receives funds from routing layer’s address.

Privacy Model

Unipay provides graph-break privacy, not cryptographic anonymity. The routing layer can link inputs to outputs if subpoenaed.
Adversary TypeProtection Level
Passive chain analysis✅ Full
Competitor surveillance✅ Full
Routing layer subpoena❌ Linkable
Nation-state forensics❌ Not designed

Design Principles

  1. Non-custodial by Default - Browser signs everything
  2. Stateless Services - No user state on servers
  3. Disclosed Tradeoffs - Privacy model shown in-product
  4. Zero Config - Connect wallet and start
  5. Failure is Loud - Errors surface immediately