Skip to content

Cross-Credit/contracts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CrossCredit Protocol - Cross-Chain Lending & Borrowing Platform πŸŒ‰

CrossCredit is a revolutionary decentralized finance (DeFi) protocol that enables seamless lending and borrowing operations across multiple blockchain networks. Built on Chainlink's Cross-Chain Interoperability Protocol (CCIP), the platform allows users to deposit collateral on one blockchain and borrow assets on another, creating a unified cross-chain DeFi experience.

CrossCredit on Ethereum Sepolia

CrossCredit on Avalanche Fuji

Project Architecture & Technology Stack πŸ—οΈ

Core Technology Stack

  • Smart Contract Language: Solidity ^0.8.13
  • Development Framework: Foundry (Forge)
  • Cross-Chain Infrastructure: Chainlink CCIP (Cross-Chain Interoperability Protocol)
  • Price Oracles: Chainlink Data Feeds
  • Security Framework: OpenZeppelin Contracts
  • Testing Environment: Forge Standard Library

Architecture Components

Smart Contract Layer:

  • CrossCredit.sol: Main protocol contract handling all lending/borrowing operations
  • CrossCreditLibrary.sol: Utility library for data structures and helper functions
  • ICrossCredit.sol: Interface defining protocol operations and events
  • Error.sol: Centralized error handling and custom error definitions
  • AggregatorV3Interface.sol: Chainlink price feed interface integration

Cross-Chain Infrastructure:

  • Chainlink CCIP Router: Handles secure cross-chain message transmission
  • CCIP Receiver: Processes incoming cross-chain position updates
  • Message Encoding/Decoding: Structured data transmission between chains

Oracle Integration:

  • Chainlink Price Feeds: Real-time asset price data with staleness protection
  • Multi-chain Price Synchronization: Consistent pricing across all supported networks

File Structure & Chainlink Integration πŸ“

Core Contract Files

CrossCredit.sol - Main Protocol Contract

  • Chainlink CCIP Integration:
    • Inherits from CCIPReceiver for cross-chain message handling
    • Uses IRouterClient for sending cross-chain messages
    • Implements Client.Any2EVMMessage for message processing
  • Chainlink Price Feeds:
    • Integrates AggregatorV3Interface for real-time price data
    • Implements price staleness checks and validation
    • Supports multiple price feed configurations per asset

CrossCreditLibrary.sol - Data Structures

  • Defines PositionOnConnected struct for cross-chain position data
  • Contains LendPosition and BorrowPosition structures

ICrossCredit.sol - Protocol Interface

  • Defines all protocol events including CCIP message events
  • Specifies function signatures for external integrations
  • Contains event definitions for cross-chain operations

AggregatorV3Interface.sol - Chainlink Oracle Interface

  • Standard Chainlink price feed interface
  • Enables latestRoundData() calls for price retrieval
  • Supports decimal precision and data validation

Error.sol - Error Handling

  • Centralized custom error definitions
  • Oracle-specific errors (StaleOraclePrice, InvalidOraclePrice, OracleCallFailed)
  • CCIP-related errors (ReceiverAddressNotSet, ConnectedChainNotSet)

Major Protocol Functions πŸ”

1. lend() - Cross-Chain Collateral Deposit

Purpose: Deposit assets as collateral that can be utilized for borrowing across multiple blockchain networks

Chainlink Integration:

  • CCIP Message Transmission: Encodes lending position data and transmits to connected chains
  • Cross-Chain Synchronization: Ensures lending positions are updated on all connected networks
  • Message Structure: Uses PositionOnConnected struct with source chain ID, caller address, asset mapping, and amount

Technical Implementation:

  • Asset Validation: Verifies asset is whitelisted and has cross-chain mapping configured
  • Position Management: Updates local lending position and increments total deposited amount
  • Cross-Chain Broadcasting: Sends CCIP message with LEND_POSITION type to synchronize across chains
  • Multi-Token Support: Handles both native tokens (ETH, LINK) and ERC20 tokens seamlessly

Security Features:

  • Reentrancy protection through OpenZeppelin's ReentrancyGuard
  • Input validation for zero amounts and invalid addresses
  • Asset whitelisting verification before processing

2. borrow() - Cross-Chain Asset Borrowing

