ALLER AU CONTENU
Protocole10 minStandards That Ship / Ep. 2

ERC-3643 vs ERC-1400 vs CMTAT : standards de security token

Adam Boudjemaa
PARTAGER
Pixel-art illustration of one token coin with a single socket and three interchangeable compliance cores (a shield chip, a tranche stack, a puzzle hook) ready to slot in.

À RETENIR

  • La vraie question n'est pas quel standard est le meilleur, mais où vous voulez que la conformité vive : dans le token, dans un schéma de tranches, ou dans des modules interchangeables.
  • ERC-3643 vérifie l'éligibilité au moment du transfert via une identité on-chain. C'est toute sa thèse, et tout son coût.
  • ERC-1400 découpe un solde en tranches ; CMTAT garde un cœur ERC-20 sobre avec pause, snapshot et un hook de validation. Aucun n'intègre l'identité.
  • Choisissez ERC-3643 quand le régulateur veut savoir qui détient le token, ERC-1400 quand il vous faut un cycle de vie par tranche, CMTAT quand vous voulez la simplicité ERC-20 avec une couture de conformité.
  • ERC-7943 (uRWA) est passé Final le 5 mai 2026, mais sa catégorie est Interface, pas un quatrième système. Il normalise le vocabulaire de conformité par-dessus le modèle que vous avez déjà choisi.
3
STANDARDS ÉCRITS
ERC-3643, ERC-6960, ERC-7410
$32B+
TOKENISÉ SUR ERC-3643
source : erc3643.org

Une banque m'a appelé l'an dernier avec une question qui paraissait simple. Elle avait choisi un prestataire de tokenisation, le prestataire avait choisi un standard de token, et son équipe conformité voulait savoir si c'était le bon choix. Ce n'était pas une question de code. C'était une question à cinq ans déguisée en question de code.

Voici donc la comparaison honnête des trois standards qui reviennent vraiment : ERC-3643, ERC-1400 et CMTAT. Je suis l'un des auteurs nommés d'ERC-3643, alors lisez-moi comme biaisé et informé, pas neutre. Je serai juste envers les deux autres, car prétendre qu'ils n'ont aucune place, c'est perdre le débat face à un bon ingénieur.

TRANSPARENCE

Transparence : je suis l'un des cinq auteurs nommés d'ERC-3643 (T-REX), et j'ai construit sa suite de tokens conformes et la couche d'identité OnchainID chez Tokeny. Tout ce qui suit sur ERC-1400 et CMTAT relève de leur spécification publique, pas d'un chiffre que j'affirme.

Y arriver fut un combat de plusieurs années ; j'ai détaillé comment faire accepter un standard Ethereum dans le premier épisode.

La décision dont personne ne vous parle

Un standard de security token n'est pas une bibliothèque qu'on remplace au sprint suivant. Il décide qui peut détenir l'actif, comment un régulateur impose un gel, et ce que vos auditeurs doivent comprendre pendant toute la vie de l'instrument. Trompez-vous et vous migrez une table de capitalisation en production, ce qui est aussi amusant que ça en a l'air.

LA VUE À CINQ ANS
1

Mois 0 : vous choisissez

Cela ressemble à un choix de code. Un prestataire livre un standard, vous dites oui, et le modèle de transfert est désormais fixé pour toute la vie de l'instrument.

2

Intégration : le choix se fige

Les wallets, la conservation et votre agent de transfert héritent tous de ce modèle. Chaque intégration rend la décision plus coûteuse à défaire.

3

Premier audit : le modèle passe au banc d'essai

Les auditeurs doivent raisonner sur votre chemin de transfert. Un modèle qui place la conformité là où ils la voient fait gagner des semaines ; une barrière ajoutée la leur coûte.

4

Événement régulateur : geler ou prouver

On vous demande de geler un détenteur ou de prouver l'éligibilité. Vous découvrez alors si la conformité vit là où le token peut vraiment l'atteindre.

5

An 5 : migrer, ou non

L'instrument a survécu à l'hypothèse, ou non. Dans les deux cas, c'est la facture du choix fait au mois 0.

La même décision, aux cinq moments où vous la sentirez vraiment. Le mois 0 est le seul où elle ressemble à un choix de code.

ERC-3643, ERC-1400 et CMTAT : de quoi parle-t-on ?

Les trois permettent d'émettre un security token sur une chaîne EVM. Ils divergent sur la seule chose qui compte pour un actif régulé : comment le token décide si un transfert est autorisé.

