# Système de commissions - Implémentation **Date** : Décembre 2024 **Auteur** : Équipe 4NK ## Objectif Implémenter un système de commissions systématique et incontournable pour garantir que la plateforme reçoit toujours sa commission sur tous les paiements. ## Commissions configurées ### Articles - **Total** : 800 sats - **Auteur** : 700 sats - **Plateforme** : 100 sats ### Avis (rémunération) - **Total** : 70 sats - **Lecteur** : 49 sats - **Plateforme** : 21 sats ### Sponsoring - **Total** : 0.046 BTC (4,600,000 sats) - **Auteur** : 0.042 BTC (4,200,000 sats) - **Plateforme** : 0.004 BTC (400,000 sats) ## Implémentation ### 1. Configuration centralisée **Fichier** : `lib/platformCommissions.ts` - Définit toutes les commissions de manière centralisée - Fonctions de calcul et vérification des splits - Validation des montants ### 2. Validation des montants **Fichiers modifiés** : - `lib/articleInvoice.ts` : Vérifie que le montant est 800 sats lors de la création - `lib/articlePublisher.ts` : Vérifie le montant avant publication - `lib/payment.ts` : Vérifie le montant avant paiement **Garanties** : - Impossible de publier un article avec un montant incorrect - Impossible de payer un article avec un montant incorrect - Erreurs explicites si le montant ne correspond pas ### 3. Tracking des commissions **Fichier** : `lib/platformTracking.ts` - Enregistre les commissions dans les événements de tracking - Tags `author_amount` et `platform_commission` dans les événements Nostr - Permet à la plateforme de vérifier toutes les commissions ### 4. Logs et traçabilité **Fichier** : `lib/paymentPolling.ts` - Logs détaillés avec montants de commission - Vérification que le split est correct - Alertes si le montant ne correspond pas ## Garanties d'incontournabilité ### 1. Validation à la publication - L'auteur ne peut pas publier avec un montant incorrect - Le système rejette automatiquement les montants invalides ### 2. Validation au paiement - Le lecteur ne peut pas payer un montant incorrect - Le système vérifie le montant avant d'accepter le paiement ### 3. Tracking systématique - Tous les paiements sont enregistrés avec les commissions - La plateforme peut vérifier tous les paiements via Nostr ### 4. Logs structurés - Tous les paiements génèrent des logs avec les commissions - Facilite l'audit et la vérification ## Limitations actuelles ### Split automatique Lightning **Problème** : WebLN ne supporte pas BOLT12 avec split automatique. **Solution actuelle** : - L'invoice est créée pour le montant total (800 sats) - La plateforme reçoit le montant total - La plateforme doit ensuite transférer la part de l'auteur (700 sats) **Solution future** : - Utiliser un nœud Lightning de la plateforme avec split automatique - Utiliser un service de split Lightning (LNURL-pay avec split) - Implémenter un système de transfert automatique après paiement ### Sponsoring **Statut** : À implémenter - Le sponsoring utilise Bitcoin mainnet - Nécessite un système de split mainnet - Plus complexe que Lightning ### Avis **Statut** : À implémenter - Même problème que les articles (split Lightning) - Nécessite le même système de split ## Prochaines étapes 1. ✅ Système de commissions configuré 2. ✅ Validation des montants 3. ✅ Tracking des commissions 4. ⏳ Implémenter split automatique Lightning (nécessite nœud Lightning) 5. ⏳ Implémenter split pour sponsoring 6. ⏳ Implémenter split pour avis