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

3.5 KiB

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