Skip to content

kauenet/cambi-liquidatoor

Repository files navigation

Cambi Protocol Liquidation Infrastructure

A comprehensive liquidation system for the Cambi Protocol, featuring both off-chain monitoring bots and on-chain Uniswap V4 hooks for capital-efficient liquidations.

Cambi Protocol Liquidation Uniswap V4 TypeScript Solidity

Overview

The Cambi Protocol enables users to mint yield-bearing synthetic assets (cmBTC, cmUSD, cmBRL) backed by Bitcoin and stablecoin collateral. When positions become under-collateralized (below 130% ratio), they need to be liquidated to maintain protocol stability.

This repository provides two complementary liquidation solutions:

πŸ€– Liquidation Bot (TypeScript)

Off-chain monitoring and execution system that:

  • Continuously scans for under-collateralized positions
  • Calculates liquidation profitability in real-time
  • Executes liquidations via direct protocol interaction
  • Supports batch processing and automated scheduling
  • Deployable on Vercel for serverless operation

⚑ Liquidation Hook (Solidity)

On-chain Uniswap V4 hook enabling capital-efficient liquidations:

  • Flash liquidations without upfront capital requirements
  • Atomic execution: flash loan β†’ liquidate β†’ swap β†’ profit
  • Gas-optimized using V4's singleton architecture
  • Integrated slippage protection and profit validation

Architecture Overview

graph TB
    subgraph "Cambi Protocol"
        PM[Position Manager]
        SA[Synthetic Assets<br/>cmBTC/cmUSD/cmBRL]
        LC[Lens Contract]
        CCYOE[Cross-Collateral Yield<br/>Optimization Engine]
    end
    
    subgraph "Liquidation Infrastructure"
        LB[Liquidation Bot<br/>TypeScript/Viem]
        LH[Liquidation Hook<br/>Solidity/Uniswap V4]
        LO[Liquidation Orchestrator<br/>Batch Management]
    end
    
    subgraph "Uniswap V4"
        PM4[Pool Manager]
        HOOKS[Hook System]
        FA[Flash Accounting]
    end
    
    LB --> LC
    LB --> PM
    LH --> PM4
    LH --> HOOKS
    LH --> FA
    LO --> LH
    PM --> SA
    LC --> PM
Loading

Quick Start

Prerequisites

  • Node.js v18+
  • Foundry
  • Private key with ETH for gas
  • Access to Cambi Protocol contracts

Clone Repository

git clone https://github.com/cambi-protocol/cambi-liquidatoor.git
cd cambi-liquidatoor

Liquidation Bot Setup

cd liquidation-bot
npm install
cp .env.example .env
# Edit .env with your configuration
npm run build
npm start

Liquidation Hook Setup

cd liquidation-hook
forge install
forge build --via-ir
# Edit deployment script with contract addresses
forge script script/Deploy.s.sol --rpc-url <your_rpc> --broadcast

Features

Liquidation Bot

  • πŸ” Automated Scanning: Continuous monitoring via Lens contract
  • πŸ’° Profitability Assessment: Real-time profit/gas calculations
  • ⚑ Fast Execution: Optimized transaction handling
  • πŸ“Š Comprehensive Logging: Detailed operation tracking
  • πŸ›‘οΈ Error Handling: Robust failure recovery
  • πŸ”„ Batch Processing: Concurrent liquidation execution
  • πŸ“± Vercel Compatible: Serverless deployment ready
  • 🌐 REST API: Integration endpoints

Liquidation Hook

  • πŸ’Ž Capital Efficiency: No upfront token requirements
  • βš›οΈ Atomic Execution: Single-transaction liquidations
  • πŸ”’ Risk Reduction: Failed liquidations auto-revert
  • β›½ Gas Optimized: V4 singleton pattern benefits
  • 🎯 Slippage Protection: Configurable minimum outputs
  • πŸ”§ Flexible Configuration: Multi-pool and fee tier support

Protocol Integration

Supported Synthetic Assets

  • cmBTC: Bitcoin-backed synthetic (5-8% APY)
  • cmUSD: USD-backed by LatAm receivables (14-18% APY)
  • cmBRL: Brazilian Real backed by local bonds (20-25% APY)

Liquidation Mechanics

  • Liquidation Threshold: 130% collateralization ratio
  • Over-collateralization: 150% minimum at position creation
  • Liquidation Discount: Variable based on asset type
  • Cross-Collateral Benefits: CCYOE yield optimization

Deployment

Production Bot Deployment

# Vercel deployment
npm run deploy

# Traditional server
npm run build
npm start

Hook Contract Deployment

# Deploy to mainnet/testnet
forge script script/Deploy.s.sol:DeployScript \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --broadcast \
  --verify

Configuration

Bot Configuration (.env)

# Network
RPC_URL=https://base-mainnet.alchemyapi.io/v2/your-key
CHAIN_ID=8453

# Contracts
LENS_CONTRACT_ADDRESS=0x...
POSITION_MANAGER_ADDRESS=0x...
FACTORY_ADDRESS=0x...

# Bot Settings
SCAN_INTERVAL_SECONDS=60
MIN_PROFIT_USD=5
MAX_GAS_PRICE_GWEI=300
BATCH_SIZE=10

# Security
LIQUIDATOR_PRIVATE_KEY=0x...
API_KEY=your-secret-key

Hook Configuration

  • Pool creation with hook integration
  • Fee tier and tick spacing configuration
  • Liquidation protocol interface implementation
  • Orchestrator deployment for batch operations

Security Considerations

  • Private Key Management: Never commit keys to version control
  • Gas Management: Configure appropriate limits and monitoring
  • Slippage Protection: Set reasonable minimum output amounts
  • Reentrancy Protection: Built-in hook state management
  • Emergency Controls: Orchestrator emergency liquidation capabilities

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Documentation

Community

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Uniswap V4 - Hook system and flash accounting
  • Foundry - Development framework
  • Viem - TypeScript Ethereum library
  • MakerDAO - CDP architecture inspiration

Built with ❀️ for the Cambi Protocol ecosystem

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors