Creando un flash loan usando Aave
Escrito por Alchemy
Introducción
En este tutorial, vamos a:
- Crear y desplegar un contrato inteligente de Flash loan
- Recibir financiamiento con el protocolo de liquidez llamado Aave
- Interactuar con nuestro contrato desplegado para ejecutar un Flash loan
Antes de empezar, veamos cada uno de los componentes de este proyecto:
¿Qué es un flash loan?
En las finanzas tradicionales, muchas veces se le exige a los prestatarios ofrecer una garantía para recibir un préstamo. Esta garantía suele ser un activo como un auto o una casa. Los bancos usan esta garantía como respaldo para cubrir pérdidas si el prestatario no paga.
En el mundo de las Finanzas Descentralizadas (DeFi), un prestatario puede recibir un préstamo sin necesidad de dar una garantía usando flash loans.
En un flash loan, los prestamistas pueden otorgar un préstamo a un prestatario y recibir el pago de ese préstamo en una sola transacción. Esto es posible por el tiempo que transcurre entre el inicio de una transacción y el momento en que finalmente se confirma en un bloque de la blockchain.
Estos son los pasos de un flash loan:
-
El prestatario ejecuta un contrato inteligente de Flash loan
-
El contrato de flash loan solicita un monto de préstamo al pool de liquidez
-
El contrato usa los fondos del préstamo para ejecutar las operaciones definidas (por ejemplo, trading en un exchange)
-
Una vez completadas las operaciones, los fondos prestados se devuelven al pool de liquidez
-
La transacción se confirma en la blockchain
Los contratos inteligentes nos permiten validar que:
- El flash loan cuenta con los fondos necesarios para realizar las operaciones del contrato inteligente.
- Las operaciones se completan antes de que la transacción se agregue a un nuevo bloque
- Las operaciones no generan una pérdida de fondos para el prestatario.
- Al pool de préstamos se le devuelve el monto correcto + una comisión de transacción por usar el protocolo.
El prestatario puede hacer lo que quiera con los fondos siempre y cuando le devuelva al prestamista el monto correcto prestado. Algunos casos de uso comunes de los Flash Loans son:
-
Arbitraje de trading - llevar un token de un exchange a otro con un valor más alto para obtener una ganancia
-
Intercambio de garantías - intercambiar los tokens de garantía de un préstamo por otro token como garantía de un préstamo existente
-
Autoliquidación - pagar un préstamo garantizado intercambiando tokens y devolviendo el flash loan
Antes de que se ejecute un contrato de flash loan, el contrato debe estar financiado. El financiamiento de los flash loans generalmente proviene de un protocolo de préstamos principal, Aave.
Los mecanismos de un flash loan facilitan el préstamo porque no requieren ninguna garantía. Esta característica también puede exponer a un flash loan a atacantes que realizan ataques de flash loan. Un ataque de flash loan ocurre cuando un prestatario pide fondos prestados, manipula el precio del activo y luego devuelve el activo prestado obteniendo una gran ganancia para sí mismo. Esto se hace normalmente comprometiendo el oráculo de precios o creando movimientos artificiales en el mercado. Elegir oráculos descentralizados como Chainlink y auditar los contratos inteligentes mediante servicios como OpenZepplin son medidas para prevenir este tipo de ataques.
¿Qué es Aave?
En los préstamos tradicionales, los bancos aportan el financiamiento. En DeFi, el Protocolo Aave es la mayor fuente de financiamiento para flash loans. Aave permite a los usuarios aportar pools de liquidez de Tokens ERC20. Los prestatarios pueden usar estos pools para recibir préstamos. Dependiendo del tipo de préstamo, los prestatarios pagan una tasa de interés que va a los proveedores de liquidez como interés por los tokens que aportan. Actualmente el protocolo Aave también cobra una comisión de transacción de 0.09%.
Veamos cómo se combinan todos estos conceptos para crear un flash loan:
Requisitos
-
Acceso a Remix IDE
-
Crear una Wallet de Metamask
-
Acceso a los Github Gists - Código del contrato inteligente
Cómo obtener el código del contrato inteligente
-
Abre un nuevo workspace en Remix IDE.
-
En una pestaña aparte, abre el Github Gists aquí. Ahí está el código del contrato inteligente que vamos a usar para crear nuestro flash loan.
-
Crea nuevos archivos de contrato en Remix IDE con exactamente estos nombres y copia y pega el código correspondiente a cada archivo (6):
-
Flashloan.sol
-
FlashloanRecieverBase.sol
-
IFlashLoanReciever.sol
-
ILendingPool.sol
-
ILendingPoolAnddressesProvider.sol
-
Withdrawable.sol

Sobre los contratos
Flashloan.sol - Este es el contrato inteligente del flash loan. Contiene una función ExecuteOperation que el contrato
llamará para completar las operaciones que usarán los fondos del préstamo.
FlashLoanRecieverBase.sol / IFlashLoanReciever.sol - Esto permite que el contrato reciba los fondos del flash loan
ILendingPool.sol / ILendingPoolAddressProvider.sol - Apunta a los pools de préstamos de Aave que financiarán el flash loan
Withdrawable.sol - Permite que otros contratos retiren fondos de este contrato en caso de fondos incorrectos o atascados
Agregar fondos a la wallet
Vamos a usar la Kovan Test Network para desplegar y ejecutar nuestro contrato de flash loan. Necesitamos tener fondos en nuestra wallet para poder hacer esto correctamente:
-
Ingresa la dirección de tu wallet:
-
Selecciona la red Kovan en tu Metamask Wallet

