Flash loans · REAL · Base mainnet

Flash loans on Aave V3, executed from a contract you own.

A flash loan borrows and repays inside one transaction. If the strategy cannot repay, the whole transaction reverts and nothing moves. We write the contract around your strategy, simulate it on a fork, deploy it, and hand you the keys.

NetworkBase mainnet · chain id 8453
Reference contract0x13ED5b…879C · 3,306 bytes
Flash premium5 bps · verified 2026-09-04
Last on-chain check2026-09-04 (static)
USDC available in the Aave V3 Base pool over recent blocks
USDC available in the Aave V3 Base pool, 24 reads spaced 900 blocks (~30 min) apart, read from a public Base node when this site was built. Exact values in liquidity-usdc.json. Regenerated with tools/gen-assets.py; not live.

Cost estimator

Protocol fee and break-even edge, from stated inputs.

Protocol fee125 USDC
Total to repay250,125 USDC
Minimum gross edge127 USDC equiv. 5.08 bps

Premium source: last VERIFIED value (2026-09-04) · chain: Base (id 8453) · pool: 0xA238Dd80C259a72e81d7e4664a9801593F98d1c5
Formula: fee = notional × 5 / 10,000; break-even = fee + gas + other costs.
Not included: liquidity depth, slippage, MEV, route failure, or whether any strategy is profitable. This is an estimate, not an execution quote.

How the money moves inside one transaction

Client Safe calls the client-owned FlashWallet, which borrows from the Aave V3 Pool, runs the strategy, repays with premium, and returns surplus to the Safe Client Safeowner FlashWalletclient-owned Aave V3 PoolBase 1 2 borrow 4 repay + 5 bps executeOperation3 your strategy 5 surplus Atomic: if 4 fails, 1–3 are undone. No partial state.

Request

Your contract calls the Pool for the asset and amount. The Pool transfers the asset in and calls back into your contract.

Strategy

Your logic runs inside the callback: a swap route, a liquidation, a collateral rotation, a refinance. This is the only part that differs per client.

Repay

Before the callback returns, the contract approves principal plus the Pool's premium back to the Pool. The premium is read from the Pool at execution time, not hard-coded.

Settle or revert

Repayment succeeds and any surplus stays in your contract, or the whole transaction reverts and no balance anywhere changes.

Quote against live liquidity

Reads the Pool's available liquidity and premium from a Base node through the API and refuses a quote when depth is under 1.5× the request. This is a read; nothing is signed or sent. The estimator above works even when the API is unreachable.

Quote output appears here.

What you get, and what is not offered

Your own contract

One contract per client per strategy, deployed to Base mainnet, owner set to your address at handoff, source verified on the explorer.

Simulation before broadcast

Every strategy is simulated on a fork first. You get the trace, gas estimate, and revert reason if there is one. No mainnet transaction is sent from a strategy that has not passed simulation.

Not offered: multi-provider routing

Routing across Aave V3, Balancer V2, Uniswap V3, and MakerDAO exists as code in the repository, is not deployed to any public mainnet, and has no completed audit. It is not part of any engagement until both change.

Start an engagement Integration notes