Testnet Live — Soroban Testnet

Keeper
Infrastructure
for Soroban

Multi-operator liquidation network for Blend Protocol. Distributed across competing keepers. No single point of failure.

keeper log stream — demo
[keeper-alpha] pos GABC3…F2Q0 hf=1.847 — monitoring
[keeper-beta] pool loaded reserves=2
[keeper-alpha] pos GD7F9…2K1R hf=1.203 — monitoring
[keeper-beta] pool heartbeat ledger=51247801
scroll ↓

THE PROBLEM

$10.8M
liquidation value
Feb 22, 2026 YieldBlox exploit — USTRY/XLM oracle manipulation
2 bots
captured majority
Single-operator bots pre-positioned. No coordinated keeper response.
60
auction fills
Over ~4 hours. One Docker container, one private key, no fallback.

Stellar DeFi (~$187M TVL) relies on single-operator bots for critical automation. Blend's liquidation bot is explicitly disclaimed as "not guaranteed to be profitable and may result in financial loss". Nectar distributes keeper responsibility across competing operators.

ARCHITECTURE

SOROBAN TESTNETKeeperRegistryregister(stake)mark_draw / clear_drawrecord_execution()slash(keeper)NectarVaultdeposit / withdrawdraw / return_proceedscap · cooldownshare_price()mark / clearBlend Poolnew_liquidation_auction()submit() — fillget_positions()Dutch · 0–400 ledgersMock Oracleset_price(asset, price)pricesUSDC (SAC)transfer · balancestakeOFF-CHAINKeeper #1 (keeper-alpha)monitor → draw → fill → returnstaked operator · slashableKeeper #2 (keeper-beta)monitor → draw → fill → returnstaked operator · slashable
KeeperRegistry — staking & slashing
Operators register by staking USDC; the registry tracks executions, success rate, and outstanding draws. Slashing transfers a configurable share of the stake to the vault when a draw isn't returned within the timeout.
NectarVault — pooled liquidation capital
Depositors mint shares against pooled USDC. Deposit caps and per-account withdrawal cooldowns protect against capacity attacks; share price reflects accumulated profit. draw() / return_proceeds() cross-call the registry to mark and clear the operator's outstanding draw.
Blend Pool — Dutch auctions
Liquidations run as two-phase Dutch auctions: lot scales 0→100 % over the first 200 ledgers, bid scales 100→0 % over the next 200. Keepers evaluate profitability live and submit a fill when lot/bid crosses their threshold.
Multi-operator race
Both keepers can simulate and submit fills concurrently. One wins; the other receives an AlreadyFilled error, returns the drawn capital to the vault, and logs the loss.

ON-CHAIN

KeeperRegistry

2 operators registered
ADDRESSNAMESTATUS
GCR36Y…ZTGZkeeper-alphaACTIVE
GBOE5Q…546Fkeeper-betaACTIVE
Contract: CCQAW3…6RPW · Soroban Testnet

MONITOR

Pool Position Health

simulated · no keeper connected
ADDRESSHEALTH FACTORSTATUS
GD7F9…2K1R1.8470healthy
GABC3…F2Q01.2030healthy
GB2M1…7YRZ1.0560AT RISKAT RISK
GCFD8…P3N92.3410healthy