Prepare an Aave position unwind
Returns an unsigned Pool.withdraw transaction that exits an Aave position straight to the project’s deposit address, so the existing deposit pipeline ingests the proceeds. Nothing is executed: the holding EOA owns the aTokens, so only it can authorise the withdraw, and the service holds no key on this path. The amount is capped server-side against Aave’s full withdraw validation and is refused outright if the proceeds would fall foul of the project’s deposit policy — that check happens here because this is the last point before an irreversible signature.
Headers
API key for authentication
"your-api-key"
API version identifier (e.g. "2026-04.amazon"). Optional today, will become required in a future release.
^\d{4}-\d{2}\.[a-z0-9]+$"2026-04.amazon"
Path Parameters
The EOA holding the position. It signs and sends the returned transaction.
^0x[a-fA-F0-9]{40}$"0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91"
Body
The registered deposit account the proceeds go to. The recipient is resolved from this server-side; it is never taken from the request directly.
^0x[a-fA-F0-9]{40}$The Aave market's Pool address, as returned in a position's market.address. Required rather than inferred, because a chain can host several markets.
^0x[a-fA-F0-9]{40}$8453
The supplied underlying token to withdraw
^0x[a-fA-F0-9]{40}$Base units to withdraw. Omit for the largest amount currently permitted. An amount above that maximum is rejected rather than silently reduced.
^\d+$"1000000000000000000"
Response
Unsigned withdraw transaction
Unsigned transaction for the holding EOA to sign and send. The backend never executes it — the EOA holds the aTokens, so only it can authorise the withdraw.
Base units the transaction will withdraw
True when the whole position is being withdrawn, in which case the calldata uses the max-uint sentinel so interest accrued before the transaction lands is swept too.
The deposit address the proceeds are sent to, resolved from the registered account. Echoed so it is auditable.
Why the amount is below the supplied balance, if it is. Empty for an unconstrained full exit.