Standard
Modèle de base
Où vit la conformité
ERC-3643 (T-REX)
ERC-20 plus un registre d'identité on-chain obligatoire
Dans le token : chaque transfert vérifie que le destinataire est éligible
ERC-1400
Un solde découpé en partitions nommées (tranches)
Dans les partitions et un contrôleur pouvant forcer les mouvements
CMTAT
Un cœur ERC-20 sobre plus des modules optionnels
Dans un hook de validation que vous implémentez et branchez

Le vrai choix : où vit la conformité ?

Oubliez les listes de fonctionnalités un instant. Les trois standards posent la même question à chaque transfert. Ils y répondent simplement à des endroits différents.

Ce seul choix entraîne tout le reste : quelles données doivent exister on-chain, ce qu'un régulateur doit croire, la difficulté d'un gel, et tout ce que votre contrat de token doit savoir du monde extérieur. Les standards diffèrent sur l'emplacement de la réponse, pas sur la difficulté de la question.

TROIS COUTURES
Où chaque standard contrôle un transfert
ERC-3643contrôle d'identité

transfer() appelle IdentityRegistry.isVerified ; il annule sauf si le destinataire détient les attestations exigées par le token.

ERC-1400partition + contrôleur

canTransferByPartition contrôle chaque tranche, et un contrôleur peut forcer un mouvement ou un rachat quand la loi l'exige.

CMTAThook de validation

Chaque transfert doit passer un module de validation que vous implémentez ; le standard garantit seulement que le hook est toujours appelé.

Même question, trois coutures. Chaque standard décide d'un transfert à un endroit différent de la pile.

ERC-3643 : l'identité est toute la thèse

ERC-3643 fait un pari : le token lui-même doit refuser un transfert inéligible. Pas un wrapper, pas une barrière hors chaîne qu'on peut oublier d'appeler. La fonction de transfert demande à un registre d'identité si le destinataire détient les attestations exigées par ce token, et annule sinon. La conformité n'est pas ajoutée ; elle est le chemin du transfert.

Les attestations vivent dans un contrat d'identité on-chain (dans le design T-REX, OnchainID), signées par des émetteurs de confiance. Votre passeport ne touche jamais la chaîne. La chaîne voit seulement qu'un émetteur que vous approuvez a attesté « cette adresse peut détenir cette classe d'actif ». C'est la partie élégante, et c'est pourquoi le modèle a gagné son adoption.

Le coût est honnête et mérite d'être dit clairement. Vous faites désormais tourner un système d'identité. Quelqu'un doit émettre les attestations, les renouveler, les révoquer et être disponible quand un investisseur s'inscrit. Pour un instrument permissionné surveillé par un régulateur, cette mécanique est le sujet. Pour un token que vous vouliez simple, c'est une charge que vous regretterez.

UN TRANSFERT ERC-3643
Diagramme de séquence : 4 participants : Expéditeur, Token, IdentityRegistry, OnchainIDDiagramme de séquence : 4 participants : Expéditeur, Token, IdentityRegistry, OnchainID. Étape 1 : Expéditeur vers Token, transfer(to, amount). Étape 2 : Token vers IdentityRegistry, isVerified(to) ?. Étape 3 : IdentityRegistry vers OnchainID, lire les attestations signées. Étape 4 : OnchainID vers Token, attestations valides présentes, ou non. Étape 5 : Token vers Expéditeur, le transfert passe, ou est annulé.EXPÉDITEUR > TOKENtransfer(to, amount)Le seul point d'entrée. Aucune barrièreséparée à oublier.TOKEN > IDENTITYREGISTRYisVerified(to) ?Avant de déplacer le moindre token, ildemande : cette adresse peut-elle détenir cetactif ?IDENTITYREGISTRY > ONCHAINIDlire les attestations signéesLes attestations vivent hors du token,signées par des émetteurs de confiance.ONCHAINID > TOKENattestations valides présentes, ou nonTOKEN > EXPÉDITEURle transfert passe, ou est annuléPas d'attestation, pas de mouvement. C'est laconformité comme chemin du transfert.
Un transfert ERC-3643, étape par étape. Le contrôle d'éligibilité vit dans transfer() lui-même, donc rien ne le contourne.

La conformité comme barrière à appeler

Une vérification séparée qu'un appelant doit penser à lancer avant chaque transfert. Oubliez-la une fois, dans une intégration, et un détenteur inéligible se retrouve sur la table de capitalisation.

La conformité comme le transfert lui-même

Le token annule seul un transfert inéligible. Il n'y a aucun contournement, car la vérification est dans la fonction que tout le monde doit appeler. C'est la thèse d'ERC-3643 en une ligne.

