# Architecture technique **Auteur** : Équipe 4NK ## Vue d'ensemble Zapwall est une plateforme décentralisée basée sur le protocole Nostr pour la publication et la monétisation de contenu. Le système utilise Lightning Network pour les paiements et Bitcoin mainnet pour le sponsoring. ## Services principaux ### Nostr (`lib/nostr.ts`) - Gestion du pool de connexions aux relays - Publication et récupération d'événements - Gestion des profils utilisateurs - Création de zap requests ### Paiements (`lib/payment.ts`, `lib/paymentPolling.ts`) - Création d'invoices Lightning via Alby/WebLN - Vérification des paiements via zap receipts (NIP-57) - Polling pour confirmation des paiements - Envoi automatique du contenu privé après paiement ### Commissions (`lib/platformCommissions.ts`) - Configuration centralisée des commissions - Calcul des splits (auteur/plateforme) - Validation des montants ### Tracking (`lib/platformTracking.ts`, `lib/sponsoringTracking.ts`) - Publication d'événements de tracking sur Nostr - Suivi des livraisons de contenu - Suivi des paiements de sponsoring ### Intégrations externes - **mempool.space** (`lib/mempoolSpace.ts`) : Vérification des transactions Bitcoin - **Lightning addresses** (`lib/lightningAddress.ts`) : Récupération depuis profils Nostr ## Flux de paiement article 1. Lecteur clique sur "Unlock for 800 sats" 2. Création d'invoice Lightning (via Alby/WebLN) 3. Publication de zap request sur Nostr 4. Lecteur paie l'invoice 5. Polling pour vérifier le zap receipt 6. Envoi automatique du contenu privé (message chiffré NIP-04) 7. Tracking de la livraison avec commissions ## Flux de sponsoring 1. Utilisateur demande sponsoring (0.046 BTC) 2. Service calcule split (0.042/0.004 BTC) 3. Retourne deux adresses Bitcoin 4. Utilisateur crée transaction avec deux sorties 5. Vérification via mempool.space 6. Tracking sur Nostr ## Stockage - **IndexedDB** : Contenu privé chiffré (AES-GCM) - **localStorage** : Métadonnées d'articles, invoices - **Nostr** : Tous les contenus publics et événements de tracking ## Sécurité - Chiffrement end-to-end pour contenu privé (NIP-04) - Validation stricte des montants - Tracking complet sur Nostr pour audit - Pas de fallback implicite