ccxt.simple

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

Bitfinex β€’ Gemini β€’ Poloniex β€’ Mexc β€’ Deribit β€’ Bitmex

πŸ“‹ 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/odinsoft-lab/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/odinsoft-lab/ccxt.simple.git
cd ccxt.simple
dotnet build              # Build solution  
dotnet test               # Run 73 tests

πŸ“Š Project Status

  • Current Version: 1.1.10 (.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.md for details.


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

Visit original content creator repository https://github.com/ccxt-net/ccxt.simple

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *