Passer au contenu principal

Qu'est-ce que l'ERC-3643 ?

Mis à jour le
21 novembre 2025

10 min de lecture

Aperçu

ERC-3643 est une norme Ethereum relative aux jetons « à accès restreint », c'est-à-dire des jetons qui ne peuvent être détenus et transférés que par des entités respectant des règles de conformité prédéfinies, telles que les exigences KYC/AML, les critères d'éligibilité des investisseurs et les exigences juridictionnelles. Elle est conçue pour les actifs réglementés, pour lesquels il est indispensable de savoir qui détient l'actif et si cette personne est autorisée à le détenir ou à le négocier.

Initialement connu sous le nom de T-REX (Token for Regulated EXchanges) et lancé par Tokeny, il est désormais officialisé sous le nom de ERC-3643 et régi par l’Association ERC-3643, qui se consacre à la normalisation de la tokenisation autorisée des actifs du monde réel (RWA).

Concrètement, ERC-3643 est un ensemble de contrats intelligents qui, ensemble, mettent en œuvre :


  • Identité et revendications sur la chaîne (via ONCHAINID)
  • Registres d'identité pour les titulaires éligibles
  • Règles de conformité modulaires
  • Un contrat de jeton qui reste compatible avec la norme ERC-20 tout en garantissant la conformité au moment du transfert

Étant donné que la norme ERC-3643 intègre directement les règles d'identité et de conformité dans la norme relative aux jetons, elle constitue un excellent choix pour la tokenisation d'actifs réels (RWA) tels que les titres, les biens immobiliers, les fonds et d'autres instruments réglementés.

Ce que vous ferez


  • Comprendre quel problème l'ERC-3643 permet de résoudre par rapport à l'ERC-20 standard
  • Découvrir l'architecture générale (contrats principaux, registres et rôles)
  • Découvrez comment l'identité et la conformité sont garanties sur la blockchain
  • Expliquez le fonctionnement des transferts dans un système ERC-3643
  • Découvrez une vue d'ensemble du déploiement, des rôles et des cas d'utilisation courants de la RWA

Ce dont vous aurez besoin


  • Connaissances de base en Solidity et ERC-20
  • Compréhension de l’ EVM
  • Connaissances approfondies des concepts liés au KYC/AML et à la réglementation
  • Sensibilisation à EIP-173 (propriété des contrats) et des modèles de contrôle d'accès basé sur les rôles
avertissement

Les exemples de code figurant dans ce guide n'ont pas fait l'objet d'un audit et sont fournis uniquement à des fins de compréhension conceptuelle. Ne les utilisez pas en production sans les avoir préalablement examinés de manière approfondie, testés et soumis à des audits de sécurité indépendants.

Le problème que résout la norme ERC-3643

Avant d'entrer dans le vif du sujet, mettons les choses en perspective. Un jeton ERC-20 standard est accessible à tous sans autorisation préalable. N'importe qui peut l'envoyer, n'importe qui peut le recevoir, et n'importe quelle adresse peut le détenir. Il s'agit d'une caractéristique propre à des actifs tels que DAI ou UNI.

Cependant, lorsqu'il s'agit d'actifs du monde réel, tels que des titres tokenisés (actions d'une société) ou des biens immobiliers fractionnés, cela pose problème. Les réglementations en vigueur exigent de savoir qui détient l'actif et de restreindre les transferts en fonction :


  • Identité: Le titulaire a-t-il passé avec succès la procédure KYC ?
  • Compétence: Le destinataire se trouve-t-il dans un pays soumis à des sanctions ?
  • Agrément: Le titulaire est-il un « investisseur agréé » autorisé à acheter ce titre ?
  • Périodes de blocage: L'actif est-il soumis à une période de « blocage » pendant laquelle il ne peut être vendu ?

L'ERC-3643, initialement connu sous le nom de T-REX (Token for Regulated EXchanges), a été conçu pour intégrer ces règles dans la blockchain. Il s'agit d'un ensemble de contrats intelligents qui permet à un jeton compatible ERC-20 de « respecter les exigences réglementaires ».

