An inventory-funded Aave V3 liquidation executor and off-chain bot. The owner pre-funds the executor with debt-asset inventory and pre-approves the Aave Pool; a scanner watches candidate borrowers for health factor < 1, prices profitability off-chain, and submits liquidations on-chain. No flash loans — every fill is settled from held inventory with balance-delta guards (max_debt_in / min_collateral_out) that make sandwich and slippage attacks economically dead on arrival.
SnekSentry splits liquidation into a minimal on-chain executor and an off-chain brain. The executor holds inventory and enforces value; the bot does discovery and pricing. Keeping the cross-asset profit math off-chain keeps gas low and the trusted on-chain surface small.
SnekSentryExecutor.vy holds a debt-asset inventory and calls the Aave Pool; the pool pulls debt and returns collateral in a single transactionmax_debt_in caps what leaves inventory, min_collateral_out floors what comes back; a bad fill simply revertssentry_bot.py monitors candidates for HF < 1, estimates USD profitability via an injectable price source, and submits only profitable fillsProduction-hardened against the failure modes that brick liquidation bots: mistyped owners, non-standard tokens, stale oracles, and zero-slippage submissions. Every external surface assumes adversarial input.
transfer_ownership → accept_ownership; a mistyped owner can't strand inventory, and renounce_ownership stays unexportedexecute_liquidation for incident responsemin_collateral_out floor instead of passing 0totalDebtBase (USD, 8-dec) is converted to debt-token wei via price, decimals, and the Aave close factormypy --strict + pytest + coverage + slither on every pushmax_debt_in / min_collateral_outSECURITY.md, and a written THREAT_MODEL.md