Si vous voulez l'interface réelle et son statut Final, la référence ERC-3643 (T-REX) la présente.

ERC-1400 : les tranches, et quand elles gagnent

ERC-1400 n'est pas un ERC-3643 en moins bien. C'est une autre idée. Il dit qu'un titre est rarement un solde plat unique. Ce sont des tranches : bloquées et libres, Reg D et Reg S, acquises et non acquises. Il découpe donc un solde en partitions nommées, chacune avec ses règles de transfert, et ajoute un rôle de contrôleur pouvant forcer un transfert ou un rachat quand la loi l'exige.

Cela colle parfaitement aux instruments à vrai cycle de vie : blocages qui expirent, classes d'actions qui se convertissent, opérations sur titres qui déplacent des soldes entre compartiments. Si votre histoire de conformité est surtout « ces tokens sont restreints jusqu'à la date X puis ne le sont plus », les partitions l'expriment nativement là où ERC-3643 doit la contourner.

Ce qu'ERC-1400 ne vous donne pas, c'est l'identité. Il suppose qu'en amont quelqu'un a déjà décidé qui est autorisé sur le registre. Associez-le à une liste blanche ou à une couche d'identité et vous êtes proche d'ERC-3643 avec une mécanique de tranches en plus. Si vous n'avez pas besoin des tranches, cette mécanique est une complexité que vous payez sans l'utiliser.

LE MODÈLE ERC-1400
Diagramme en couches : 5 niveaux, de haut en basDiagramme en couches : 5 niveaux, de haut en bas. Niveau 1, CONTRÔLEUR : Transfert forcé, Rachat forcé. Niveau 2, PARTITIONS : Bloqué / débloqué, Reg D / Reg S, Acquis / non acquis. Niveau 3, RÈGLES : Règles de transfert propres à chaque partition. Niveau 4, SOLDE : Un porteur, plusieurs partitions nommées. Niveau 5, IDENTITÉ : Non fournie, Supposée décidée en amont.CONTRÔLEURTransfert forcéRachat forcéPARTITIONSBloqué / débloquéReg D / Reg SAcquis / non acquisRÈGLESRègles de transfert propres à chaquepartitionSOLDEUn porteur, plusieurs partitionsnomméesIDENTITÉNon fournieSupposée décidée en amont
Un porteur n'est pas un solde unique. Le solde est découpé en partitions nommées, chacune portant ses propres règles de transfert, avec un contrôleur capable de forcer un mouvement quand la loi l'exige. L'identité est la couche qu'ERC-1400 ne fournit pas.

CMTAT : l'option sobre et pragmatique

CMTAT est l'option que les ingénieurs sous-estiment car elle paraît ennuyeuse, et l'ennuyeux est souvent le bon choix. C'est un cadre suisse (de la Capital Markets and Technology Association) construit sur un cœur ERC-20 sobre avec des modules : mettre en pause tout le token, geler une adresse, prendre un snapshot des soldes pour un dividende ou un vote, et un hook de validation que chaque transfert doit passer.

La philosophie est l'inverse d'ERC-3643. Au lieu d'intégrer l'identité dans le token, CMTAT vous donne une couture propre et dit « mettez votre logique de conformité ici ». Ce module de validation peut être une simple liste d'autorisation, ou appeler quelque chose d'aussi strict qu'un registre d'identité. Vous choisissez la sévérité ; le standard garantit seulement que le hook est toujours appelé.

C'est sa force et son avertissement. CMTAT est honnête : c'est un cadre, pas un système de conformité complet. Le cœur ERC-20 fait que votre token fonctionne avec les wallets et outils existants dès le premier jour. Mais un module de validation vide est un security token sans conformité, donc le vrai travail se déplace dans du code que vous possédez et devez réussir.

LE MODÈLE CMTAT
Diagramme en couches : 4 niveaux, de haut en basDiagramme en couches : 4 niveaux, de haut en bas. Niveau 1, VOTRE LOGIQUE : Simple liste d'autorisation, ou un registre d'identité complet. Niveau 2, POINT DE VALIDATION : Chaque transfert doit le passer, Toujours appelé. Niveau 3, MODULES : Mettre le jeton en pause, Geler une adresse, Figer les soldes. Niveau 4, NOYAU ERC-20 : Compatible avec les wallets et outils existants.VOTRE LOGIQUESimple liste d'autorisationou un registre d'identité completPOINT DE VALIDATIONChaque transfert doit le passerToujours appeléMODULESMettre le jeton en pauseGeler une adresseFiger les soldesNOYAU ERC-20Compatible avec les wallets et outilsexistants
La philosophie inverse : un noyau ERC-20 sobre, compatible dès le premier jour avec les wallets existants, plus des modules, et un point de validation dont la norme garantit qu'il est toujours appelé. C'est vous qui fournissez la logique de conformité derrière ce point, ce qui fait sa force et constitue son avertissement.

