Esta análise foca exclusivamente nos fluxos de entrada (On-Ramp) e saída (Off-Ramp) de Reais para BRLA (Stablecoin), utilizando a API da Avenia.
Neste cenário, o usuário envia Reais via PIX e recebe BRLA na sua carteira.
async function onRampBrlToBrla(amountBrl, walletAddress) {
// 1. Cotação (BRL -> BRLA)
const quote = await api.get('/account/quote/fixed-rate', {
params: {
inputCurrency: 'BRL',
inputPaymentMethod: 'PIX',
inputAmount: amountBrl,
outputCurrency: 'BRLA',
outputPaymentMethod: 'POLYGON', // Ou outra chain suportada
}
});
// 2. Criar Ticket
const ticket = await api.post('/account/tickets', {
quoteToken: quote.data.quoteToken,
ticketBlockchainOutput: {
beneficiaryWalletId: walletAddress
// Dica: Use beneficiaryWalletId para wallets cadastradas
}
});
// Retorna o código PIX para o front exibir
return ticket.data.brCode;
}
Neste cenário, o usuário envia BRLA da sua carteira e recebe Reais na sua conta bancária via PIX.
async function offRampBrlaToBrl(amountBrla, userWallet, userPixKey) {
// 1. Cotação (BRLA -> BRL)
const quote = await api.get('/account/quote/fixed-rate', {
params: {
inputCurrency: 'BRLA',
inputPaymentMethod: 'POLYGON', // Origem dos tokens
inputAmount: amountBrla,
outputCurrency: 'BRL',
outputPaymentMethod: 'PIX',
blockchainSendMethod: 'PERMIT' // Fluxo automático
}
});
// 2. Obter Assinatura (No Front-end)
// ... Código do front para obter signature EIP-2612 do usuário ...
const permitData = await getDigitalSignatureFromUser(userWallet, amountBrla);
// 3. Criar Ticket com Permit e Destino PIX
const ticket = await api.post('/account/tickets', {
quoteToken: quote.data.quoteToken,
// De onde sai o BRLA (Com permissão de saque)
ticketBlockchainInput: {
walletAddress: userWallet,
permit: permitData // { r, s, v, nonce, deadline }
},
// Para onde vai o R$ (Chave PIX)
ticketBrlPixOutput: {
pixKey: userPixKey
}
});
return ticket.data.id;
}
Independentemente se é On-Ramp ou Off-Ramp, a confirmação final deve ser monitorada.
TICKET-COMPLETE.GET /account/tickets/{id} até status === 'COMPLETED'.DEPOSIT-SUCCESS: Avenia recebeu o ativo de entrada (R$ no On-Ramp, BRLA no Off-Ramp).TICKET-COMPLETE: Avenia entregou o ativo de saída (BRLA no On-Ramp, R$ no Off-Ramp). A operação acabou.