Fluxo de trabalho de aplicação Stablecoin
Uma stablecoin é um token fungível que representa a moeda digital com aplicação de conformidade integrada.
O cenário de stablecoin impõe conhecer as políticas de seu cliente (KYC) e combate à lavagem de dinheiro (AML), restrições de transferência e aprovações de várias partes. O sistema suporta transferências diretas e transferências baseadas em retenção, que exigem aprovação antes da ocorrência da transferência.
- As funções de mineiro, queimador e notário são necessárias.
- A política de conta impõe indicadores de KYC/AML e restrição.
- A política de aprovação define limites e requisitos de aprovador sequencial para transferências baseadas em retenção.
- As restrições de transferência são opcionais e podem ser configuradas a qualquer momento.
- A correspondência da política de aprovação é usada para determinar se as aprovações são necessárias quando a API
holdTokensé usada. - As APIs de histórico de transações suportam auditoria e monitoramento.
| Ator | Atribuição | Descrição |
|---|---|---|
| Administrator | Administração de token | Inicializa o sistema, atribui funções, cria políticas de conta e aprovação. |
| Minter | Minter | Solicita cunhagem de tokens. |
| Aprovador da Moeda | Notário | Aprova ou rejeita solicitações de hortelã. |
| Burndown - Aprovador | Notário | Aprova ou rejeita solicitações de gravação. |
| Remetente | nenhuma | Inicia transferências diretas ou baseadas em retenção. |
| Aprovador | nenhuma | Aprova transações em uma sequência definida. Os aprovadores são titulares regulares da conta que especificaram como aprovadores na política de aprovação (não por uma função atribuída). |
| Notário | Notário | Conclui ou libera transferências baseadas em retenção após a aprovação. |
| Receptor | nenhuma | Recebe tokens transferidos. |
| Auditor | Auditor de Token | Consulta o histórico de transações para fins de conformidade e geração de relatórios. |
- Inicialize uma stablecoin usando a API
initializeStablecoinToken. - Registre organizações usando a API
registerOrg. - Crie contas usando as APIs
createAccounteassociateTokenToAccount. - Atribua as atribuições minter, burner e notary às contas apropriadas usando a API
addRole. - Crie políticas de conta usando a API
createStablecoinAccountPolicyCheck. - Crie políticas de aprovação usando a API
createApprovalPolicyCheck.
- Mint stablecoins.
- O mineiro usa a API
requestMintpara enviar uma solicitação para mint stablecoins. - O aprovador de hortelã usa a API
approveMintpara revisar e aprovar a solicitação para hortelã stablecoins. Como alternativa, o aprovador da hortelã pode usar a APIrejectMintpara negar a solicitação.
- O mineiro usa a API
- Transferir stablecoins sem aprovações.
- O remetente usa a API
transferTokenspara enviar stablecoins a um usuário.
- O remetente usa a API
- Transferir stablecoins com aprovações.
- O remetente usa a API
holdTokenspara solicitar a transferência dos tokens. - Se necessário, os aprovadores usam a API
approveTransactionpara aprovar a transferência, conforme especificado pela política de aprovação. - O notário usa a API
executeHoldTokenspara aprovar a solicitação de transferência. Como alternativa, o notário pode usar a APIreleaseHoldpara rejeitar a transferência.
- O remetente usa a API
- Verifique o saldo do token.
- Os usuários podem usar a API
getAccountBalancepara obter a quantidade de stablecoins que possuem.
- Os usuários podem usar a API
- Queimar tokens.
- Os usuários podem usar a API
requestBurnpara enviar uma solicitação para gravar suas stablecoins. - O aprovador de gravação usa a API
approveBurnpara analisar e aprovar a solicitação. Como alternativa, o aprovador de gravação pode usar a APIrejectBurnpara negar a solicitação.
- Os usuários podem usar a API
- Audite o histórico da transação.
- Auditores e usuários podem usar as APIs
getAccountTransactionHistoryegetAccountTransactionHistoryWithFilterspara obter o histórico de transações para auditoria e geração de relatórios.
- Auditores e usuários podem usar as APIs
Validação da apólice da conta
As políticas de conta são obrigatórias para todas as contas que transferem ou mantêm stablecoins. As políticas de conta são validadas nas seguintes APIs: transferTokens, holdTokens, approveTransaction, executeHoldTokens.
Cada política de conta inclui três parâmetros: KYC, AML e restrictionFlag. Estes são validados para remetente e destinatário antes de quaisquer tokens serem transferidos.
-
KYC(Conheça seus Clientes) - A transferência só é permitida quando os valores de KYC são
truepara as contas do remetente e do recebedor. -
AML(Antilavagem de Dinheiro) - A transferência só é permitida quando os valores de AML são
truepara as contas do remetente e do recebedor. -
restrictionFlag - Se o indicador de restrição estiver definido como
falsepara a conta do remetente e do recebedor, a validação será aprovada. Se o flag de restrição for definido comotruepara a conta do remetente ou do recebedor, para as APIsholdTokens,approveTransactioneexecuteHoldTokens, a transferência só será permitida se existir uma política de aprovação disponível mais baixa e se o valor estiver dentro dos limites da política. Caso contrário, a transferência será bloqueada. Para o métodotransferTokens, a transferência só será permitida se o valor estiver nos limites inferior e superior dos limites de restrição de transferência.
Correspondência da Política de Aprovação
A correspondência da política de aprovação é acionada após uma chamada para a API holdTokens. As políticas de aprovação definem limites de transação, números obrigatórios de aprovações e detalhes do aprovador e definem a sequência para aprovações de vários níveis. Uma política de aprovação é obrigatória para uma operação de retenção. Sem uma política de aprovação, os usuários não podem manter ou transferir tokens quando as restrições se aplicam.
A correspondência da política de aprovação determina se as aprovações são necessárias para que o notário possa concluir a transferência de retenção. Se as aprovações forem necessárias, a correspondência da política de aprovação determinará quais aprovadores serão necessários e em qual sequência.
Se nenhum indicador de restrição for definido para remetente e recebedor, a quantia de retenção será comparada com todos os limites da política de aprovação configurados para localizar uma correspondência. Se uma correspondência for encontrada, os aprovadores e a sequência correspondentes serão usados. Se nenhuma correspondência for encontrada, nenhuma aprovação será necessária e a transação será encaminhada diretamente ao notário.
Se um indicador de restrição for definido para remetente ou destinatário, a política de aprovação mais baixa disponível será usada. Se nenhuma política estiver disponível, a transação será bloqueada.
- Aprovadores Obrigatórios
- Sequência de aprovação
- Número necessário de aprovações
Aprovação de Transação
A validação da aprovação da transação é acionada após uma chamada para a API approveTransaction. A validação impõe todas as regras de aprovação definidas na política de aprovação que foi correspondida durante a chamada à API holdTokens. A validação é executada para cada aprovador em sequência de acordo com as etapas a seguir.
- Validar Identidade do Aprovador: Verifica se o usuário atual existe na lista de aprovadores obrigatórios da política de aprovação.
- Validar Ordem de Sequência: Verifica se o aprovador atual é o aprovador esperado na posição de sequência atual.
- Verificar Aprovação Duplicada: Impede que o mesmo aprovador aprove a mesma transação mais de uma vez.
- Validação da Política da Conta: Executa a validação da política da conta novamente para garantir que os status da conta do remetente e do Receptor não tenham sido alterados desde a criação da retenção.
- Aprovação do Registro: Registra a aprovação com carimbo de data/hora, incrementa a contagem de aprovações e verifica se todas as aprovações necessárias foram concluídas.