Exigences standard

D'une manière générale, une implémentation de la norme ERC-3643 devrait offrir :

  • Compatibilité et surfaces

    • Rester compatible avec la norme ERC-20
    • Mettre en place un contrôle préalable standard pour les virements (canTransfer)
    • Prise en charge des opérations par lots et des fonctions administratives nécessaires à la gestion des flux réglementés
  • Identité et conformité

    • Intégrer un système d'identité sur la blockchain (par exemple, ONCHAINID)
    • Utiliser une couche de conformité lors des opérations de transfert, d'émission et de destruction
  • Commandes et fonctionnement

    • Prise en charge de la mise en pause et du gel (gel global, au niveau des adresses et partiel)
    • Utiliser le système de propriété défini par l'EIP-173 ainsi que les rôles d'agent pour les actions sensibles (transferts forcés, récupération, émission/destruction)

Architecture ERC-3643

ERC-3643 est délibérément modulaire. Au lieu de tout regrouper dans un seul contrat de jeton monolithique, il répartit les responsabilités entre plusieurs contrats.

En résumé, les éléments essentiels sont les suivants :

ComposantRésumé
ONCHAINIDUn contrat d'identité distinct (basé sur les normes ERC-734/735) qui contient des attestations vérifiables concernant un utilisateur, émises par des émetteurs de confiance.
Registre des émetteurs de confianceUne liste d'adresses (par exemple, un prestataire de services KYC) jugées fiables pour ajouter des informations relatives à l'identité d'un utilisateur
Registre des thèmes de réclamationListe des types de demandes requis (par exemple : validation KYC, investisseur accrédité).
Registre d'identitéAssocie les portefeuilles à un ONCHAINID et à un pays, et affiche les informations de vérification telles que isVerified.
Contrat de conformitéDéfinit les règles relatives aux offres et aux transferts, qui sont consultées avant et après les transferts.
Jeton autorisé (T-REX)Le jeton compatible ERC-20. Il contient des références aux contrats « Identity Registry » et « Compliance » et les consulte avant tout transfert.

ONCHAINID

ONCHAINID est un contrat d'identité générique qui enregistre des clés et des déclarations vérifiables.

Voici quelques exemples de revendications :


  • L'adresse X a passé avec succès la vérification d'identité (KYC) auprès du prestataire Y
  • Cet investisseur est agréé dans la juridiction Z

Ces déclarations sont émises par des émetteurs de confiance (tels que des prestataires de services KYC ou des établissements réglementés). Le contrat ne stocke pas directement d'informations personnelles identifiables (PII) ; il stocke des références et des hachages afin de préserver la confidentialité.

Plusieurs portefeuilles peuvent être associés à une même identité sous-jacente ; dans le code, cette identité est généralement désignée par Identité. ONCHAINID fait office de référence pour les faits pertinents en matière de conformité.

Registre des émetteurs de confiance

Le registre des émetteurs de confiance recense les émetteurs de revendications jugés fiables pour un jeton donné, ainsi que les thèmes de revendication que chaque émetteur est autorisé à signer.

Par exemple, vous pourriez faire confiance à :


  • Un prestataire spécialisé dans la vérification d'identité (KYC) pour un KYC_VALIDÉ sujet.
  • Une entité soumise à réglementation pour INVESTISSEUR AGRÉÉ.

Seules les déclarations de ces émetteurs sont considérées comme valides aux fins des contrôles de conformité de ce jeton.

Registre des thèmes de réclamation

Le registre des thèmes de revendication définit les types de revendications qui sont pertinents pour la détention du jeton, tels que :


  • KYC_VALIDÉ
  • INVESTISSEUR AGRÉÉ
  • N'EST PAS DANS UN PAYS SOUMIS À DES RESTRICTIONS
  • N'EST PAS SUR LA LISTE DES SANCTIONS

En collaboration avec le Registre des émetteurs de confiance, cela définit quelles sont les déclarations obligatoires et qui est habilité à les délivrer.

