Architecture
High-Level Flow
┌─────────────┐
│ Agents │ (CLI, API clients, other services)
└──────┬──────┘
│
▼
┌─────────────────┐
│ NetAuth API │ (Express REST + optional CLI)
└──────┬──────────┘
│
▼
┌─────────────────┐
│ Privacy Layer │ (Payment records, visibility rules)
└──────┬──────────┘
│
▼
┌─────────────────┐
│ x402 Protocol │ (Privacy tokens, optional external service)
└──────┬──────────┘
│
▼
┌─────────────────┐
│ Solana Network │ (Transactions, balances)
└─────────────────┘Core Components
1. Agent Service
Registers agents and maintains agent records.
One agent ID per logical agent; optional existing Solana public key on registration.
2. Wallet Service
Creates a Solana keypair per agent (or links an existing key).
Encrypts private keys at rest, provides balance lookups and key material for signing (server-side only).
3. Privacy Service
Creates and stores payment records.
Assigns privacy tokens (via x402 when configured).
Ensures only sender and recipient can see a payment’s details.
Coordinates single and batch payment creation and processing.
4. x402 Service
Integrates with the x402 protocol for privacy tokens.
If no x402 endpoint is configured, uses a local fallback for token generation so the product still works.
5. Payment Service
Builds and signs Solana transfer transactions.
Submits transactions to the configured RPC and tracks confirmation.
6. Encryption Service
Encrypts/decrypts sensitive data (e.g. wallet private keys) using AES-256-GCM.
Required for any wallet creation or payment sending.
Payment Flow (Single Payment)
Client calls
POST /api/payments/send(or CLIpayment send).Privacy Service creates a payment record with status
PENDING.x402 Service (or local fallback) issues a privacy token for the payment.
Payment Service builds a Solana transfer, signs with the sender’s key, and sends the transaction.
On confirmation, payment status is set to
COMPLETEDand the transaction signature is stored.Only the sender and recipient can query this payment’s details (enforced by Privacy Service).
Data Storage
Current implementation uses in-memory storage (Maps).
For production, plan to replace with:
A database (e.g. PostgreSQL) for agents and payments.
An encrypted store for wallet data.
Optional cache (e.g. Redis) for sessions or rate limiting.
Last updated

