Récupération de tokens : un solde déplacé sans la clé perdue
Prenons un cas fictif : un investisseur perd le wallet qui détient 500 tokens. Comment l’agent de l’émetteur les déplace-t-il, et peut-il viser le mauvais wallet ?

EN 30 SECONDES
La récupération de tokens est une fonction réservée à l’agent, qui déplace tout le solde d’un wallet perdu vers un nouveau wallet, sans la clé perdue. Dans le code de référence, elle contrôle le nouveau wallet au regard d’une identité que l’agent fournit.
À RETENIR · 3
- Dans le code de référence T-REX, la récupération est un transfert forcé précédé d’un contrôle d’identité. La clé du wallet perdu ne sert jamais.
- Le contrôle se fie à l’identité que fournit l’agent. Il ne la compare jamais à celle enregistrée pour le wallet perdu.
- Un transfert forcé émet un événement Transfer ordinaire : la surveillance doit donc vérifier quelle fonction a été appelée.
Sur cette page
Comment fonctionne la récupération, étape par étape
EN BREF La récupération est un transfert forcé précédé d’un contrôle d’identité, et la clé du wallet perdu ne sert jamais.
LES MOTS À CONNAÎTRE
- Rôle d’agent
- Adresses que le token autorise à geler un wallet, forcer un transfert ou récupérer des tokens, sans la clé du détenteur. Qui détient ce rôle dépend du déploiement.
- Transfert forcé
- Un transfert qu’un agent fait depuis un wallet, sans la signature de ce wallet.
- Registre d’identité
- La liste du token qui relie chaque wallet à l’identité d’un investisseur.
- Attestation (claim)
- Une déclaration signée concernant un investisseur, par un émetteur auquel le token fait confiance, du type « identité vérifiée ».
La récupération est prévue pour l’investisseur qui a perdu l’accès à son wallet. La spécification ERC-3643 la rend obligatoire.
… doit avoir un système de récupération au cas où un investisseur perdrait l’accès à sa clé privée.
Dans le code de référence T-REX, seul le Rôle d’agent Adresses que le token autorise à geler un wallet, forcer un transfert ou récupérer des tokens, sans la clé du détenteur. Qui détient ce rôle dépend du déploiement. Voir le glossaire peut la lancer.
ÉTAPE PAR ÉTAPE
Étape 1. Appel de l’agent. Seule une adresse dotée du rôle d’agent peut appeler la fonction de récupération.
- Appel de l’agent Seule une adresse dotée du rôle d’agent peut appeler la fonction de récupération.
- Contrôle d’identité Le nouveau wallet doit être une clé de gestion, autorisée à administrer l’identité, sur la fiche d’identité (ONCHAINID) fournie par l’agent.
- Inscription Le token inscrit le nouveau wallet dans son registre d’identité, avec cette identité et le code pays du wallet perdu.
- Déplacement Un transfert forcé déplace tout le solde. Les montants gelés et le gel d’adresse sont réappliqués.
- Trace L’inscription de l’ancien wallet est supprimée et un événement RecoverySuccess est émis : une trace publique.
ATTENTION
Regardez l’étape 2. Le code ne vérifie pas qu’il s’agit de l’identité enregistrée pour le wallet perdu. Il fait confiance à l’agent.
Le Transfert forcé Un transfert qu’un agent fait depuis un wallet, sans la signature de ce wallet. Voir le glossaire exige quand même que le nouveau wallet passe le contrôle « vérifié ». Il faut un wallet inscrit au Registre d’identité La liste du token qui relie chaque wallet à l’identité d’un investisseur. Voir le glossaire, dont l’identité porte les Attestation (claim) Une déclaration signée concernant un investisseur, par un émetteur auquel le token fait confiance, du type « identité vérifiée ». Voir le glossaire valides que le token exige.
EN CLAIR
Une partie de la question de la garde passe à celui qui détient ces clés d’identité, une autre revient à l’agent.
Dans ce code, la mise en pause du token arrête les transferts ordinaires, mais pas ce transfert forcé. Le transfert forcé déplace aussi les tokens gelés, en dégelant le montant nécessaire.
Dans la section suivante : Et si l’agent fournit l’identité de quelqu’un d’autre ?
Un exemple concret : une récupération, un angle mort
EN BREF Le même appel de récupération fonctionne pour le détenteur légitime, et aussi quand l’agent fournit une autre identité.
UN EXEMPLE CONCRET
Chiffres illustratifs
VALIDÉCas fictif : récupération vers le nouveau wallet du détenteur
ENTRÉE
- Wallet perdu
- 0x9f2c...e41a
- Solde
- 500 tokens, dont 100 gelés
- Identité fournie
- celle du détenteur
CE QUI SE PASSE
- Le nouveau wallet est une clé de gestion de cette identité : le contrôle est validé.
- Un transfert forcé déplace les 500 tokens, et 100 sont gelés à nouveau.
- L’inscription du wallet perdu est supprimée et la récupération tracée.
SORTIE
- Nouveau wallet
- 500 tokens, dont 100 gelés
- Clé du wallet perdu
- jamais utilisée
NON DÉTECTÉMême appel, une autre identité fournie
ENTRÉE
- Identité fournie
- une autre, dont le nouveau wallet est une clé de gestion
CE QUI SE PASSE
- Le contrôle vérifie seulement si le nouveau wallet est une clé de gestion de cette identité.
- Il ne la compare jamais à l’identité enregistrée pour le wallet perdu.
- Si cette identité porte des attestations valides des émetteurs de confiance du token, le wallet passe le contrôle et les 500 tokens partent.
SORTIE
- Résultat
- le solde part
- Ce qui limite ce risque
- qui détient le rôle d’agent, et sa procédure
OBJET OBTENU
Le garde-fou, c’est l’agent
Un transfert forcé émet un événement Transfer ordinaire. Pour le distinguer d’un transfert signé par le détenteur, la surveillance doit vérifier quelle fonction a été appelée.
Si l’agent est un multisig, il peut falloir une trace. Et la surveillance ne détecte un mouvement qu’après coup, sans l’empêcher. Sources : ERC-3643, T-REX Token.sol (commit f139012).
FAQ
Techniquement, dès qu’un tiers peut modifier le solde, comme un agent ERC-3643. Savoir si cela change qui « a la garde du titre », c’est la question de la SEC. Cette série ne la tranche pas, et ce n’est pas un conseil juridique.
Ils ouvrent une seconde voie pour déplacer la position. Dans le code T-REX, seul le rôle d’agent peut les appeler, et un transfert forcé peut déplacer des tokens gelés. La spécification impose les deux : reste à savoir qui détient ce rôle, avec quels contrôles.
NIVEAU TERMINÉ
Ce que vous savez maintenant
- Comment la récupération déplace tout un solde vers un nouveau wallet, montants gelés compris, sans la clé perdue.
- Pourquoi le contrôle d’identité dépend de l’agent, pas de l’inscription du wallet perdu.
Vérifiez par vous-même
Touchez ou cliquez une question pour voir la réponse.
Cas fictif : la surveillance d’un dépositaire ne montre ce mois-ci que des événements Transfer ordinaires pour les sorties de son wallet. Peut-il en conclure qu’aucun agent n’a déplacé ses tokens ?
Non. Un transfert forcé émet lui aussi un événement Transfer ordinaire. Il faut vérifier quelle fonction a été appelée, ce qui peut exiger une trace quand l’agent est un multisig.
Ingénieur web3 x IA, 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.
Un projet à livrer ou un poste à pourvoir ?
Parlons de votre besoinSuivre les notes techniques
Recevez les nouveaux articles sur l’IA en production et les smart contracts par email.