- Asegúrate de seleccionar .1 Test Eth

-
Espera la confirmación de que los tokens se transfirieron
-
Los fondos deberían agregarse a tu Metamask Wallet
Desplegar el contrato
Ahora que tenemos algunos fondos en nuestra wallet, es momento de desplegar el contrato inteligente en la Kovan Testnet para poder ejecutarlo e interactuar con él.
- Ve al compilador de Solidity en el panel lateral de Remix

- Usa la siguiente configuración:
Compiler: 0.6.6+comitt.6c…
Language: Solidity
EVM Version: Default
Compile Flashloan.sol

- Haz clic en 'Compile' - Es posible que recibas algunas advertencias, pero ningún error si todo salió bien
Después de compilar el contrato inteligente del flash loan, necesitamos desplegarlo:
- Ve a la pestaña 'Deploy and Run Transactions'

- Usa la siguiente configuración:
Environment: Injected Web3
Account: Copia y pega la dirección de tu Kovan Wallet
Contract: Flashloan - contracts/Flashloan

- Agrega el contrato del Lending Pool como address_addressProvider: 0x506B0B2CF20FAA8f38a4E2B524EE43e1f4458Cc5. Esta es la dirección del proveedor de préstamos de Aave. Puedes encontrar otras direcciones de contrato aquí.

-
Haz clic en 'Deploy'
-
A Metamask debería salirte un popup para 'Confirmar' la transacción. Dentro de tu terminal, verás el link para ver tu transacción en etherscan.

Agregar fondos al flash loan
Nuestro contrato inteligente ya está desplegado en la Kovan Test Network. Necesitamos agregar fondos al contrato desde el pool de préstamos de testnet de Aave.
-
Ve a esta página: https://staging.aave.com/?marketName=proto_kovan
-
Conecta tu Metamask Wallet
-
Asegúrate de estar usando el 'Kovan Ethereum Market'. Vas a ver una pequeña 'K'

Nota: Es posible que necesites activar el modo 'Testnet mode' en tu configuración.

- Aporta algo de Eth de prueba a Aave haciendo clic en el botón 'Supply' bajo 'Assets to supply'. Podemos empezar con .001

- Luego pide prestado algo de DAI haciendo clic en el botón 'Borrow' junto a DAI. Pide prestados 10 DAI.

- Metamask debería abrirse para confirmar la transacción y el DAI aparecerá en tu wallet una vez que se complete la transacción:

- Si es la primera vez que recibes DAI, vas a necesitar configurar tu wallet para poder ver el DAI en ella.
- Ve a 'Import Tokens' dentro de Metamask

- Ingresa la dirección del contrato de DAI para Kovan: 0xFf795577d9AC8bD7D90Ee22b6C170349
- Una vez que tengas DAI en tu wallet, envía 10 DAI a tu contrato desplegado. Puedes obtener la dirección de tu contrato desplegado copiándola desde Remix:

Luego envíalo a esa dirección usando Metamask:

Ejecutar el contrato de flash loan
Ahora necesitamos llamar al contrato de DAI de KovanTestnet de Aave para indicar qué activo vamos a usar para ejecutar el contrato inteligente.
-
Vuelve a tu Remix IDE y a la pestaña 'Deploy & Run Transactions'
-
Bajo 'Deployed Contracts' verás tu flash loan y la dirección del contrato

- Ve al campo de texto etiquetado 'address asset' junto a la etiqueta 'flashloan'

-
Ingresa esta dirección de contrato en el campo address_asset: 0xFf795577d9AC8bD7D90Ee22b6C1703490b6512FD. Luego haz clic en el botón de la etiqueta flashloan para iniciar la transacción.
-
Esto va a iniciar el proceso del flash loan y va a generar 3 transacciones en etherscan.

La primera transacción va del pool de préstamos a nuestro contrato de flash loan. Como no incluimos ninguna operación en el contrato inteligente, el monto se devuelve al pool de préstamos más una comisión adicional. La última transacción corresponde al interés del monto prestado, que iría a los proveedores del pool de liquidez.
Resúmenes relacionados
DeFi12 de junio de 2026
¿Qué son los agentes de IA para DeFi? Casos de uso, riesgos y arquitectura
Los agentes de IA para DeFi, también llamados agentes DeFAI, son sistemas autónomos que pueden razonar, firmar y liquidar operaciones onchain bajo controles de políticas.
DeFi5 de septiembre de 2025
Las 5 mejores estrategias de seguridad para wallets DeFi en 2025
Los ataques off-chain causaron el 80.4% de las pérdidas cripto en 2024. Las smart wallets ofrecen mejor seguridad, así es cómo.
DeFi29 de agosto de 2023
¿Qué es liquid staking token finance (LSTfi)?
Conoce la nueva categoría de protocolos DeFi que construyen estrategias generadoras de yield sobre liquid staking

Construye magia blockchain
Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.