ERC-7943 (uRWA) : une interface, pas une quatrième réponse

Il y a désormais un quatrième nom dans la conversation, et ce n'est pas une quatrième réponse. ERC-7943, l'interface universelle pour les actifs du monde réel (uRWA), est passé Final le 5 mai 2026. Avant de l'ajouter au comparatif, lisez son champ catégorie. Il dit Interface.

Il ne vous dit pas où vit la conformité. Il étend ERC-20, ERC-721 et ERC-1155 avec un vocabulaire commun pour ce que tout token régulé finit par faire de toute façon : geler un solde, forcer un transfert quand la loi l'exige, demander si une adresse a le droit d'envoyer ou de recevoir.

Sa motivation est directe sur le pourquoi. Les tentatives passées de standard universel RWA ont, dit-elle, imposé une complexité et un coût en gas inutiles pour des cas simples qui n'ont besoin ni d'une liste blanche on-chain obligatoire ni d'une solution d'identité on-chain spécifique. Elle ne cite personne. Vu que l'identité on-chain obligatoire est précisément la thèse d'ERC-3643, je prends la remarque pour moi.

Le nommage est délibéré lui aussi. La spec dit avoir préféré canTransfer à isTransferAllowed par cohérence avec les standards RWA établis, dont ERC-3643. C'est là qu'est l'intérêt : un intégrateur apprend un vocabulaire au lieu de trois.

Cela ne change donc pas le choix dont parle cet article. Cela change ce que vous exposez une fois le choix fait.

LE VOCABULAIRE COMMUN
ERC-7943 IERC7943Fungible (la variante ERC-20)
interface IERC7943Fungible {
    function forcedTransfer(address from, address to, uint256 amount) external returns (bool result);
    function setFrozenTokens(address account, uint256 amount) external returns (bool result);
    function canSend(address account) external view returns (bool allowed);
    function canReceive(address account) external view returns (bool allowed);
    function getFrozenTokens(address account) external view returns (uint256 amount);
    function canTransfer(address from, address to, uint256 amount) external view returns (bool allowed);
}
Tout le standard tient en six fonctions. Rien ici ne dit où vit la règle de conformité, et c'est exactement le principe : c'est un vocabulaire, pas un système.

Alors, lequel choisir ?

Ôtez le tribalisme et la décision n'est pas si dure. Accordez le standard à la forme de votre problème de conformité, pas à celui que votre prestataire livre déjà.

CHOISISSEZ-EN UN
Décision: Quel standard correspond à votre règle de transfert ?Arbre de décision : Quel standard correspond à votre règle de transfert ? Si Le régulateur veut savoir qui détient le token, et l'éligibilité peut changer, alors ERC-3643. Si L'actif a des tranches, des blocages ou des événements de cycle de vie, alors ERC-1400. Si Vous voulez la simplicité ERC-20 avec un endroit propre pour la conformité, alors CMTAT. Si Vous ne savez pas décrire votre règle de transfert en une phrase, alors Aucun encore.DÉCISIONQuel standard correspond à votrerègle de transfert ?SI Le régulateur veut savoir quidétient le token, et l'éligibilitépeut changerERC-3643L'identité-au-transfert est imposéepar le token, et c'est un standardFinal très adopté.SI L'actif a des tranches, desblocages ou des événements de cyclede vieERC-1400Les partitions expriment nativementle restreint-puis-libre et lesmouvements forcés.SI Vous voulez la simplicité ERC-20avec un endroit propre pour laconformitéCMTATUn cœur sobre plus un hook devalidation garde la compatibilitédes outils et le contrôle.SI Vous ne savez pas décrire votrerègle de transfert en une phraseAucun encoreLe standard n'est pas le problème.Votre politique de conformité n'estpas définie.
Quatre issues honnêtes, dont celle qu'aucun prestataire ne vous vend : si vous ne savez pas énoncer votre règle de transfert en une phrase, aucun standard ne la réglera.

La même question, « où vit la règle ? », revient dans les paiements d'agents et qui est responsable quand l'un dérape, plus loin dans la série.

Trois façons de se planter en production

