story-research-zapwall/features/commission-system.md
Nicolas Cantu 90ff8282f1 feat: Implémentation système de commissions systématique et incontournable
- Création lib/platformCommissions.ts : configuration centralisée des commissions
  - Articles : 800 sats (700 auteur, 100 plateforme)
  - Avis : 70 sats (49 lecteur, 21 plateforme)
  - Sponsoring : 0.046 BTC (0.042 auteur, 0.004 plateforme)

- Validation des montants à chaque étape :
  - Publication : vérification du montant avant publication
  - Paiement : vérification du montant avant acceptation
  - Erreurs explicites si montant incorrect

- Tracking des commissions sur Nostr :
  - Tags author_amount et platform_commission dans événements
  - Interface ContentDeliveryTracking étendue
  - Traçabilité complète pour audit

- Logs structurés avec informations de commission
- Documentation complète du système

Les commissions sont maintenant systématiques, validées et traçables.
2025-12-27 21:11:09 +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