Purpose: Borrow assets against cross-chain collateral with comprehensive risk management

Chainlink Price Feed Integration:

  • Real-Time Valuation: Uses Chainlink oracles to calculate current USD value of collateral and debt
  • Multi-Asset Pricing: Supports diverse asset portfolios with individual price feed configurations
  • Staleness Protection: Validates price data freshness (1-hour maximum age) before calculations

Risk Management System:

  • Cross-Chain LTV Calculation: Aggregates collateral value from all connected chains
  • 75% LTV Enforcement: Prevents borrowing that exceeds safe collateralization ratios
  • Dynamic Risk Assessment: Real-time evaluation considering all user positions across chains

Technical Flow:

  • Collateral Verification: Calculates total USD value of user's cross-chain collateral
  • Debt Impact Analysis: Evaluates new borrowing against existing debt positions
  • Position Updates: Updates local borrow position and broadcasts via CCIP
  • Asset Distribution: Transfers borrowed assets directly to user's wallet

3. repay() - Debt Reduction and Position Management

Purpose: Repay borrowed assets to reduce debt burden and improve position health across chains

Cross-Chain Coordination:

  • Position Synchronization: Updates debt positions on all connected chains simultaneously
  • CCIP Message Broadcasting: Sends updated borrow position data to maintain consistency
  • Multi-Chain Debt Tracking: Ensures accurate debt accounting across all networks

Technical Features:

  • Flexible Repayment Options: Supports partial and full debt repayment
  • Automatic Capping: Prevents overpayment by limiting repayment to outstanding debt
  • Multi-Token Processing: Handles both native tokens and ERC20 repayments
  • Immediate Position Updates: Real-time debt reduction across all connected chains

User Benefits:

  • Instant improvement in position health and LTV ratio
  • Reduced liquidation risk through debt reduction
  • Gas-efficient partial repayment options

4. unlend() - Collateral Withdrawal with Safety Validation

Purpose: Withdraw deposited collateral while maintaining healthy borrowing positions

Chainlink Price Integration:

  • Withdrawal Impact Calculation: Uses real-time price feeds to assess USD impact of collateral withdrawal
  • Cross-Chain Risk Assessment: Evaluates remaining collateral against total debt across all chains
  • LTV Compliance Verification: Ensures post-withdrawal LTV remains below 75% threshold

Safety Mechanisms:

  • Multi-Layer Validation: Comprehensive checks prevent creation of liquidatable positions
  • Cross-Chain Collateral Tracking: Considers collateral on all connected chains
  • Dynamic Risk Calculation: Real-time assessment of position health impact

Technical Implementation:

  • Collateral Sufficiency Checks: Validates remaining collateral can support existing debt
  • Position Updates: Reduces lending position and synchronizes globally via CCIP
  • Asset Transfer: Secure transfer of withdrawn collateral to user's wallet

5. liquidate() - Automated Cross-Chain Liquidation System

Purpose: Liquidate undercollateralized positions to maintain protocol solvency across all chains

Liquidation Threshold: 80% - Positions become liquidatable when debt exceeds 80% of collateral value

Chainlink Oracle Integration:

  • Real-Time Risk Assessment: Uses current price feeds to determine liquidation eligibility
  • Multi-Asset Valuation: Calculates comprehensive position health across all assets and chains
  • Price Feed Validation: Ensures oracle data integrity before liquidation execution

Cross-Chain Liquidation Process:

Eligibility Validation:

  • Aggregates borrower's total collateral and debt values across all connected chains
  • Verifies position health exceeds 80% liquidation threshold using real-time price data
  • Validates liquidator's repayment amount covers complete debt obligation

Comprehensive Debt Validation:

  • Multi-Chain Debt Aggregation: Combines borrower's debt from source and connected chains
  • Decimal Precision Handling: Manages different token decimals between chains for accurate calculations
  • Complete Coverage Verification: Ensures liquidation payment covers total debt across all chains

Collateral Processing & Distribution:

  • Source Chain Collateral Transfer: Immediately transfers available collateral to liquidator
  • Cross-Chain Liquidation Messages: Sends CCIP messages to process collateral on connected chains
  • Position Reset: Zeros out all borrower positions across all connected chains
  • Multi-Token Support: Handles both native tokens and ERC20 collateral transfers

