Criando um flash loan usando Aave
Escrito por Alchemy
Introdução
Neste tutorial, vamos:
- Criar e implantar um smart contract de Flash loan
- Receber financiamento com o protocolo de liquidez chamado Aave
- Transacionar com nosso contrato implantado para executar um Flash loan
Antes de começar, vamos olhar cada um dos blocos que compõem este projeto:
O que é um flash loan?
Nas finanças tradicionais, os tomadores de empréstimo muitas vezes precisam oferecer uma garantia para receber um empréstimo. Essa garantia costuma ser um ativo como um carro ou um imóvel. Os bancos usam essa garantia como segurança para cobrir perdas caso o tomador não pague.
No mundo das Finanças Descentralizadas (DeFi), um tomador pode receber um empréstimo sem precisar fornecer garantia usando flash loans.
Em um flash loan, os credores podem tanto fornecer um empréstimo a um tomador quanto ser pagos por esse empréstimo em uma única transação. Isso é possível por causa do intervalo de tempo entre o início de uma transação e o momento em que ela é finalmente registrada em um bloco na blockchain.
Aqui estão as etapas de um flash loan:
-
O tomador executa um smart contract de Flash loan
-
Um contrato de flash loan solicita um valor de empréstimo do pool de liquidez
-
O contrato então usa os fundos do empréstimo para executar operações definidas (por exemplo, negociação em uma exchange)
-
Após a conclusão das operações, os fundos emprestados são devolvidos ao pool de liquidez
-
A transação é registrada na blockchain
Smart contracts nos permitem validar que:
- O flash loan possui os fundos necessários para realizar as operações definidas no smart contract.
- As operações são concluídas antes que a transação seja adicionada a um novo bloco
- As operações não resultam em perda de fundos para o tomador.
- O pool de empréstimo é reembolsado com o valor correto + uma taxa de transação pelo uso do protocolo.
O tomador pode fazer o que quiser com os fundos, desde que o valor correto seja devolvido ao credor. Alguns casos de uso comuns de Flash Loans são:
-
Arbitragem - levar um token de uma exchange para outra com valor mais alto para obter lucro
-
Troca de Garantia - trocar tokens usados como garantia de empréstimos por outro token como garantia de um empréstimo existente
-
Auto-liquidação - quitar um empréstimo garantido trocando tokens e pagando o flash loan
Antes que um contrato de flash loan seja executado, o contrato precisa ser financiado. O financiamento de flash loans normalmente vem de um protocolo de empréstimo principal, o Aave.
Os mecanismos de um flash loan facilitam a tomada de empréstimo porque não exigem nenhuma garantia. Esse recurso também pode expor o flash loan a atacantes que realizam ataques de flash loan. Um ataque de flash loan ocorre quando um tomador pega fundos emprestados, manipula o preço do ativo e depois devolve o ativo emprestado obtendo um grande lucro para si. Isso geralmente é feito comprometendo o oráculo de precificação ou criando movimentos artificiais no mercado. Escolher oráculos descentralizados como Chainlink e auditar smart contracts por meio de serviços como OpenZepplin são medidas para prevenir esse tipo de ataque.
O que é Aave?
Nos empréstimos tradicionais, os bancos fornecem o financiamento. No DeFi, o Protocolo Aave é a maior fonte de financiamento para flash loans. O Aave permite que os usuários forneçam pools de liquidez de Tokens ERC20. Os tomadores podem então usar esses pools para receber empréstimos. Dependendo do tipo de empréstimo, os tomadores pagam uma taxa de juros que vai para os fornecedores, que recebem juros pelos tokens que fornecem. Atualmente o protocolo Aave também cobra uma taxa de transação de 0,09%.
Vamos ver como todos esses conceitos se juntam para criar um flash loan:
Requisitos
-
Acesso à Remix IDE
-
Criação de uma Carteira Metamask
-
Acesso aos Github Gists - Código do Smart Contract
Obtendo o código do smart contract
-
Abra um novo workspace na Remix IDE.
-
Em uma aba separada, abra o Github Gists aqui. Ele contém o código do smart contract que usaremos para criar nosso flash loan.
-
Crie novos arquivos de contrato na Remix IDE com exatamente os nomes abaixo e copie e cole o código correspondente a cada arquivo (6):
-
Flashloan.sol
-
FlashloanRecieverBase.sol
-
IFlashLoanReciever.sol
-
ILendingPool.sol
-
ILendingPoolAnddressesProvider.sol
-
Withdrawable.sol

Sobre os contratos
Flashloan.sol - Este é o smart contract do flash loan. Ele contém uma função ExecuteOperation que o contrato
chamará para concluir as operações que usarão os fundos do empréstimo.
FlashLoanRecieverBase.sol / IFlashLoanReciever.sol - É o que permite que o contrato receba os fundos do flash loan
ILendingPool.sol / ILendingPoolAddressProvider.sol - Aponta para os pools de empréstimo da Aave que financiarão o flash loan
Withdrawable.sol - Permite que outros contratos retirem fundos deste contrato em caso de fundos incorretos ou travados
Adicionar fundos à carteira
Vamos usar a Kovan Test Network para implantar e executar nosso contrato de flash loan. Precisamos ter fundos em nossa carteira para conseguir fazer isso:
-
Vá para https://faucets.chain.link/kovan
-
Insira o endereço da sua carteira:
-
Selecione a Kovan Network na sua Carteira Metamask