Registre d'identité

Le registre d'identité joue le rôle de gardien pour les détenteurs de jetons :

  • Enregistre l'ONCHAINID de chaque portefeuille figurant sur la liste blanche
  • Expose isVerified(adresse)
  • Garantit que seules les identités vérifiées restent enregistrées

Il repose généralement sur Stockage du registre d'identité Ainsi, plusieurs jetons peuvent partager une liste blanche tout en conservant des registres spécifiques à chaque jeton. Une fois la procédure KYC effectuée, un investisseur associe ou déploie un ONCHAINID, reçoit les droits requis de la part d’émetteurs de confiance, et son portefeuille est enregistré avec un code pays (numérique ISO-3166).

Contrat de conformité

Le contrat de conformité définit les règles d'offre et les restrictions de cession. Exemples :


  • Nombre maximal d'investisseurs par pays.
  • Taille maximale de la position par investisseur.
  • Listes d'autorisation et de refus par juridiction.
  • Les règles liées à la durée, telles que les périodes de blocage et les conditions d'acquisition des droits.

Surface d'interface standard :

fonction canTransfer(adresse de, adresse à, uint256 montant) externe vue renvoie (bool);
function transféré(adresse de, adresse à, uint256 montant) externe;
function créée(adresse à, uint256 montant) externe;
function détruit(adresse de, uint256 montant) externe;

Le contrat de jeton utilise le contrat de conformité pour :


  • Vérifier au préalable si un transfert est autorisé (canTransfer).
  • Mettre à jour la logique de conformité après les transferts, les émissions et les destructions (transféré, créé, détruit) afin de pouvoir synchroniser ses états internes (variables, compteurs, etc.).

Jeton autorisé (T-REX)

Ce jeton met en œuvre les fonctionnalités standard de la norme ERC-20 et contient des références à Registre d'identité et le Conformité contrat. Au lieu d'envoyer des jetons à l'aveuglette, il soumet chaque transfert à quelques vérifications supplémentaires afin de s'assurer que l'opération est autorisée. Il encapsule les transferts avec :


  1. Contrôles de pause/gel
  2. Contrôles de conformité
  3. Hooks post-transfert (transféré)

Parmi les extensions courantes, on peut citer :


  • Transferts forcés et récupération de jetons
  • Pause/gel (global et par adresse)
  • Gel partiel (seule une partie du solde est disponible)
  • Opérations par lots

Fonctionnement des transferts de jetons RWA

Voyons maintenant, étape par étape, comment fonctionne un transfert de jeton ERC-3643.

Étape 1 : L'utilisateur lance le virement

Une utilisatrice (Alice) appelle la méthode du jeton transfert ou transferFrom Procédez comme d'habitude pour transférer des jetons vers une nouvelle adresse (Bob) :

jeton.transfert(bob.adresse, montant);
jeton.transferFrom(from, bob.adresse, montant); // si une allocation est utilisée

Étape 2 : Vérification des conditions d'éligibilité

Le Jeton Le contrat ne transfère pas les jetons. Il effectue d'abord des vérifications d'éligibilité via le Registre d'identité. Le raisonnement est généralement le suivant :


  1. Vérifie si le jeton est en pause ou si l'une des deux adresses est gelée
  2. Vérifie que le récepteur est enregistré et dispose des droits nécessaires dans le Registre d'identité en appelant isVerified() fonction

Dans de nombreuses implémentations, le jeton appelle identityRegistry.isVerified(...) directement, puis appelle compliance.canTransfer(...). Dans d'autres cas, la vérification des conditions d'éligibilité est intégrée à canTransfer en soi. L'essentiel, c'est que les deux éligibilité et règles de conformité sont appliquées avant tout transfert de solde.

Étape 3 : Évaluation de la conformité

Une fois les vérifications d'éligibilité effectuées, le Jeton Le contrat passe à la deuxième étape : compliance.canTransfer(alice.address, bob.address, amount). Le Conformité Le contrat vérifie sa logique modulaire afin de déterminer si le transfert est autorisé et s'il ne contrevient à aucune des règles.