Automatic Refund System:

  • Overpayment Detection: Calculates excess payment if liquidator pays more than required
  • Automatic Refunds: Returns surplus amount to liquidator in same token
  • Gas-Efficient Processing: Optimized refund calculations and transfers

Supporting Infrastructure Functions πŸ› οΈ

getTotalUSDValueOfUserByType() - Cross-Chain Position Valuation

Chainlink Price Feed Integration:

  • Multi-Asset Price Retrieval: Queries Chainlink oracles for all whitelisted assets
  • Real-Time Valuation: Uses current price data for accurate USD calculations
  • Price Data Validation: Implements comprehensive checks for price feed integrity

Cross-Chain Aggregation:

  • Dual-Chain Position Tracking: Combines positions from both source and connected chains
  • Decimal Normalization: Sophisticated handling of different token decimals between chains
  • Comprehensive Risk Assessment: Provides holistic view of user's financial position

Cross-Chain Communication Infrastructure

_ccipSend() - Outbound Message Transmission:

  • Message Encoding: Structures position data for cross-chain transmission
  • Fee Calculation: Automatically calculates and pays CCIP transmission fees
  • Gas Optimization: Implements efficient gas limits (200,000) and execution parameters
  • Message Tracking: Provides comprehensive event logging for message monitoring

_ccipReceive() - Inbound Message Processing:

  • Message Validation: Verifies CCIP message integrity and source authentication
  • Data Decoding: Extracts position updates and operation types from cross-chain messages
  • Position Synchronization: Updates connected chain position mappings
  • Liquidation Coordination: Handles cross-chain liquidation message processing

Oracle Price Integration System

_getAssetPriceData() - Chainlink Price Feed Interface:

  • Multi-Feed Support: Interfaces with multiple Chainlink AggregatorV3Interface instances
  • Staleness Protection: Implements 1-hour maximum age validation for price data
  • Data Integrity Checks: Validates positive prices and successful oracle responses
  • Error Handling: Provides graceful degradation when oracle data unavailable

Protocol Configuration & Parameters πŸ“‹

Risk Management Constants

  • LTV (Loan-to-Value): 75% - Maximum safe borrowing ratio against collateral
  • LIQ (Liquidation Threshold): 80% - Automatic liquidation trigger point
  • Price Staleness Limit: 3600 seconds - Maximum acceptable age for oracle price data
  • CCIP Gas Limit: 200,000 - Allocated gas for cross-chain message execution

Cross-Chain Operation Types

  • LEND_POSITION (1): Collateral deposit and withdrawal operations
  • BORROW_POSITION (2): Debt position management and updates
  • LIQUIDATE_POSITION (3): Cross-chain liquidation coordination messages

Chainlink Integration Architecture πŸ”—

CCIP (Cross-Chain Interoperability Protocol) Integration

Message Structure:

  • PositionOnConnected: Standardized data structure for cross-chain position updates
  • Operation Types: Encoded message types for different protocol operations
  • Chain Identification: Source chain ID tracking for message routing

Security Features:

  • Message Authentication: CCIP provides cryptographic message verification
  • Replay Protection: Built-in protection against message replay attacks
  • Atomic Execution: Ensures cross-chain operations complete successfully or revert

Price Feed Integration

Multi-Asset Support:

  • Configurable Price Feeds: Individual Chainlink oracle configuration per asset
  • Decimal Handling: Automatic handling of different price feed decimal precisions
  • Fallback Mechanisms: Graceful error handling when price feeds unavailable

Data Validation:

  • Freshness Checks: Automatic validation of price data recency
  • Range Validation: Ensures price values are within reasonable bounds
  • Source Verification: Validates price data comes from authorized Chainlink oracles

Security Architecture πŸ›‘οΈ

Multi-Layer Security Framework

Access Control:

  • Owner-Restricted Functions: Asset whitelisting, oracle configuration, protocol parameters
  • Modifier-Based Validation: Comprehensive input sanitization and state verification
  • Reentrancy Protection: OpenZeppelin ReentrancyGuard on all state-changing functions

Cross-Chain Security:

  • Message Integrity: CCIP provides cryptographic verification of cross-chain messages
  • Position Synchronization: Atomic updates ensure consistent state across all chains
  • Oracle Security: Multiple validation layers for price feed data integrity

