Workflow de l'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 de votre client (KYC) et de 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 en attente, qui doivent être approuvés avant le transfert.

  • Les rôles d'interprète, de brûleur et de notaire sont requis.
  • La stratégie de compte applique les indicateurs KYC/AML et de restriction.
  • La stratégie d'approbation définit des seuils et des exigences d'approbateur séquentielles pour les transferts basés sur le blocage.
  • Les restrictions de transfert sont facultatives et peuvent être configurées à tout moment.
  • La mise en correspondance des stratégies d'approbation permet de déterminer si des approbations sont requises lorsque l'API holdTokens est utilisée.
  • Les API d'historique des transactions prennent en charge l'audit et la surveillance.
Le tableau suivant récapitule les acteurs de ce scénario.
Acteur Rôle Description
Administrateur Administration des jetons Initialise le système, affecte des rôles, crée des stratégies de compte et d'approbation.
Minter Minter Demandes d'extraction de jetons.
Approbateur Mint Notaire Approuve ou rejette les demandes de minutes.
Approbateur Notaire Approuve ou rejette les demandes de brûlure.
Expéditeur Aucun élément Lance les transferts directs ou en attente.
Approbateur Aucun élément Approuve les transactions dans une séquence définie. Les approbateurs sont des titulaires de compte standard qui ont été définis en tant qu'approbateurs dans la politique d'approbation (et non par un rôle affecté).
Notaire Notaire Termine ou débloque les transferts bloqués après approbation.
Destinataire Aucun élément Reçoit les jetons transférés.
Auditeur Auditeur de jeton Interroge l'historique des transactions à des fins de conformité et de reporting.
L'administrateur effectue les étapes suivantes pour initialiser le système.
  1. Initialisez un stablecoin à l'aide de l'API initializeStablecoinToken.
  2. Inscrivez des organisations à l'aide de l'API registerOrg.
  3. Créez des comptes à l'aide des API createAccount et associateTokenToAccount.
  4. Affectez les rôles mineur, brûleur et notaire aux comptes appropriés à l'aide de l'API addRole.
  5. Créez des stratégies de compte à l'aide de l'API createStablecoinAccountPolicyCheck.
  6. Créez des stratégies d'approbation à l'aide de l'API createApprovalPolicyCheck.
Une fois le système initialisé, un flux de processus standard suit ces étapes de base.
  1. Stables de menthe.
    1. Le minter utilise l'API requestMint pour soumettre une demande de monnaies stables.
    2. L'approbateur de menthe utilise l'API approveMint pour vérifier et approuver la demande de menthe stablecoins. L'approbateur de menthe peut également utiliser l'API rejectMint pour refuser la demande.
  2. Transférer des stablecoins sans approbation.
    • L'expéditeur utilise l'API transferTokens pour envoyer des stablecoins à un utilisateur.
  3. Transférez des stablecoins avec des approbations.
    1. L'expéditeur utilise l'API holdTokens pour demander le transfert des jetons.
    2. Si nécessaire, les approbateurs utilisent l'API approveTransaction pour approuver le transfert, comme indiqué par la stratégie d'approbation.
    3. Le notaire utilise l'API executeHoldTokens pour approuver la demande de transfert. Le notaire peut également utiliser l'API releaseHold pour rejeter le transfert.
  4. Vérifiez l'équilibre du jeton.
    • Les utilisateurs peuvent utiliser l'API getAccountBalance pour obtenir la quantité de stablecoins qu'ils détiennent.
  5. Brûler les jetons.
    1. Les utilisateurs peuvent utiliser l'API requestBurn pour soumettre une demande de gravure de leurs stablecoins.
    2. L'approbateur de gravure utilise l'API approveBurn pour vérifier et approuver la demande. L'approbateur de gravure peut également utiliser l'API rejectBurn pour refuser la demande.
  6. Auditez l'historique des transactions.
    • Les auditeurs et les utilisateurs peuvent utiliser les API getAccountTransactionHistory et getAccountTransactionHistoryWithFilters pour obtenir l'historique des transactions pour l'audit et le reporting.

