Update — 27 mai 2026

4 nouvelles features
+ plan de test référral.

Hey @CryptoApe, gros update aujourd'hui. Tout est prêt sur diggr.bot pour que tu testes le système référral en profondeur. Voilà le récap de ce qui a changé + ce que tu dois essayer.

commit eb9d2c3 · all features live in production

Sommaire

  1. 01Les 4 nouvelles features
  2. 02Plan de test référral simple (L1)
  3. 03Plan de test MLM multi-tiers (L2/L3)
  4. 04Plan de test anti-cheat
  5. 05Plan de test notifications in-app
  6. 06Plan de test onboarding tour
  7. 07Plan de test page /referral
  8. 08Outils pratiques (cron, SQL)
  9. 09Setup cron-job.org (5 min)

1Les 4 nouvelles features livré

A — Onglet Settings dans /admin

🛡 B — Anti-cheat automatique

⚠️ À faire : setup le cron sur cron-job.org (gratuit, 5 min) — voir section 9 plus bas.

🎯 C — Onboarding tour première visite

🔔 D — Notifications in-app temps réel

Quand un user revient sur le site et qu'il a reçu des points (verified, referral, MLM, etc.) → toast en bas à droite.

TypeQuand
✓ Task verifiedUne de vos submissions vient d'être validée
🎁 Referral rewardUn nouveau filleul s'est qualifié (+50 pts)
🌳 Indirect referral (L1/L2/L3)Un filleul-de-filleul a gagné, vous touchez votre part MLM
⚙ Admin adjustmentSi admin ajoute/retire des points manuellement

Poll automatique toutes les 30s · auto-dismiss après 6s · max 5 toasts visibles · croix pour fermer manuellement.


2Test référral simple (L1) à tester

Setup : 2 personnes (A = toi @diggrbot, B = un ami avec un compte X différent)

1
A se connecte sur diggr.bot → va sur /referral ou clique l'avatar → "Copy referral link"
2
A envoie son lien https://diggr.bot/r/XXXXXXX à B
3
B ouvre le lien
→ vérifier que le cookie ref est posé : DevTools (F12) → Application → Cookies → tu dois voir ref=XXXXXXX
4
B scrolle, click "Connect X" → s'authentifie sur X
5
B "Connect wallet" → signe avec Phantom
6
B complète les 3 actions du tweet pinned (Retweet + Quote + Comment) en collant les vraies URLs
7
⏱️ Attendre que les submissions passent en status verified (auto via oEmbed)

Résultat attendu pour A


3Test MLM multi-tiers (L2/L3) à tester

Setup : 3-4 personnes (A → B → C → optionnellement D)

1
A copie son lien, l'envoie à B
2
B se logge, fait les tasks → A reçoit +50 + 10%
3
B copie maintenant SON lien depuis son menu, l'envoie à C
4
C se logge, fait les tasks :
  • B reçoit +50 (filleul direct) + 10% des points de C
  • A reçoit +5% des points de C (tier 2, indirect)
5
(Si vous êtes 4) C invite D, qui fait pareil :
  • C reçoit +50 + 10% de D
  • B reçoit +5% de D
  • A reçoit +2% de D (tier 3)

Vérifications pour A sur /referral

L1
Direct referrals · 10% + 50pts/qualified
B doit apparaître ici
L2
Indirect — Tier 2 · 5% of their points
C doit apparaître ici
L3
Indirect — Tier 3 · 2% of their points
D doit apparaître ici (si vous êtes 4)

4Test anti-cheat à tester

Test 1 — Autoréférral interdit

Essayer d'utiliser son propre lien référral sur son propre compte.

Résultat attendu

Le code refuse ou ignore (contrainte DB check referrer_id <> referee_id).

Test 2 — Double-référral

B clique sur le lien de A, puis sur celui de quelqu'un d'autre.

Résultat attendu

Seul le premier référral est enregistré (contrainte UNIQUE sur referee_id).

Test 3 — Tweet supprimé après validation

1
User fait un RT, soumet l'URL, est verified
2
User supprime le RT sur X
3
Attendre 6h (ou hit manuellement le cron — voir Outils)

Résultat attendu


5Test notifications in-app à tester

1
User A logué sur le site (laisse l'onglet ouvert)
2
Pendant ce temps un admin va sur /admin/users → ajuste manuellement +100 pts à A
3
Dans les 30 secondes : A devrait voir un toast ⚙ Admin adjustment +100 pts en bas à droite

Résultat attendu


6Test onboarding tour à tester

1
Ouvrir diggr.bot en navigation privée (Cmd+Shift+N) — ou effacer le localStorage
2
Le tour doit s'afficher après ~1.2s

Choses à tester


7Test page /referral complète à tester

Aller sur https://diggr.bot/referral et vérifier :


8Outils pratiques pour les tests

Hit le cron manuellement pendant les tests

Pour pas attendre 6h, tu peux lancer le cron à la demande :

curl -X POST "https://diggr.bot/api/cron/recheck-submissions?token=<TOKEN>"
ℹ️ Le token CRON est dans le vault partagé (1Password / Bitwarden) — demande-le à Morgan si tu ne l'as pas.

Voir les events DB en temps réel

Aller dans Supabase Studio → SQL Editor (lien dans le vault privé) et coller :

-- Voir tous les point_log events récents
select
  u.x_username,
  pl.delta,
  pl.balance_after,
  pl.reason,
  pl.created_at
from points_log pl
join users u on u.id = pl.user_id
order by pl.created_at desc
limit 20;

Tu devrais voir des reason du genre :

ReasonSignification
task:xxx ou submission:xxxUn user a complété une task
referral_reward+50 pts crédité (filleul qualifié)
mlm_t1:submission:xxx+10% indirect tier 1
mlm_t2:submission:xxx+5% indirect tier 2
mlm_t3:submission:xxx+2% indirect tier 3
recheck_clawback:xxxPoints retirés (anti-cheat tweet supprimé)
admin_adjust:reasonAjustement manuel via /admin

Voir l'arbre référral d'un user

-- L1 de @Diggrbot
select u.x_username, r.reward_credited, r.created_at
from referrals r
join users u on u.id = r.referee_id
where r.referrer_id = (select id from users where x_username = 'Diggrbot');

-- Vue globale MLM
select
  x_username,
  points,
  indirect_points,
  active_referrals,
  tier_2_referrals,
  tier_3_referrals,
  airdrop_multiplier
from users
where points > 0
order by points desc;

9Setup cron-job.org pour l'anti-cheat 5 min

Le cron anti-cheat existe mais doit être déclenché toutes les 6h. C'est gratuit et ça prend 5 minutes.

1
Aller sur https://cron-job.org (gratuit, illimité)
2
Créer un compte (gratuit, juste un email)
3
Cliquer "Create cronjob"
4
Remplir :
  • URL : https://diggr.bot/api/cron/recheck-submissions?token=<TOKEN_DANS_VAULT>
  • Method : POST
  • Schedule : Every 6 hours
5
Save. Done.
À partir de là, le système re-checke automatiquement les tweets supprimés toutes les 6h. Plus rien à faire.