Economic Security:

  • Overcollateralization: 75% LTV ensures sufficient collateral backing
  • Liquidation Incentives: Economic rewards for maintaining protocol health
  • Risk Isolation: Individual position management prevents systemic risks

Error Handling & Validation System 🚨

Comprehensive Error Categories

Asset & Validation Errors:

  • NotWhitelistedAsset(): Asset not approved for protocol use
  • NotConnectedAsset(): Asset lacks cross-chain mapping configuration
  • InvalidAddress(): Zero address or invalid address parameter
  • NoZeroAmount(): Prevention of zero-value operations

Risk Management Errors:

  • AmountSurpassesLTV(): Borrowing would exceed 75% loan-to-value ratio
  • UserNotLiquidateable(): Position doesn't meet 80% liquidation threshold
  • InsufficientCollateralRemaining(): Withdrawal would create unsafe position
  • CollateralExhausted(): Insufficient collateral for requested operation

Oracle & Price Feed Errors:

  • StaleOraclePrice(): Price data exceeds 1-hour staleness limit
  • InvalidOraclePrice(): Price value is zero or negative
  • OracleCallFailed(): Chainlink oracle call unsuccessful
  • PriceFeedNotSet(): No price feed configured for asset

Cross-Chain Operation Errors:

  • ReceiverAddressNotSet(): No receiver contract configured on destination chain
  • ConnectedChainNotSet(): Destination chain not properly configured
  • NotEnoughBalance(): Insufficient funds for CCIP message fees

Gas Optimization & Efficiency πŸ”₯

Storage Optimization

  • EnumerableSet Usage: O(1) lookups for whitelisted asset validation
  • Packed Data Structures: Minimized storage slots through efficient struct design
  • Mapping Optimization: Strategic use of nested mappings for position tracking

Cross-Chain Efficiency

  • Optimized Message Size: Minimal data encoding for CCIP transmission
  • Batch Operations: Reduced per-transaction overhead through efficient batching
  • Native Fee Payments: Uses chain-native tokens instead of LINK for cost efficiency

Deployment & Integration Guide πŸš€

Prerequisites

  • Foundry development environment
  • Access to Chainlink CCIP testnet/mainnet
  • Configured price feed addresses for supported assets
  • Multi-chain deployment infrastructure

Deployment Configuration

Constructor Parameters:

  • _adminAddress: Protocol administrator with configuration privileges
  • _nativeAsset: Native token address for the deployment chain (ETH, AVAX, etc.)
  • router: Chainlink CCIP router address for the target network

Post-Deployment Setup:

  1. Asset Configuration: Whitelist supported assets with listAsset()
  2. Price Feed Setup: Configure Chainlink oracles using setPriceFeed()
  3. Cross-Chain Mapping: Establish asset relationships with setAssetToAssetOnConnectedChain()
  4. Connected Chain Setup: Configure destination chain with setConnectedChainID() and setReceiverOnConnectedChain()

Integration Requirements

Chainlink Infrastructure:

  • CCIP Router contracts deployed on both source and destination chains
  • Active Chainlink price feeds for all supported assets
  • Sufficient native tokens for CCIP message fees

Multi-Chain Coordination:

  • Synchronized deployment across all target chains
  • Consistent asset mappings and configurations
  • Cross-chain receiver contract addresses properly configured

Advanced Protocol Features 🎯

Unified Cross-Chain Position Management

  • Real-Time Synchronization: Instant position updates across all connected blockchain networks
  • Comprehensive Risk Assessment: Holistic evaluation of user positions for accurate risk calculation
  • Cross-Chain Collateral Optimization: Efficient utilization of assets across multiple networks without bridging

Sophisticated Liquidation Ecosystem

  • Community-Driven Liquidations: Permissionless liquidation system with economic incentives for participants
  • Partial Liquidation Support: Flexible liquidation amounts based on precise debt coverage requirements
  • Automatic Refund Mechanisms: Built-in overpayment protection and surplus return for liquidators
  • Cross-Chain Coordination: Seamless liquidation processing across all connected networks

