KEEL.
A liquidation-protection bot whose trigger cannot be found by watching it, and which proves on-chain that it never changed its plan.
Watching a defense bot is enough to rob it.
A protection bot defends a loan when its health factor falls to a secret trigger. But every action, and every silence, is public. Each price level answers one question: is the trigger above or below here? Three pushes locate a fixed trigger to a $9 price window. A found trigger plus a public reserve is not a defense. It is a drain plan.
real precedent: a $521M short publicly hunted on Hyperliquid · Solend's $170M seizure panic over one visible position
$205.
In this challenge, health factor is just price in disguise: HF = price / 1794.87. The position opens at $2,000 and dies at $1,795. Everything, every trigger, every attack, every defense, happens inside that $205 window. Hide where you act inside it, while being watched, or lose.
The tripwire moves.
Keel re-draws its trigger at every price level: a secret base, a volatility cushion, and a random offset derived from a secret salt. The offset is upward only, so randomness can make Keel act earlier but never later. It never costs survival. And because each level gets a fresh, independent draw, watching forever still leaves the base unknown to the full width of the offset. The algorithm is public; the secrecy lives entirely in the salt.
Sealed envelope, opened after the match.
Before the scenario starts, a hash of the whole policy goes on-chain: a sealed envelope the referee holds. Every defense then carries a receipt signed by a key that only exists inside the enclave. Afterward, Keel opens the envelope, and anyone can recompute every round from public logs and check every action against the sealed policy. That is the difference between private and provably unchanged.
The policy never leaves the enclave.
Two triggers wake the workflow: a 60-second heartbeat and an instant reaction to each on-chain price update. The handler runs in an AWS Nitro enclave, pulls its four secrets from the Vault DON, reads the chain in one batched call, defends when needed, and reports a single word. No number ever comes out.
A real Bayesian hunter. It finds the starter. It never finds Keel.
The Hunter watches only public data and infers where each bot's trigger must be. The numbers below are how precisely it can predict the next trigger after watching everything.
run the attack yourself on /hunter
Zero liquidations. Least capital spent. And unhuntable.
| strategy | mean score | worst | liquidated | capital used |
|---|---|---|---|---|
| Keel — committed policy | 81.48 | 79.53 | 0 / 5 | 1,146,950 |
| Tuned grid winner | 81.38 | 79.55 | 0 / 5 | 1,200,650 |
| Starter 1.08 / 1.15 | 81.39 | 79.46 | 0 / 5 | 1,197,800 |
| Do nothing | 42.08 | 40.79 | 5 / 5 | 0 |
These are the exact price paths from the official README, run through a contract mirror proven byte-for-byte against the deployed contract. The sealed policy survives all five, keeps full loan continuity (20/20 in every scenario), and spends less capital than any other surviving strategy. Doing nothing liquidates in all five. Confidentiality cost nothing.
Joined. Sealed before start. Check us.
The commitment landed at block 11691103, before the official scenario starts. Whatever the market does now, the policy that defends is provably the one sealed here. The salt stays sealed until scores publish; then the /verify page re-derives every round from public logs.
Private strategies you can still audit.
handlerInTee on AWS Nitro · 4 Vault DON secrets · cron + log trigger · one batched read · one-word status. And secrecy you can verify: commit, in-enclave signed receipts, reveal.
0 liquidations and 20/20 loan continuity on all 5 official scenarios, least capital of any surviving strategy, with a trigger no observer can locate.
- · joined the official challenge as participant #8, policy sealed on-chain pre-start
- · CRE confidential workflow in a TEE; both triggers simulate green
- · live Sepolia run: commit, signed receipts, reveal, ALL ROUNDS CONSISTENT
- · a real Bayesian adversary + independent verifier, byte-proven contract mirror
- · DON deployment: early-access queue; simulation is what's judged
- · the official scenario window runs post-deadline; our commit already binds it
- · receipt key is salt-derived, not attestation-bound; stated plainly