Aller au contenu
TrustRate

Comment un avis gagne son poids

Les règles publiques derrière chaque score TrustRate.

La vie d'un avis

  1. 01

    Travailler ensemble

    Une prime, un jalon ou une facture est payé on-chain.

  2. 02

    Écrire

    Une note, des étiquettes et un commentaire, rattachés à ce travail.

  3. 03

    Signer

    Le portefeuille de l'évaluateur signe l'avis.

  4. 04

    Sceller

    Inscrit dans un bloc. Ni modification, ni suppression.

  5. 05

    Compter

    Le score bouge selon le poids de l'avis.

Ce qui donne du poids à un avis

Poids = interaction × historique. Un avis masqué ne pèse rien.

FacteurQuandValeur
InteractionRattaché à une vraie interaction on-chain× 1,0
InteractionAucune interaction liée× 0,4
HistoriqueL'évaluateur a 2 interactions vérifiées ou plus× 1,0
HistoriqueNouveau portefeuille× 0,6

Le score

score = (Σ poids × étoiles + 2 × 3,0) ÷ (Σ poids + 2)

Le « + 2 × 3,0 » vaut deux avis moyens : un seul mot gentil ne suffit pas pour atteindre 5,0.

Exemple détaillé

  • 5 étoiles, vérifié, évaluateur reconnu : 1,0
  • 4 étoiles, vérifié, évaluateur reconnu : 1,0
  • 5 étoiles d'un second portefeuille tout neuf, sans interaction : 0,24

(5 + 4 + 1,2 + 6) ÷ (2,24 + 2) = 3,8. Moyenne simple : 4,7.

Confiance

Débutant sous un poids total de 3, En construction sous 7, Solide à partir de 7.

Quand la communauté intervient

Tout le monde peut signaler. Cinq modérateurs élus tranchent au grand jour.

  1. 01

    Signaler

    Spam, harcèlement, hors sujet ou conflit d'intérêts.

  2. 02

    Dossier

    L'avis reste visible en attendant.

  3. 03

    Voter

    Trois votes concordants tranchent.

  4. 04

    Décision

    Un avis masqué ne compte plus, mais reste on-chain.

Réponses, votes et ton

La personne évaluée peut répondre une fois. Les votes « utile » classent les avis, et une vérification du ton signale les mots qui contredisent les étoiles. Ni l'un ni l'autre ne change le score.

Pour les développeurs

La couche de données de la démo (src/lib/demo) reproduit cette interface : wagmi/viem et un indexeur peuvent la remplacer sans toucher à l'interface.

Voir l'interface du contrat
interface ITrustRate {
  event ReviewSealed(
    uint256 indexed id,
    address indexed reviewer,
    address indexed subject,
    uint8 rating,          // 1–5
    bytes32 interaction,   // 0x0 when unverified
    string uri             // comment + tags
  );
  event ReplySealed(uint256 indexed reviewId, string uri);
  event Flagged(uint256 indexed reviewId, uint8 reason);
  event ModVote(uint256 indexed reviewId, address moderator, bool hide);
  event Resolved(uint256 indexed reviewId, bool hidden);

  function review(address subject, uint8 rating, bytes32 interaction, string calldata uri) external returns (uint256);
  function reply(uint256 reviewId, string calldata uri) external;
  function flag(uint256 reviewId, uint8 reason) external;
  function vote(uint256 reviewId, bool hide) external; // moderators only
}
  • Un profil est une vue sur les événements d'avis indexés.
  • Les votes « utile » sont des messages EIP-712, hors chaîne.
  • Masquer pose un indicateur. Rien n'est supprimé.

Voyez les règles à l'œuvre

Lancer la démo