Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 

Repository files navigation

πŸ›‘οΈ Flash Crash Mitigator

Bot DeFi de protecciΓ³n automΓ‘tica para posiciones en Kamino Finance (Solana). Monitoreo 24/7, auto-repago al detectar riesgo de liquidaciΓ³n.

Status Stack


πŸ“‹ DescripciΓ³n General

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.

πŸ—οΈ Arquitectura

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  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  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⚑ Funcionalidades Principales

  • 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 repay directamente, 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

πŸ› οΈ Stack TecnolΓ³gico

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

πŸš€ Quick Start

# 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/mitigator

πŸ“‚ Estructura del Proyecto

flash-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

βš™οΈ Variables de Entorno

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

πŸ”¬ CΓ³mo Funciona

  1. Inicio: Carga configuraciΓ³n, decodifica keypair en memoria, conecta a PostgreSQL
  2. Loop: Cada POLL_INTERVAL_SECS, consulta la Obligation account vΓ­a RPC
  3. Decode: Extrae el Health Factor de la respuesta on-chain
  4. EvalΓΊa: Si HF < HF_THRESHOLD β†’ construye instrucciΓ³n repay
  5. Ejecuta: Firma la transacciΓ³n con la keypair en memoria, envΓ­a, confirma
  6. Registra: Inserta evento en PostgreSQL con HF, tx signature, timestamp
  7. Duerme: Espera el intervalo configurado, repite

πŸš€ Estado Actual

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

About

πŸ›‘οΈ DeFi Risk Liquidator β€” Monitor HF Kamino Finance, auto-repay when HF < 1.2. Docker + Postgres.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors