Flujo de trabajo de la aplicación Stablecoin
Una stablecoin es un token fungible que representa la moneda digital con cumplimiento integrado.
El escenario de stablecoin exige conocer las políticas de sus clientes (KYC) y contra el lavado de dinero (AML), las restricciones de transferencia y las aprobaciones de varias partes. El sistema admite transferencias directas y transferencias basadas en retenciones, que requieren aprobación antes de que se produzca la transferencia.
- Se requieren roles de minero, quemador y notario.
- La política de cuentas aplica indicadores de restricción y KYC/AML.
- La política de aprobación define umbrales y requisitos de aprobador secuenciales para transferencias basadas en retenciones.
- Las restricciones de transferencia son opcionales y se pueden configurar en cualquier momento.
- La coincidencia de políticas de aprobación se utiliza para determinar si las aprobaciones son necesarias cuando se utiliza la API
holdTokens. - Las API de historial de transacciones soportan la auditoría y la supervisión.
| Actor | Función | Descripción |
|---|---|---|
| Administrator | Administrador de token | Inicializa el sistema, asigna roles, crea cuentas y políticas de aprobación. |
| Minuto | Minuto | Solicita la extracción de tokens. |
| Aprobador de menta | Notario | Aprueba o rechaza las peticiones de moneda. |
| Aprobador de consumo | Notario | Aprueba o rechaza las solicitudes de grabación. |
| Remitente | ninguno | Permite iniciar transferencias directas o basadas en retenciones. |
| Responsable de Aprobación | ninguno | Aprueba las transacciones en una secuencia definida. Los aprobadores son titulares de cuentas normales que se han especificado como aprobadores en la política de aprobación (no por un rol asignado). |
| Notario | Notario | Completa o libera transferencias basadas en retenciones después de la aprobación. |
| Receptor | ninguno | Recibe tokens transferidos. |
| Auditor | Auditor de token | Consulta el historial de transacciones con fines de conformidad y generación de informes. |
- Inicialice una stablecoin mediante la API
initializeStablecoinToken. - Registre organizaciones mediante la API
registerOrg. - Cree cuentas mediante las API
createAccountyassociateTokenToAccount. - Asigne los roles de minter, burner y notary a las cuentas adecuadas mediante la API
addRole. - Cree políticas de cuenta mediante la API
createStablecoinAccountPolicyCheck. - Cree políticas de aprobación mediante la API
createApprovalPolicyCheck.
- Monedas estables de menta.
- El minter utiliza la API
requestMintpara enviar una solicitud a mint stablecoins. - El aprobador de moneda utiliza la API
approveMintpara revisar y aprobar la solicitud de moneda estable. Como alternativa, el aprobador de moneda puede utilizar la APIrejectMintpara denegar la solicitud.
- El minter utiliza la API
- Transferir monedas estables sin aprobaciones.
- El remitente utiliza la API
transferTokenspara enviar stablecoins a un usuario.
- El remitente utiliza la API
- Transferencia de monedas estables con aprobaciones.
- El remitente utiliza la API
holdTokenspara solicitar la transferencia de los tokens. - Si es necesario, los aprobadores utilizan la API
approveTransactionpara aprobar la transferencia, según lo especificado por la política de aprobación. - El notario utiliza la API
executeHoldTokenspara aprobar la solicitud de transferencia. Como alternativa, el notario puede utilizar la APIreleaseHoldpara rechazar la transferencia.
- El remitente utiliza la API
- Verifique el saldo del token.
- Los usuarios pueden utilizar la API
getAccountBalancepara obtener la cantidad de monedas estables que tienen.
- Los usuarios pueden utilizar la API
- Grabar tokens.
- Los usuarios pueden utilizar la API
requestBurnpara enviar una solicitud para quemar sus stablecoins. - El aprobador de grabación utiliza la API
approveBurnpara revisar y aprobar la solicitud. Como alternativa, el aprobador de grabación puede utilizar la APIrejectBurnpara denegar la solicitud.
- Los usuarios pueden utilizar la API
- Auditoría del historial de transacciones.
- Los auditores y usuarios pueden utilizar las API
getAccountTransactionHistoryygetAccountTransactionHistoryWithFilterspara obtener el historial de transacciones para la auditoría y la generación de informes.
- Los auditores y usuarios pueden utilizar las API
Validación de política de cuenta
Las políticas de cuentas son obligatorias para todas las cuentas que transfieren o mantienen monedas estables. Las políticas de cuentas se validan en las siguientes API: transferTokens, holdTokens, approveTransaction, executeHoldTokens.
Cada política de cuenta incluye tres parámetros: KYC, AML y restrictionFlag. Estos se validan tanto para el remitente como para el receptor antes de transferir cualquier token.
-
KYC(Conozca a su cliente) - La transferencia solo se permite cuando los valores de KYC son
truepara las cuentas de remitente y de receptor. -
AML(Antilavado de dinero) - La transferencia solo se permite cuando los valores de lista de fabricantes aprobados son
truepara las cuentas de remitente y de receptor. -
restrictionFlag - Si el indicador de restricción se define en
falsepara la cuenta de remitente y de receptor, la validación pasa. Si el indicador de restricción se define entruepara la cuenta del remitente o del receptor, para las APIholdTokens,approveTransactionyexecuteHoldTokens, la transferencia solo se permite si existe una política de aprobación más baja disponible y si el importe está dentro de los límites de la política. De lo contrario, la transferencia está bloqueada. Para el métodotransferTokens, la transferencia solo se permite si el importe está en los límites inferior y superior de los límites de restricción de transferencia.
Coincidencia de política de aprobación
La coincidencia de políticas de aprobación se dispara después de una llamada a la API holdTokens. Las políticas de aprobación definen los umbrales de transacción, el número necesario de aprobaciones y los detalles del aprobador, y definen la secuencia para las aprobaciones de varios niveles. Una política de aprobación es obligatoria para una operación de retención. Sin una política de aprobación, los usuarios no pueden retener ni transferir tokens cuando se aplican restricciones.
La coincidencia de políticas de aprobación determina si las aprobaciones son necesarias para que el notario pueda completar la transferencia de retención. Si se necesitan aprobaciones, la coincidencia de políticas de aprobación determina qué aprobadores son necesarios y en qué secuencia.
Si no se define ningún indicador de restricción para el remitente y el receptor, el importe de retención se compara con todos los umbrales de política de aprobación configurados para buscar una coincidencia. Si se encuentra una coincidencia, se utilizan los aprobadores y la secuencia correspondientes. Si no se encuentra ninguna coincidencia, no se requiere aprobación y la transacción continúa directamente con el notario.
Si se define un indicador de restricción para el remitente o el destinatario, se utiliza la política de aprobación más baja disponible. Si no hay ninguna política disponible, la transacción se bloquea.
- Aprobadores necesarios
- Secuencia de aprobación
- Número necesario de aprobaciones
Aprobación de transacción
La validación de aprobación de transacciones se dispara después de una llamada a la API approveTransaction. La validación aplica todas las reglas de aprobación que se definen en la política de aprobación que se confrontó durante la llamada a la API holdTokens. La validación se ejecuta para cada aprobador en secuencia de acuerdo con los siguientes pasos.
- Validar identidad de aprobador: comprueba si el usuario actual existe en la lista de aprobadores necesarios de la política de aprobación.
- Validar orden de secuencia: comprueba si el aprobador actual es el aprobador esperado en la posición de secuencia actual.
- Comprobación de aprobación duplicada: impide que el mismo aprobador apruebe la misma transacción más de una vez.
- Validación de política de cuenta: vuelve a ejecutar la validación de política de cuenta para asegurarse de que los estados de cuenta del remitente y del receptor no hayan cambiado desde que se creó la retención.
- Aprobación de registros: registra la aprobación con registro de hora, incrementa el recuento de aprobaciones y comprueba si se han completado todas las aprobaciones necesarias.