Standard
Ce que vous devez exploiter
Le risque sinon
ERC-3643
Un émetteur d'identité qui signe, renouvelle et révoque les attestations
L'onboarding cale et des transferts éligibles échouent
ERC-1400
Un administrateur de partitions et de contrôleur pour le cycle de vie des tranches
Vous livrez un moteur de tranches pour modéliser un solde plat
CMTAT
Le module de validation que vous avez écrit et devez garder correct
Un hook vide est un security token sans conformité

ERC-3643 ne vaut que l'émetteur qui signe les attestations. Des équipes le choisissent pour l'argument conformité, puis traitent l'émission d'attestations comme un projet secondaire. L'onboarding cale, les attestations expirent, les transferts échouent, et le support accuse la chaîne. Le token allait bien ; le processus humain derrière les attestations n'était pas doté.

ERC-1400 est tentant car il paraît complet. Mais si chaque détenteur n'a qu'une seule partition par défaut, vous avez livré un moteur de tranches pour modéliser un solde plat. Désormais chaque intégrateur doit raisonner sur des partitions qui ne diffèrent jamais, et chaque audit couvre des chemins de code jamais exercés.

CMTAT vous laissera volontiers déployer avec un module de validation qui renvoie true pour tout. Il compile, il passe les tests, il déplace des tokens. C'est aussi un security token sans aucune conformité, et personne ne le remarque jusqu'à ce qu'un transfert qui aurait dû être bloqué ne le soit pas. La couture ne vaut que ce que vous y mettez.

FAQ

Aucun n'est meilleur dans l'absolu. ERC-3643 vérifie l'éligibilité du détenteur au moment du transfert via une identité on-chain, ce qu'il vous faut quand le régulateur veut savoir qui possède le token. ERC-1400 modélise un actif dont le solde est découpé en tranches ayant leurs propres règles, ce qu'il vous faut pour des événements de cycle de vie comme les blocages ou les opérations sur titres. Choisissez selon le problème que vous avez vraiment.

En pratique on en choisit un comme modèle de contrôle des transferts, car les deux veulent posséder le chemin du transfert. Vous pouvez emprunter des idées de l'un à l'autre, par exemple ajouter une vérification d'identité à un token ERC-1400, mais faire tourner les deux couches de contrôle sur le même token signifie que deux systèmes peuvent chacun bloquer un transfert : une charge de support et d'audit que vous voulez rarement.

CMTAT (Capital Markets and Technology Association Token) est un cadre suisse construit sur un cœur ERC-20 sobre, avec des modules de pause, de gel, de snapshot et un hook de validation que le transfert doit passer. Il s'adresse aux émetteurs qui veulent la compatibilité des outils ERC-20 et un endroit clair pour brancher la conformité, sans adopter un système d'identité on-chain complet.

Il impose une preuve d'identité on-chain, pas votre passeport sur la chaîne. Dans le design T-REX, le contrat d'identité détient des attestations signées par des émetteurs de confiance, et le token vérifie qu'un destinataire possède les attestations requises avant d'autoriser le mouvement. Les données personnelles restent hors chaîne chez l'émetteur d'attestation ; la chaîne ne voit qu'une attestation valide.

ERC-7943, l'interface universelle pour les actifs du monde réel, est passé Final le 5 mai 2026, et sa catégorie est Interface, pas un système complet. Il étend ERC-20, ERC-721 et ERC-1155 avec un ensemble commun de fonctions de conformité : canTransfer, canSend, canReceive, forcedTransfer et la comptabilité des tokens gelés. Son objectif affiché est une interface essentielle qui ne dicte pas les mécanismes d'implémentation sous-jacents, et il indique avoir choisi le nom canTransfer par cohérence avec les standards RWA établis, dont ERC-3643. Ce n'est donc pas une quatrième option dans cette comparaison. C'est le vocabulaire que vous exposez une fois votre modèle choisi.

ERC-3643 est un standard Ethereum Final. C'est la suite T-REX que j'ai co-écrite chez Tokeny, elle sous-tend plus de 32 Md$ d'actifs tokenisés, et elle a été citée nommément par le président de la SEC. Cette maturité est la principale raison pour laquelle elle constitue un choix par défaut à faible risque pour les security tokens régulés aujourd'hui.

Standards That Ship

Episode 2 · 4 publies

PrecedentSuivant
Adam Boudjemaa

Adam Boudjemaa

Ancien CTO d'Integra. Auteur nommé (1 sur 5) d'ERC-3643, premier auteur d'ERC-6960, co-auteur d'ERC-7410 et co-auteur d'ERC-8203, encore à l'état de brouillon. Conçoit des systèmes d'IA en production et des systèmes Web3 régulés.

Cet article vous a plu ?

Recevez les suivants dans votre boîte mail chaque mardi.