Extensible Protocol Architecture

  • Modular Design: Clean separation of concerns enabling easy maintenance and future upgrades
  • Plugin-Compatible Asset Support: Standardized interfaces for seamless integration of new assets
  • Configurable Risk Parameters: Administrative control over key protocol parameters (LTV, liquidation thresholds)
  • Scalable Chain Integration: Framework for adding new blockchain networks with minimal code changes

Monitoring & Analytics πŸ“Š

Event Tracking System

  • MessageSent: CCIP outbound message tracking with fees and destinations
  • MessageReceived: Inbound cross-chain message processing confirmation
  • Position Updates: Real-time tracking of lending and borrowing position changes
  • Liquidation Events: Comprehensive liquidation tracking across all chains

Protocol Health Metrics

  • Total Value Locked (TVL): Aggregate value across all connected chains
  • Utilization Rates: Asset-specific borrowing utilization tracking
  • Liquidation Statistics: Health metrics and liquidation frequency analysis
  • Cross-Chain Activity: Message volume and cross-chain operation statistics

Testing & Quality Assurance πŸ§ͺ

Comprehensive Test Suite

  • Unit Tests: Individual function testing with edge case coverage
  • Integration Tests: Cross-chain message flow and position synchronization testing
  • Liquidation Scenarios: Comprehensive liquidation testing across various market conditions
  • Oracle Integration Tests: Price feed integration and staleness protection validation

Security Considerations

  • Reentrancy Protection: All state-changing functions secured against reentrancy attacks
  • Oracle Manipulation Resistance: Multiple validation layers for price feed integrity
  • Cross-Chain Message Security: CCIP provides cryptographic message verification
  • Economic Security Model: Overcollateralization and liquidation incentives maintain protocol stability

Future Development Roadmap πŸ›£οΈ

Planned Enhancements

  • Multi-Asset Liquidation: Support for liquidating multiple collateral types simultaneously
  • Dynamic Risk Parameters: Algorithmic adjustment of LTV and liquidation thresholds
  • Governance Integration: Community-driven protocol parameter management
  • Additional Chain Support: Expansion to more blockchain networks

Scalability Improvements

  • Gas Optimization: Continued optimization of cross-chain message costs
  • Batch Operations: Enhanced support for multiple operations in single transactions
  • Cross-Chain Yield Strategies: Integration with yield farming protocols across chains

Quick Start Guide 🏁

For Developers

  1. Clone Repository: Access the CrossCredit contracts repository
  2. Install Dependencies: Set up Foundry and required dependencies
  3. Configure Networks: Set up RPC endpoints for target chains
  4. Deploy Contracts: Use provided deployment scripts
  5. Configure Protocol: Set up assets, price feeds, and cross-chain mappings

For Users

  1. Connect Wallet: Use MetaMask or compatible wallet
  2. Select Networks: Choose source and destination chains
  3. Deposit Collateral: Use lend() function to deposit assets
  4. Borrow Assets: Access liquidity on any connected chain
  5. Manage Positions: Monitor and adjust positions as needed

For Integrators

  1. Interface Integration: Implement ICrossCredit interface
  2. Event Monitoring: Set up event listeners for position tracking
  3. Price Feed Integration: Connect to protocol price data
  4. Cross-Chain Coordination: Handle multi-chain user experiences

CrossCredit represents the next evolution of DeFi infrastructure, providing seamless cross-chain lending and borrowing capabilities through sophisticated integration with Chainlink's proven oracle and cross-chain technologies. The protocol's modular architecture, comprehensive security framework, and extensible design make it an ideal foundation for the multi-chain DeFi ecosystem.

Key Differentiators:

  • True Cross-Chain Operations: No asset bridging required
  • Chainlink-Powered Security: Proven oracle and messaging infrastructure
  • Comprehensive Risk Management: Multi-chain position tracking and validation
  • Developer-Friendly Architecture: Clean interfaces and extensive documentation
  • Community-Driven Liquidations: Decentralized protocol health maintenance

⚠️ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ WARNING β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ ⚠️

The CrossCredit smart contracts are experimental and have NOT been audited.

They may contain bugs, vulnerabilities, or unintended behavior.

🚫 Use at your own risk.
🚧 Do NOT deploy in production environments without a professional security audit.


CrossCredit authors assume no responsibility for any loss or damage.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors