Skip to content

ccxt-net/ccxt.simple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CCXT.Simple

NuGet .NET License Downloads

🚀 Modern .NET cryptocurrency trading library - Unified API access to 110 exchange adapters (8 FULL, 3 PARTIAL, 99 SKELETON) with a focus on simplicity and performance.

✨ Key Features

  • 🎯 Unified Interface - Same API across all exchanges
  • ⚡ High Performance - ValueTask<T> async patterns, HTTP client pooling
  • 🔒 Type Safe - Strong typing with comprehensive data models
  • 🌍 Global Coverage - 110 exchange adapters (8 fully validated, 3 in progress)
  • 📊 Complete API - Market data, trading, account management, funding operations

🚀 Quick Start

Installation

dotnet add package CCXT.Simple

Basic Usage

using CCXT.Simple.Exchanges.Binance;

// Initialize exchange
var exchange = new Exchange("USD");
var binance = new XBinance(exchange, "api_key", "secret_key");

// Get market data
var btcPrice = await binance.GetPrice("BTCUSDT");
var orderbook = await binance.GetOrderbook("BTCUSDT", 10);

// Trading operations
var balances = await binance.GetBalance();
var order = await binance.PlaceOrder("BTCUSDT", SideType.Buy, "limit", 0.001m, 50000m);

🏢 Exchange Support

✅ Fully Functional (8 exchanges)

OKX | Bitstamp | Coinbase | Coinone | Bithumb | Kraken | Binance | Upbit

🌓 Partial / In Progress (3)

Huobi | KuCoin | Korbit

🚧 Priority Development Queue

BitfinexGeminiPoloniexMexcDeribitBitmex

📋 Skeleton Ready (99 exchanges)

Remaining adapters are generated skeletons awaiting implementation.

📖 View complete exchange list and status →

💡 Architecture

Built on a multi-exchange adapter pattern with a unified IExchange interface:

public interface IExchange
{
    // Market Data
    ValueTask<Orderbook> GetOrderbook(string symbol, int limit = 5);
    ValueTask<decimal> GetPrice(string symbol);
    
    // Trading
    ValueTask<OrderInfo> PlaceOrder(string symbol, SideType side, string orderType, decimal amount, decimal? price = null);
    ValueTask<Dictionary<string, BalanceInfo>> GetBalance();
    
    // Funding
    ValueTask<DepositAddress> GetDepositAddress(string currency, string network = null);
    ValueTask<WithdrawalInfo> Withdraw(string currency, decimal amount, string address);
}

🔧 Configuration

// Basic setup
var exchange = new Exchange("USD");  // or "KRW", "EUR", etc.
exchange.ApiCallDelaySeconds = 1;    // Rate limiting
exchange.Volume24hBase = 1000000;    // Volume thresholds

// With events
exchange.OnMessageEvent += (ex, msg, code) => Console.WriteLine($"[{ex}] {msg}");
exchange.OnUsdPriceEvent += price => Console.WriteLine($"BTC: ${price}");

📚 Documentation & Examples

Running Examples

git clone https://github.com/ccxt-net/ccxt.simple.git
cd ccxt.simple
dotnet run --project samples/ccxt.sample.csproj

🤝 Contributing

We welcome contributions! Need a specific exchange implemented? Create an issue - exchanges with more community requests get priority.

Development Setup

git clone https://github.com/ccxt-net/ccxt.simple.git
cd ccxt.simple
dotnet build              # Build solution  
dotnet test               # Run 73 tests

📊 Project Status

  • Current Version: 1.1.9 (.NET 8.0 & 9.0 & 10.0)
  • Architecture: Thread-safe, event-driven, REST API focused
  • Test Coverage: 73 tests passing
  • Active Development: Monthly updates, community-driven priorities

👥 Team

Core Development Team

📞 Support & Contact

📄 License

MIT License - see LICENSE.txt for details.


Built with ❤️ by the ODINSOFT Team | ⭐ Star us on GitHub

Packages

No packages published

Contributors 2

  •  
  •  

Languages