Le contrat de conformité peut évaluer les règles suivantes :

  • Limites globales (par exemple, nombre de titulaires par juridiction)
  • Limites de position par investisseur et par pays
  • Périodes de blocage, restrictions de cession et conditions d'acquisition
  • Tous les modules personnalisés configurés pour ce jeton

En cas de non-respect d'une règle, canTransfer rendements false et le jeton devrait revenir à son état initial.

Étape 4 : Transfert

Si toutes les vérifications sont réussies, le transfert s'effectue comme un transfert ERC-20 classique. Ensuite, le Jeton appels conformité.transféré(de, vers, montant) afin de mettre à jour l'état de conformité en vue des contrôles futurs.

Sur Mint, le Jeton appels compliance.created(to, amount), et lors de la gravure, il appelle compliance.destroyed(from, amount) Le moteur de conformité suit donc également les changements au niveau de l'approvisionnement.

Traçabilité

Les demandes étant signées par des émetteurs de confiance et stockées via ONCHAINID, vous disposez d'une piste d'audit vérifiable concernant l'éligibilité.

Vous disposez d'une piste d'audit:

  • Qui détenait quoi et quand ?
  • Quelles demandes et quelles règles ont permis ce transfert ?
  • Évolution de la gouvernance des registres et des modules de conformité au fil du temps

Rôles et autorisations

La norme ERC-3643 distingue l'adresse du propriétaire (conformément à l'EIP-173) des adresses d'agent pouvant exécuter des fonctions sensibles. Le rôle d'agent est normalisé :

interface IAgentRole {
event AgentAdded(address indexed agent);
event AgentRemoved(address indexed agent);
function addAgent(address agent) external;
function removeAgent(address agent) external;
function isAgent(address agent) external view returns (bool);
}

Le propriétaire gère les agents et la configuration de haut niveau. Les agents exécutent des actions telles que le gel, les transferts forcés, la création/destruction de jetons et les opérations par lots, selon la mise en œuvre.

Interfaces principales pour les développeurs

Principales interfaces normalisées mises en évidence par les implémentations de la norme ERC-3643 :

interface IERC3643 is IERC20 {
// getters
function onchainID() external view returns (address);
function identityRegistry() external view returns (IIdentityRegistry);
function compliance() external view returns (ICompliance);
function paused() external view returns (bool);
function isFrozen(address user) external view returns (bool);
function getFrozenTokens(address user) external view returns (uint256);

// admin
function pause() external;
function unpause() external;
function setAddressFrozen(address user, bool freeze) external;
function freezePartialTokens(address user, uint256 amount) external;
function unfreezePartialTokens(address user, uint256 amount) external;
function setIdentityRegistry(address identityRegistry) external;
function setCompliance(address compliance) external;

// lifecycle
function forcedTransfer(address from, address to, uint256 amount) external returns (bool);
function mint(address to, uint256 amount) external;
function burn(address user, uint256 amount) external;
function recoveryAddress(address lostWallet, address newWallet, address investorOnchainID) external returns (bool);

// batch helpers
function batchTransfer(address[] calldata toList, uint256[] calldata amounts) external;
}

Récapitulatif de la conception

Le déploiement d'un jeton ERC-3643 implique au minimum :


  • Déployer les registres : Registre des sujets de réclamation, Registre des émetteurs de confiance, Stockage du registre d'identité, Registre d'identité.
  • Configurer les thèmes et les émetteurs : ajoutez des thèmes de revendication et des émetteurs de confiance, ainsi que les thèmes qu'ils prennent en charge.
  • Associer le stockage au registre d'identités et configurer les registres dans ce dernier.
  • Déployer Conformité et l'associer au jeton une fois celui-ci déployé.
  • Déployez le jeton en indiquant les références à Registre d'identité et Conformité.
  • Définissez les rôles « Propriétaire » et « Agent » et limitez l'accès aux fonctions sensibles aux agents.
  • Enregistrer l'identité des investisseurs (adresse, ONCHAINID, pays) dans le registre des identités.
  • Utilisation menthe pour répartir l'offre et garantir la mise en œuvre des opérations de création et de destruction de jetons créé/supprimé.

