story-research-zapwall/docs/commission-system.md
Nicolas Cantu f7bd7faa73 fix: Correction erreurs TypeScript, nettoyage et réorganisation documentation
- Correction toutes erreurs TypeScript :
  - Variables non utilisées supprimées
  - Types optionnels corrigés (exactOptionalPropertyTypes)
  - Imports corrigés (PLATFORM_BITCOIN_ADDRESS depuis platformConfig)
  - Gestion correcte des propriétés optionnelles

- Suppression fichiers obsolètes :
  - code-cleanup-summary.md (redondant)
  - todo-implementation*.md (todos obsolètes)
  - corrections-completed.md, fallbacks-found.md (corrections faites)
  - implementation-summary.md (redondant)
  - documentation-plan.md (plan, pas documentation)

- Suppression scripts temporaires :
  - add-ssh-key.sh
  - add-ssh-key-plink.sh

- Réorganisation documentation dans docs/ :
  - architecture.md (nouveau)
  - commissions.md (nouveau)
  - implementation-summary.md
  - remaining-tasks.md
  - split-and-transfer.md
  - commission-system.md
  - commission-implementation.md
  - content-delivery-verification.md

Toutes erreurs TypeScript corrigées, documentation centralisée.
2025-12-27 21:25:19 +01:00

120 lines
3.5 KiB
Markdown

# 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