Vérifier l’équité par vous-même
Tout ce que le site affirme sur le contrat peut être vérifié dans les données ouvertes du réseau. Ci-dessous, les vérifications, de la plus simple (deux minutes) à la plus poussée (compilation du code). Pour la plupart, aucune programmation n’est nécessaire.
Principe de la vérification
Un site peut être falsifié ou se tromper ; un enregistrement sur la blockchain, non. Vérifiez donc, non pas sur le site du projet, mais dans un explorateur de blocs : un site indépendant qui montre le contenu de la blockchain (Solscan, Solana Explorer, SolanaFM et équivalents). Ouvrez-en un par vous-même, jamais par des liens reçus dans des messages.
Pour les vérifications, il faut deux adresses : celle du programme (le contrat) et celle du jeton. La page « Sécurité » les affiche. Recoupez-les dans au moins deux autres sources indépendantes (dépôt, canaux officiels) : si les adresses divergent, on essaie de vous tromper.
Vérifications rapides (2–10 minutes)
| Quoi vérifier | Où regarder | Ce qui doit apparaître | Sinon |
|---|---|---|---|
| 1. Peut-on imprimer de nouveaux jetons ? | Page du jeton dans l’explorateur, champ Mint Authority | Vide (révoquée) | Le détenteur de l’adresse indiquée peut émettre autant de jetons qu’il veut et dévaloriser les vôtres. |
| 2. Peut-on geler les jetons ? | Même page, champ Freeze Authority | Vide | Le détenteur peut geler n’importe quel portefeuille, y compris le vôtre. |
| 3. Qui peut modifier le code ? | Page du programme, champ Upgrade Authority | Vide (code gelé) ou adresse d’un multisig avec délai sur les mises à jour | Une simple adresse unique signifie que son détenteur peut charger d’autres règles à tout moment. |
| 4. Offre totale du jeton | Page du jeton : Supply | Pas plus de 100 000 000 000, et elle ne fait que diminuer par le brûlage | Davantage signifie que l’émission a été augmentée. |
| 5. Le jeton correspond-il ? | L’adresse du jeton dans votre portefeuille comparée à la page « Sécurité » | Les adresses sont identiques caractère par caractère | Ce n’est pas le vrai FAIRDRUM. N’achetez pas et ne déposez pas. |
| 6. Y a-t-il assez de jetons dans le coffre ? | L’adresse du coffre sur la page « Sécurité », solde du jeton ; les montants des cagnottes sur la page « Économie » | Le solde du coffre n’est pas inférieur à la somme des cagnottes (plus les soldes de jeu des joueurs) | Le contrat doit toujours être couvert par les jetons. Un écart est un signal sérieux. |
Le tableau du haut de la page « Sécurité » lit les mêmes champs directement depuis le réseau et affiche ✔ ou ⚠, mais ne vous fiez pas qu’à lui : recoupez au moins une fois par vous-même.
Vérifier votre propre tour
Chaque tour laisse un enregistrement sur le réseau, et le résultat affiché à l’écran peut être recoupé avec lui.
Trouvez la transaction
Après un tour, le lien « Transaction » apparaît sous le bouton. Il ouvre l’enregistrement dans l’explorateur. Ou bien ouvrez l’historique de votre portefeuille dans l’explorateur et choisissez la transaction impliquant le programme FAIRDRUM.
Attendu : le statut Success et la liste des instructions.
Trouvez les deux paires d’appels
La première transaction contient un appel à Switchboard (demande d’aléa, commit) et un appel au programme FAIRDRUM
spin_commit(la mise). La seconde : un appel à Switchboard (révélation, reveal) etspin_settle(le calcul). Le nom varie légèrement selon les explorateurs (SpinCommit, spinCommit).Comparez l’ordre
La mise a été enregistrée avant la révélation du nombre : la première transaction a un numéro de bloc (Slot) inférieur à la seconde. Cela signifie que ni vous ni le projet ne connaissiez le résultat au moment de la mise.
Consultez le journal (Logs) de la seconde transaction
On y trouve l’événement
SpinSettledavec le nombre de tours, les prix, les touches au mini-jackpot, au jackpot et au super jackpot. Ce sont les mêmes chiffres que ceux affichés par la roue.Vérifiez le propriétaire de l’aléa
Le compte d’aléa indiqué dans la transaction doit appartenir au programme Switchboard. Le contrat rejette lui-même tout autre compte, mais il vaut la peine de s’en assurer : ouvrez le compte et regardez le champ Owner.
Vérifications poussées
Compiler le code et comparer le hash
Prenez dépôt du projet sur GitHub (le lien apparaîtra après la publication), compilez le programme en mode reproductible (anchor build --verifiable) et comparez le hash avec celui du réseau (solana-verify). Une correspondance signifie que c’est exactement ce code ouvert qui tourne sur le réseau.
Lire les constantes
Tous les nombres du jeu sont réunis dans un seul fichier, consts.rs : parts, chances, échelle des prix, frais, délais. Le site construit ses tableaux à partir de ce fichier, et il ne doit y avoir aucun écart entre le site et le contrat.
Lancer les tests
Le dépôt contient des tests des règles et des calculs (cargo test) et du client (npm test). Ils vérifient, par exemple, que la somme de tous les pools et soldes ne dépasse pas les jetons du coffre.
Décortiquer le choix du résultat
À partir des 32 octets d’aléa révélés, le contrat dérive des nombres via SHA-256. Pour la roue principale, ce sont des blocs SHA-256("FDRM-M" + aléa + numéro de bloc), dont on prend 4 octets (little-endian) par nombre, un pour chaque tour exécuté. Pour la roue dorée : SHA-256("FDRM-G" + aléa + numéro du tour exécuté). Le nombre est comparé à des seuils exprimés en fractions de 232 ; les seuils eux-mêmes dépendent du volume hebdomadaire et de la taille des cagnottes au moment du calcul, donc recalculer entièrement un ancien tour n’est possible qu’avec l’état du programme à ce slot. Les formules se trouvent dans math.rs et engine.rs.
Lire le journal sur une période
N’importe qui peut extraire du réseau tous les événements SpinSettled d’une période et calculer lui-même la fréquence de l’or et la taille des cagnottes. Comparez avec les « Chances ». Sur un petit nombre de tours, la dispersion est énorme : pour voir une chance de 1 %, il faut des milliers de tours.
Ce qui ne peut pas être vérifié
- L’honnêteté de l’oracle. L’aléa vient du réseau Switchboard. Le contrat vérifie que le nombre provient du bon compte et qu’il a été révélé après la mise, mais il ne peut pas vérifier que les nœuds de l’oracle ne se sont pas entendus entre eux. C’est une dépendance externe.
- L’absence d’erreurs dans le code. Les tests et le code ouvert renforcent la confiance, mais ne remplacent pas un audit indépendant. Tant que le lien vers un audit n’est pas indiqué, il n’y en a pas.
- L’avenir. Tant que l’autorité de mise à jour n’est pas révoquée, les règles peuvent changer avec une nouvelle version. Surveillez les transactions de mise à jour du programme.
- Ce que fait l’administrateur hors du contrat. Les ventes de ses jetons, le marketing, les décisions de listing ne sont pas contrôlés par le contrat. Les paiements du fonds de promotion sont publics, mais le contrat ne vérifie pas « à quoi » ils servent.