Validation de la stratégie du compte

Les stratégies de compte sont obligatoires pour tous les comptes qui transfèrent ou détiennent des pièces stables. Les stratégies de compte sont validées dans les API suivantes : transferTokens, holdTokens, approveTransaction, executeHoldTokens.

Chaque stratégie de compte inclut trois paramètres : KYC, AML et restrictionFlag. Ceux-ci sont validés pour l'expéditeur et le destinataire avant tout transfert de jetons.

KYC (Connaître son client)
Le transfert n'est autorisé que lorsque les valeurs KYC sont true pour les comptes émetteur et récepteur.
AML (Anti-blanchiment d'argent)
Le transfert n'est autorisé que lorsque les valeurs AML sont true pour les comptes émetteur et récepteur.
restrictionFlag
Si l'indicateur de restriction est défini sur false pour le compte expéditeur et le compte destinataire, la validation réussit. Si l'indicateur de restriction est défini sur true pour le compte de l'expéditeur ou du destinataire, pour les API holdTokens, approveTransaction et executeHoldTokens, le transfert n'est autorisé que s'il existe une stratégie d'approbation disponible la plus basse et si le montant respecte les limites de la stratégie. Sinon, le transfert est bloqué. Pour la méthode transferTokens, 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 des stratégies d'approbation

La mise en correspondance de stratégies d'approbation est déclenchée après un appel à l'API holdTokens. Les stratégies d'approbation définissent les seuils de transaction, le nombre requis d'approbations et les détails des approbateurs, et définissent la séquence pour les approbations à plusieurs niveaux. Une stratégie d'approbation est obligatoire pour une opération de blocage. Sans stratégie d'approbation, les utilisateurs ne peuvent pas détenir ou transférer de jetons lorsque des restrictions s'appliquent.

La mise en correspondance des stratégies d'approbation détermine si des approbations sont requises pour que le notaire puisse terminer le transfert de blocage. Si des approbations sont requises, la mise en correspondance des stratégies d'approbation détermine quels approbateurs sont nécessaires et dans quel ordre.

Si aucun indicateur de restriction n'est défini pour l'expéditeur et le destinataire, le montant du blocage est comparé à tous les seuils de stratégie d'approbation configurés pour rechercher 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 est transmise directement au notaire.

Si un indicateur de restriction est défini pour l'expéditeur ou le destinataire, la stratégie d'approbation la plus basse disponible est utilisée. Si aucune stratégie n'est disponible, la transaction est bloquée.

Une fois qu'une correspondance de stratégie est déterminée, les détails suivants sont extraits de la stratégie à utiliser dans le processus d'approbation :
  • Approbateurs requis
  • Séquence d'approbation
  • Nombre d'approbations requis

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 stratégie d'approbation qui ont été mises en correspondance lors de l'appel de l'API holdTokens. La validation est exécutée pour chaque approbateur dans l'ordre suivant les étapes suivantes.

  1. Valider l'identité de l'approbateur : vérifie si l'utilisateur en cours existe dans la liste des approbateurs requis à partir de la stratégie d'approbation.
  2. Valider l'ordre des séquences : vérifie si l'approbateur actuel est l'approbateur attendu à la position de séquence actuelle.
  3. Vérifier l'approbation en double : empêche le même approbateur d'approuver plusieurs fois la même transaction.
  4. Validation de la stratégie de compte : exécute à nouveau la validation de la stratégie de compte pour s'assurer que les statuts de compte de l'expéditeur et du destinataire n'ont pas changé depuis la création du blocage.
  5. Enregistrer l'approbation : enregistre l'approbation avec un horodatage, incrémente le nombre d'approbations et vérifie si toutes les approbations requises sont terminées.
Si toutes les approbations sont enregistrées, la transaction est marquée comme prête à être finalisée par le notaire. Si d'autres approbations sont nécessaires, l'approbateur suivant est attendu dans l'ordre.