- Certifique-se de selecionar .1 Test Eth

-
Aguarde a confirmação de que os tokens foram transferidos
-
Os fundos devem ser adicionados à sua Carteira Metamask
Implantar o contrato
Agora que temos alguns fundos em nossa carteira, é hora de implantar o smart contract na Kovan Testnet para que possamos executá-lo e interagir com ele.
- Vá para o Compilador Solidity no painel lateral dentro do Remix

- Use as configurações abaixo:
Compiler: 0.6.6+comitt.6c…
Language: Solidity
EVM Version: Default
Compile Flashloan.sol

- Clique em 'Compile' - você pode receber alguns avisos, mas nenhum erro, se tudo tiver sido feito corretamente
Depois de compilar o smart contract do flash loan, precisamos implantá-lo:
- Vá para a aba 'Deploy and Run Transactions'

- Use as seguintes configurações:
Environment: Injected Web3
Account: Copie e cole o endereço da sua carteira Kovan
Contract: Flashloan - contracts/Flashloan

- Adicione o contrato do Lending Pool como address_addressProvider: 0x506B0B2CF20FAA8f38a4E2B524EE43e1f4458Cc5 . Este é o endereço do provedor de empréstimo da Aave. Você pode encontrar outros endereços de contrato aqui.

-
Clique em 'Deploy'
-
O Metamask deve abrir uma janela para você 'Confirmar' a transação. Dentro do seu terminal, você verá o link para visualizar sua transação no etherscan.

Adicionar fundos ao flash loan
Nosso smart contract agora foi implantado na Kovan Test Network. Precisaremos adicionar fundos ao contrato a partir do pool de empréstimo da testnet da Aave.
-
Vá para esta página: https://staging.aave.com/?marketName=proto_kovan
-
Conecte sua Carteira Metamask
-
Certifique-se de que está usando o 'Kovan Ethereum Market'. Haverá um pequeno 'K'

Observação: Pode ser necessário ativar o 'Modo Testnet' nas suas configurações.

- Forneça um pouco de Eth de teste à Aave clicando no botão 'Supply' em 'Assets to supply'. Podemos começar com .001

- Em seguida, tome emprestado um pouco de DAI clicando no botão 'Borrow' ao lado de DAI. Tome emprestado 10 DAI.

- O Metamask deve abrir para confirmar a transação, e o DAI aparecerá na sua carteira assim que a transação for concluída:

- Se esta for a primeira vez que você recebe DAI, será necessário configurar sua carteira para conseguir ver o DAI nela.
- Vá para 'Import Tokens' dentro do Metamask

- Insira o endereço do contrato DAI para Kovan: 0xFf795577d9AC8bD7D90Ee22b6C170349
- Depois de ter DAI na sua carteira, envie 10 DAI para o seu contrato implantado. Você pode obter o endereço do seu contrato implantado copiando-o do Remix:

Então envie para o endereço usando o Metamask:

Executar o contrato de flash loan
Agora precisamos chamar o contrato de DAI da KovanTestnet da Aave para indicar qual ativo usaremos para executar o smart contract.
-
Volte para a sua Remix IDE e para a aba 'Deploy & Run Transactions'
-
Em 'Deployed Contracts' você verá seu flash loan e o endereço do contrato

- Vá para o campo de texto rotulado 'address asset' ao lado do rótulo 'flashloan'

-
Insira este endereço de contrato no campo address_asset: 0xFf795577d9AC8bD7D90Ee22b6C1703490b6512FD . Depois clique no botão do rótulo flashloan para iniciar a transação.
-
Isso iniciará o processo de flash loan e gerará 3 transações no etherscan.

A primeira transação é do pool de empréstimo para o nosso contrato de flash loan. Como não incluímos nenhuma operação no smart contract, o valor é devolvido ao pool de empréstimo mais uma taxa adicional. A última transação é o juro do valor emprestado, que vai para os fornecedores do pool de liquidez.
Visões gerais relacionadas
DeFi12 de junho de 2026
O que são agentes de IA para DeFi? Casos de uso, riscos e arquitetura
Agentes de IA para DeFi, também chamados de agentes DeFAI, são sistemas autônomos que podem raciocinar, assinar e liquidar onchain sob controles de política.
DeFi5 de setembro de 2025
As 5 principais estratégias de segurança para carteiras DeFi em 2025
Ataques off-chain causaram 80,4% das perdas em cripto em 2024. Smart wallets oferecem mais segurança, veja como.
DeFi29 de agosto de 2023
O que é liquid staking token finance (LSTfi)?
Conheça a nova categoria de protocolos DeFi que criam estratégias de rendimento sobre liquid staking

Construa magia blockchain
A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.