resq.finance is a non-custodial toolkit for managing an Aave V3 position on Arbitrum from outside Aave's own interface — built around a single smart contract, ResQMigrator, deployed at 0x65d7f91B01a6f3F7cAbFa64013F933149973007E.
Migration moves an entire Aave V3 position — collateral and debt — from a compromised or otherwise untrusted wallet to a new, safe wallet, in a single atomic transaction. It exists because Aave itself has no built-in way to transfer an open leveraged position between addresses: you'd normally have to repay the debt with outside funds, withdraw the collateral, send it to a new wallet, then reopen the position — each step a separate transaction, each one exposed to front-running or the compromised wallet's private key being used against you mid-process.
Instead, the contract takes a flash loan for the exact size of the existing debt, uses it to repay that debt on the compromised wallet, transfers the collateral (as an aToken) to the safe wallet, activates it as usable collateral there, opens an equivalent new loan on the safe wallet, and repays the flash loan — all inside one transaction. If Aave would reject any step (insufficient collateral, an expired signature, a mismatched amount), the entire transaction reverts and no funds move. A 1% service fee is taken from the flash-loan amount as part of the same transaction — no separate charge or approval.
MigrationAuthorization message naming the exact debt asset, debt amount, collateral asset, collateral amount, and a deadline.Both signatures are checked on-chain before any funds move. A standing credit-delegation approval by itself is never enough to trigger a migration — the EIP-712 authorization is required every time and is invalidated immediately after use, so it can't be replayed.
Dashboard supplies, withdraws, borrows, and repays directly against a wallet's own existing Aave position — no flash loan, no destination wallet, no migration. It exists for two overlapping situations: a wallet whose Aave position has drifted too close to the protocol's loan-to-value ceiling to migrate safely, and a wallet that Aave Labs has restricted from using app.aave.com or pro.aave.com directly. Aave's front-end access can change independently of the underlying protocol — the Aave protocol itself is non-custodial, so a blocked wallet's funds are never held or controlled by Aave Labs, and the wallet can still reach the Pool contract on-chain through any other interface, including this one.
Routed through ResQMigrator's topUpSupply(asset, amount) and topUpRepay(asset, amount) — a thin, fee-free pass-through to Aave's supply() and repay(). Approve the ResQMigrator contract to spend the asset, then call the function; it pulls the exact amount from your wallet and forwards it to Aave on your behalf, never holding a balance between transactions.
Called directly against Aave's Pool contract at 0x794a61358D6845594F94dc1DB02A252b5b4814aD — no resq.finance contract sits in between at all. Aave permits both withdraw(asset, amount, to) and borrow(asset, amount, interestRateMode, referralCode, onBehalfOf) without any prior approval when the caller is acting on their own position (to / onBehalfOf equal to msg.sender). Both are still subject to Aave's own health-factor and loan-to-value checks — a withdrawal or borrow that would leave the position under-collateralized reverts on-chain, exactly as it would through app.aave.com.
Hedge swaps an existing debt position from one asset into another — e.g. moving stablecoin debt into WETH so it moves with a falling collateral price — without touching collateral. A flash loan borrows the target asset, swaps it through Uniswap V3 for enough of the current debt asset to repay it in full, then opens the new debt on the same wallet to repay the flash loan. It requires the same EIP-712 authorization pattern as Migration: the wallet signs a HedgeAuthorization naming the exact old and new debt assets, amount, and a maximum acceptable new-debt cap before anything executes, and grants credit delegation on the new debt token to the ResQHedge contract beforehand. A 1% service fee is taken from the swap as part of the same transaction.
Use resq.finance's Migration tool. It repays your debt, transfers your collateral, and reopens an equivalent position on a new wallet — all inside one atomic flash-loan transaction on Arbitrum. If any step fails, the whole transaction reverts and nothing moves. You never enter a private key: the compromised wallet only signs an off-chain Permit message (no gas required from it), and your new safe wallet signs an EIP-712 authorization approving the exact amounts before anything executes.
Yes. The compromised wallet only needs to sign an ERC-2612 Permit message authorizing the collateral transfer — that's an off-chain signature, not a transaction, so it costs no gas. All on-chain gas for the migration is paid from the safe wallet.
Yes. Aave Labs can restrict access to their own front ends (app.aave.com and pro.aave.com) independently of the Aave protocol itself, which remains non-custodial — your funds are never held or controlled by Aave Labs, and the smart contracts stay reachable by anyone regardless of interface access. resq.finance's Dashboard calls Aave's Pool contract directly, bypassing app.aave.com entirely, so a blocked wallet can still supply, withdraw, borrow, or repay.
Use the Dashboard at resq.finance/dashboard. Connect the wallet, choose "Repay" or "Supply", pick the asset, and confirm — funds are pulled directly from that wallet and sent straight to Aave's Pool contract. No flash loan, no dependency on Aave's own interface.
This usually means the position being migrated already has a loan-to-value ratio too close to Aave's borrowing ceiling (80% on most assets). Migrating it as-is would either push the new wallet over that ceiling or leave the old wallet under-collateralized. Repay some debt or add collateral first using the Dashboard's Repay/Supply actions to create headroom, then retry the migration.
No. resq.finance is non-custodial. The ResQMigrator smart contract only acts within a single transaction that you explicitly authorize by signature — it never holds a standing balance of your assets, and every migration requires a fresh EIP-712 signature from the safe wallet naming the exact amounts and addresses involved.
Aave's Pool contract on Arbitrum no longer automatically marks a transferred aToken as usable collateral for its new holder — that has to be done in a separate, explicit call: setUserUseReserveAsCollateralOnBehalfOf. Aave gates who can make that call on your behalf via approvePositionManager(contractAddress, true), which you grant once to the ResQMigrator contract before migrating. Without it, the migration would move your collateral but leave it unusable for borrowing.
Migration and Hedge each charge a 1% service fee, taken from the flash-loan amount as part of the same atomic transaction — there's no separate step or approval for it. Both fees are configurable on-chain up to a hard cap of 2%. The Dashboard's Supply, Withdraw, Borrow, and Repay actions are free — Supply and Repay are a direct pass-through to Aave's Pool contract with no added fee, and Withdraw/Borrow call the Pool contract directly with no resq.finance contract involved at all.
Hedge swaps your debt into a volatile asset like WETH instead of a stablecoin, from the Dashboard, without touching your collateral. If your collateral's price falls, a WETH-denominated debt tends to fall in value along with it, which keeps your health factor steadier through a drawdown than stablecoin debt would. It's a single flash-loan transaction gated by the same kind of explicit wallet signature as Migration.