Aller au contenu
Projet vitrineBlockchain & Web3
  • 223 tests
  • couverture 100 %
  • analysé par Slither

Gold-Backed Token (RWA)

Démo d’actif du monde réel : 1 sGOLD = 1 gramme d’or en dépôt, émission conditionnée à la preuve de réserve

ERC-20AccessControlProof of reserveFoundry

De quoi s’agit-il

GoldBackedToken fait de l’adossement 1:1 une condition préalable plutôt qu’une promesse : mint(to, amount) n’aboutit que si totalSupply + amount ≤ reserve(). La réserve est lue depuis un flux de preuve de réserve (proof of reserve) dont l’interface est identique à l’AggregatorV3 de Chainlink ; sa fraîcheur est validée et sa valeur normalisée sur 18 décimales.

Les détenteurs demandent le remboursement en brûlant leurs tokens avec une référence off-chain ; le dépositaire surveille les événements de remboursement et livre le métal ou règle en espèces. Il s’agit d’une démo : sGOLD n’est pas adossé à de l’or réel, n’a aucune valeur monétaire et n’est pas proposé à la vente. Elle s’appuie sur la connaissance métier acquise par notre équipe en construisant une plateforme pour un négociant en métaux précieux.

Le problème métier

Les matières premières tokenisées et les stablecoins reposent sur une promesse : chaque token est adossé à un actif. Quand cette promesse n’est vérifiée que par des attestations ponctuelles, un émetteur peut émettre plus qu’il ne détient, et personne ne voit la sous-collatéralisation avant qu’il ne soit trop tard.

Comment ça marche

  1. 1

    Le dépositaire (ou un flux de preuve de réserve Chainlink) déclare le nombre de grammes d’or détenus.

  2. 2

    Le rôle minter émet des tokens pour un client après paiement, uniquement si la nouvelle offre reste dans la limite de la réserve.

  3. 3

    Les tokens s’échangent librement en tant qu’ERC-20, avec le permit EIP-2612 pour des approbations sans gas.

  4. 4

    Un détenteur obtient le remboursement en brûlant ses tokens avec une référence ; le dépositaire règle off-chain.

  5. 5

    En cas d’incident, le rôle pauser suspend tous les transferts, émissions et remboursements.

Mesures de sécurité

  • L’émission fait un revert avec InsufficientReserve si l’offre venait à dépasser la réserve
  • Validation de l’oracle : les données non positives, manquantes, futures ou périmées sont rejetées
  • Fenêtre de péremption bornée (de 1 seconde à 7 jours) ; le contrôle ne peut pas être désactivé
  • Normalisation des décimales, quelle que soit la précision du flux
  • AccessControl par rôles
  • Invariant vérifié par fuzzing : totalSupply ≤ reserve

Fonctionnalités

  • 1 token = 1 gramme d’or
  • Émission contrôlée par la réserve
  • Flux de réserve compatible Chainlink AggregatorV3
  • Remboursement par burn avec référence
  • Rôles admin, minter et pauser séparés
  • Coupe-circuit par mise en pause

Cas d’usage typiques

  • Métaux précieux, matières premières et récépissés d’entrepôt tokenisés
  • Stablecoins dont la réserve est imposée par le code
  • Autres actifs du monde réel disposant d’un registre off-chain vérifiable

Limites connues

Démo uniquement : un flux de réserve simulé (mock) tient lieu d’oracle réel. En production, il faudrait un véritable flux de preuve de réserve, une administration par multisig + timelock et, lorsque c’est requis, des restrictions de transfert (p. ex. au titre de MiCA).

Autres contrats vitrines

Vitrine

Milestone Escrow

Le client bloque d’emblée la totalité du budget, réparti en jalons. Les fonds ne bougent qu’en cas de libération, de décision de l’arbitre ou d’annulation.

Solidity 0.8.28OpenZeppelin v5ETH / ERC-20

223 tests · couverture 100 % · analysé par Slither

Vitrine

Token + Vesting + Staking

Un ERC-20 plafonné avec approbations sans gas, des calendriers de vesting avec cliff pour l’équipe et les investisseurs, et des récompenses de staking sur le modèle de Synthetix.

ERC-20EIP-2612OpenZeppelin v5

223 tests · couverture 100 % · analysé par Slither

Vitrine

SigmaNFT Collection

Un lancement de NFT équitable : phases allowlist et publique, limites par wallet, offre maximale immuable, royalties ERC-2981 et reveal différé.

ERC-721ERC-2981Merkle proofs

223 tests · couverture 100 % · analysé par Slither

Standards : Solidity 0.8.x, OpenZeppelin, tests Foundry avec fuzzing, analyse statique Slither, code source vérifié. 223 tests · couverture 100 % · analysé par Slither.

Vous avez un projet en tête ?

Décrivez votre projet en quelques lignes. Un ingénieur senior vous répond sous 24 heures les jours ouvrés ; suivent un avis honnête, un périmètre clair et une proposition à prix fixe ou par jalons, en général en quelques jours ouvrés.

Vous préférez d’abord écrire ? Écrivez-nous

Vous échangez directement avec Ing. Ismet Mesic, Tech lead.