Flux de travail d'application Stablecoin
Un stablecoin est un jeton fongible qui représente la monnaie numérique avec une application de conformité intégrée.
Le scénario stablecoin applique les politiques relatives à votre client (KYC) et à la lutte contre le blanchiment d'argent (AML), les restrictions de transfert et les approbations multipartites. Le système prend en charge les transferts directs et les transferts basés sur des blocages, qui doivent être approuvés avant le transfert.
- Des rôles d'intercalaire, de brûleur et de notaire sont requis.
- La politique de compte applique les indicateurs KYC/AML et de restriction.
- La politique d'approbation définit les seuils et les exigences séquentielles des approbateurs pour les transferts basés sur un blocage.
- Les restrictions de transfert sont facultatives et peuvent être configurées à tout moment.
- La mise en correspondance de la politique d'approbation permet de déterminer si des approbations sont requises lorsque l'API
holdTokensest utilisée. - Les API d'historique des transactions prennent en charge la vérification et la surveillance.
| acteur | Rôle | Description |
|---|---|---|
| Administrateur | Administrateur de jetons | Initialise le système, affecte des rôles, crée des politiques de compte et d'approbation. |
| Minter | Minter | Demande de frappe de jetons. |
| Approbateur de la menthe | Notaire | Approuve ou rejette les demandes de mint. |
| Approbateur de consommation | Notaire | Approuve ou rejette les demandes de gravure. |
| Expéditeur | aucune | Sert à lancer des transferts directs ou basés sur un blocage. |
| Approbateur | aucune | Permet d'approuver les transactions dans une séquence définie. Les approbateurs sont des titulaires de comptes réguliers qui ont été définis comme approbateurs dans la politique d'approbation (et non par un rôle affecté). |
| Notaire | Notaire | Termine ou annule les transferts basés sur un blocage après approbation. |
| Récepteur | aucune | Reçoit les jetons transférés. |
| Vérificateur | Vérificateur de jeton | Interroge l'historique des transactions à des fins de conformité et de production de rapports. |
- Initialisez un stablecoin à l'aide de l'API
initializeStablecoinToken. - Enregistrez les organisations à l'aide de l'API
registerOrg. - Créez des comptes à l'aide des API
createAccountetassociateTokenToAccount. - Affectez les rôles de serveur, de brûleur et de notaire aux comptes appropriés à l'aide de l'API
addRole. - Créez des politiques de compte à l'aide de l'API
createStablecoinAccountPolicyCheck. - Créez des politiques d'approbation à l'aide de l'API
createApprovalPolicyCheck.
- Mint stablecoins.
- Le processus de modification utilise l'API
requestMintpour soumettre une demande de création de stablecoins. - L'approbateur de menthe utilise l'API
approveMintpour vérifier et approuver la demande de menthe stablecoins. Sinon, l'approbateur de menthe peut utiliser l'APIrejectMintpour refuser la demande.
- Le processus de modification utilise l'API
- Transférez des stablecoins sans approbation.
- L'expéditeur utilise l'API
transferTokenspour envoyer des stablecoins à un utilisateur.
- L'expéditeur utilise l'API
- Transférer des stablecoins avec des approbations.
- L'expéditeur utilise l'API
holdTokenspour demander le transfert des jetons. - Si nécessaire, les approbateurs utilisent l'API
approveTransactionpour approuver le transfert, comme indiqué par la politique d'approbation. - Le notaire utilise l'API
executeHoldTokenspour approuver la demande de transfert. Sinon, le notaire peut utiliser l'APIreleaseHoldpour rejeter le transfert.
- L'expéditeur utilise l'API
- Vérifier le solde du jeton.
- Les utilisateurs peuvent utiliser l'API
getAccountBalancepour obtenir la quantité de stablecoins qu'ils détiennent.
- Les utilisateurs peuvent utiliser l'API
- Brûlez des jetons.
- Les utilisateurs peuvent utiliser l'API
requestBurnpour soumettre une demande de gravure de leurs stablecoins. - L'approbateur de consommation utilise l'API
approveBurnpour vérifier et approuver la demande. L'approbateur de l'incrémentation peut également utiliser l'APIrejectBurnpour refuser la demande.
- Les utilisateurs peuvent utiliser l'API
- vérification de l'historique des transactions;
- Les vérificateurs et les utilisateurs peuvent utiliser les API
getAccountTransactionHistoryetgetAccountTransactionHistoryWithFilterspour obtenir l'historique des transactions aux fins de vérification et de production de rapports.
- Les vérificateurs et les utilisateurs peuvent utiliser les API
Validation de politique de compte
Les politiques de compte sont obligatoires pour tous les comptes qui transfèrent ou détiennent des stablecoins. Les politiques de compte sont validées dans les API suivantes : transferTokens, holdTokens, approveTransaction, executeHoldTokens.
Chaque politique de compte comprend trois paramètres : KYC, AML et restrictionFlag. Ceux-ci sont validés à la fois pour l'expéditeur et le destinataire avant le transfert des jetons.
-
KYC(Connaître le client) - Le transfert n'est autorisé que lorsque les valeurs Connaissance du client sont
truepour les comptes d'expéditeur et de destinataire. -
AML(Anti-Money Laundering) - Le transfert n'est autorisé que lorsque les valeurs de liste de fabricants approuvés sont
truepour les comptes d'expéditeur et de destinataire. -
restrictionFlag - Si l'indicateur de restriction est réglé à
falsepour le compte de l'expéditeur et du destinataire, la validation réussit. Si l'indicateur de restriction est réglé àtruepour le compte de l'expéditeur ou du destinataire, pour les APIholdTokens,approveTransactionetexecuteHoldTokens, le transfert n'est autorisé que si une politique d'approbation disponible la plus basse existe et si le montant est compris dans les limites de la politique. Sinon, le transfert est bloqué. Pour la méthodetransferTokens, le transfert n'est autorisé que si le montant se trouve dans les limites inférieure et supérieure des limites de restriction de transfert.
Mise en correspondance de la politique d'approbation
La mise en correspondance de la politique d'approbation est déclenchée après un appel à l'API holdTokens. Les politiques d'approbation définissent les seuils de transaction, le nombre requis d'approbations et les détails de l'approbateur, et définissent la séquence des approbations à plusieurs niveaux. Une politique d'approbation est obligatoire pour une opération de blocage. Sans politique d'approbation, les utilisateurs ne peuvent pas bloquer ou transférer des jetons lorsque des restrictions s'appliquent.
La mise en correspondance de la politique d'approbation détermine si des approbations sont requises avant que le notaire puisse terminer le transfert de blocage. Si des approbations sont requises, la mise en correspondance de la politique d'approbation détermine quels approbateurs sont nécessaires et dans quelle séquence.
Si aucun indicateur de restriction n'est défini pour l'expéditeur et le destinataire, le montant de blocage est comparé à tous les seuils de politique d'approbation configurés pour trouver une correspondance. Si une correspondance est trouvée, les approbateurs et la séquence correspondants sont utilisés. Si aucune correspondance n'est trouvée, aucune approbation n'est requise et la transaction passe directement au notaire.
Si un indicateur de restriction est défini pour l'expéditeur ou le destinataire, la politique d'approbation la plus basse disponible est utilisée. Si aucune politique n'est disponible, la transaction est bloquée.
- approbateurs obligatoires;
- séquence d'approbation
- Nombre d'approbations requises
Approbation de transaction
La validation de l'approbation de transaction est déclenchée après un appel à l'API approveTransaction. La validation applique toutes les règles d'approbation définies dans la politique d'approbation qui ont été mises en correspondance lors de l'appel à l'API holdTokens. La validation s'exécute pour chaque approbateur en séquence selon les étapes suivantes.
- Valider l'identité de l'approbateur : Vérifie si l'utilisateur courant existe dans la liste d'approbateurs requise à partir de la politique d'approbation.
- Valider l'ordre de séquence : Vérifie si l'approbateur courant est l'approbateur attendu à la position de séquence courante.
- Rechercher une approbation en double : Empêche le même approbateur d'approuver la même transaction plusieurs fois.
- Validation de la politique de compte : Exécute à nouveau la validation de la politique de compte pour s'assurer que les statuts de compte de l'expéditeur et du destinataire n'ont pas été modifiés depuis la création du blocage.
- Record Approval (Approbation de l'enregistrement) : enregistre l'approbation avec un horodatage, incrémente le nombre d'approbations et vérifie si toutes les approbations requises sont terminées.