Bot DeFi de protecciΓ³n automΓ‘tica para posiciones en Kamino Finance (Solana). Monitoreo 24/7, auto-repago al detectar riesgo de liquidaciΓ³n.
Flash Crash Mitigator es un bot reactivo escrito en Rust que monitorea una posiciΓ³n (Obligation) especΓfica en Kamino Finance. Cuando el Health Factor (HF) de la posiciΓ³n cae por debajo de 1.2 βseΓ±al de liquidaciΓ³n inminenteβ el bot ejecuta automΓ‘ticamente un repay parcial, protegiendo el colateral. Todos los eventos se registran en PostgreSQL con tracing estructurado.
β‘ Su hermano Flash Crash Predator (privado) hace lo opuesto: escanea proactivamente TODO Kamino buscando posiciones para liquidar. Este bot defiende; aquel ataca.
ββββββββββββββββββββββββββββββββββββββββ
β Solana RPC (Helius) β
β ββ getAccountData cada N segundos β
ββββββββββββββββ¬ββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β Monitor Module (Tokio async loop) β
β ββββββββββββββββββββββββββββββββββ β
β β 1. Fetch Obligation account β β
β β 2. Decode health factor β β
β β 3. HF < 1.2? β trigger repay β β
β ββββββββββββββββββββββββββββββββββ β
ββββββββββββββββ¬ββββββββββββββββββββββββ
β HF < threshold
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β Executor Module β
β ββββββββββββββββββββββββββββββββββ β
β β 1. Build repay instruction β β
β β 2. Sign with in-memory keypair β β
β β 3. Send + confirm transaction β β
β ββββββββββββββββββββββββββββββββββ β
ββββββββββββββββ¬ββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β PostgreSQL + Tracing β
β ββ Eventos, health factors, tx ids β
ββββββββββββββββββββββββββββββββββββββββ
- Monitoreo Continuo: Loop asΓncrono con Tokio consultando la Obligation account on-chain
- DetecciΓ³n Temprana: Dispara repay cuando HF < 1.2 (configurable), antes de que otros liquidadores actΓΊen
- EjecuciΓ³n AutomΓ‘tica: Construye y firma la instrucciΓ³n
repaydirectamente, sin intervenciΓ³n humana - Keypair en Memoria: La clave privada nunca toca disco β se inyecta como bytes al inicio
- Persistencia: Todos los eventos, health factors y transacciones se registran en PostgreSQL
- Observabilidad: Tracing estructurado con niveles, filtros por mΓ³dulo, timestamps
| Capa | TecnologΓa |
|---|---|
| Lenguaje | Rust (edition 2021, tokio async) |
| Blockchain | Solana (solana-client 1.18, solana-sdk, spl-token) |
| Protocolo | Kamino Finance |
| Base de Datos | PostgreSQL (sqlx 0.8, conexiones TLS nativas) |
| Observabilidad | tracing + tracing-subscriber (env-filter) |
| Build | Perfil release optimizado (opt-level=3, LTO, strip) |
| Deploy | Docker Compose + VPS |
# 1. Clonar
git clone https://github.com/Jorchspace/flash-crash-mitigator.git
cd flash-crash-mitigator
# 2. Configurar .env
cp .env.example .env
# Editar: RPC_URL, KEYPAIR_BYTES, OBLIGATION_ID, POSTGRES_URL
# 3. Ejecutar con Docker
docker compose up -d
# 4. O compilar y ejecutar nativo (requiere Rust toolchain)
cargo build --release
./target/release/mitigatorflash-crash-mitigator/
βββ Cargo.toml # Dependencias Rust
βββ Dockerfile # Imagen multi-stage
βββ docker-compose.yml # App + PostgreSQL
βββ migrations/
β βββ 001_init.sql # Schema inicial
βββ src/
β βββ main.rs # Entry point, loop principal
β βββ config.rs # Carga de .env
β βββ monitor.rs # LΓ³gica de monitoreo HF
β βββ executor.rs # ConstrucciΓ³n y envΓo de repay tx
β βββ db.rs # ConexiΓ³n y queries PostgreSQL
βββ .env.example # Template de variables
| Variable | DescripciΓ³n |
|---|---|
RPC_URL |
URL del nodo Solana RPC (Helius recomendado) |
KEYPAIR_BYTES |
Array de bytes de la keypair (formato JSON) |
OBLIGATION_ID |
Pubkey de la Obligation account a monitorear |
LENDING_MARKET_ID |
Pubkey del Lending Market de Kamino |
REPAY_RESERVE_ID |
Pubkey de la Reserve para el repay |
POSTGRES_URL |
URL de conexiΓ³n PostgreSQL |
HF_THRESHOLD |
Health Factor umbral (default: 1.2) |
POLL_INTERVAL_SECS |
Intervalo de polling en segundos |
- Inicio: Carga configuraciΓ³n, decodifica keypair en memoria, conecta a PostgreSQL
- Loop: Cada
POLL_INTERVAL_SECS, consulta la Obligation account vΓa RPC - Decode: Extrae el Health Factor de la respuesta on-chain
- EvalΓΊa: Si
HF < HF_THRESHOLDβ construye instrucciΓ³nrepay - Ejecuta: Firma la transacciΓ³n con la keypair en memoria, envΓa, confirma
- Registra: Inserta evento en PostgreSQL con HF, tx signature, timestamp
- Duerme: Espera el intervalo configurado, repite
En desarrollo activo. LΓ³gica core de monitoreo y repay funcional. Dockerizado con PostgreSQL. PrΓ³ximos pasos: tests de integraciΓ³n contra devnet, alertas Telegram, dashboard de eventos.
Construido por Jorch | Jorch Lab β 2026