Cas d'utilisation courants


  • Fonds privés tokenisés / Capital-risque / Capital-investissement: réservé exclusivement aux investisseurs accrédités ou institutionnels
  • Offres de jetons de sécurité (STO): appliquer les restrictions juridictionnelles, le nombre maximal de détenteurs, les périodes de blocage, etc.
  • Immobilier tokenisé: veiller à ce que seuls les investisseurs éligibles puissent détenir une part de propriété d'un bien immobilier
  • Places de marché réglementées: mettre en place des marchés secondaires conformes aux réglementations, où chaque ordre d'achat et de vente est validé sur la blockchain

Comme ils restent compatibles avec la norme ERC-20, les jetons ERC-3643 peuvent s'intégrer à des portefeuilles, des services de conservation, des plateformes d'échange (centralisées ou décentralisées, lorsque cela est autorisé) ainsi qu'à des outils de gestion de portefeuille et d'analyse, à condition que ces plateformes soient en mesure de prendre en charge la nature autorisée de cet actif (par exemple, en gérant les annulations de transfert pour des raisons de conformité).

Et maintenant ?

À partir de là, vous pouvez :

  • Lire l'intégralité du livre blanc et du cahier des charges de la norme ERC-3643

    Approfondissez des cas particuliers tels que la livraison contre livraison (DvD), les intégrations boursières et les modèles d'évolutivité qui vont au-delà de cette présentation générale.

  • Découvrez l'implémentation de référence

    Clonez le dépôt ERC-3643 / T-REX, déployez les registres et le jeton dans un environnement local ou sur un testnet, puis testez les transferts conformes et non conformes.

  • Créer un prototype illustrant un cas d'utilisation simple de la RWA

    Par exemple :

    • Un fonds privé tokenisé dont seuls les investisseurs accrédités de certaines juridictions peuvent détenir les tokens
    • Un actif immobilier tokenisé assorti de périodes de blocage et de fenêtres de transfert

    Utilisez la norme ERC-3643 pour encoder ces règles directement dans le jeton.

  • Mettre en place des outils de suivi et de conformité

    Utilisez Quicknode Streams pour vous abonner à :

    • Transfert événements liés à votre jeton ERC-3643
    • Événements personnalisés issus de vos modules de conformité (par exemple, violations de règles, transferts forcés)
      Intégrez ensuite ces données dans des tableaux de bord, des systèmes d'alerte ou des outils de conformité internes.

En examinant ces prochaines étapes, vous comprendrez beaucoup mieux comment la norme ERC-3643 s'intègre dans votre propre feuille de route en matière d'actifs réels (RWA) ou de jetons de sécurité.

Conclusion

Dans ce guide, vous avez découvert comment la norme ERC-3643 intègre l'identité sur la chaîne, les vérifications d'éligibilité et des règles de conformité modulaires au modèle ERC-20 bien connu, afin de prendre en charge les actifs réglementés et soumis à autorisation.

Si vous développez une infrastructure RWA ou de jetons de sécurité sur Ethereum ou d’autres chaînes EVM, la norme ERC-3643 vous offre une base open source (T-REX) qui vous évite de devoir repenser la conformité à partir de zéro. En association avec l’infrastructure fiable de Quicknode, vous pouvez concevoir, déployer et surveiller des jetons autorisés qui s’inscrivent dans les cadres réglementaires du monde réel.

Abonnez-vous à notre newsletter pour découvrir d'autres articles et guides. Faites-nous part de vos commentaires sur Twitter ou rejoignez notre serveur Discord.

Nous ❤️ les commentaires !

Faites-nous savoir si vous avez des commentaires ou des suggestions de nouveaux sujets. Nous serions ravis de vous entendre.

Partager ce guide