🚀 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.
- 🎯 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
dotnet add package CCXT.Simple
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);
OKX | Bitstamp | Coinbase | Coinone | Bithumb | Kraken | Binance | Upbit
Huobi | KuCoin | Korbit
Bitfinex • Gemini • Poloniex • Mexc • Deribit • Bitmex
Remaining adapters are generated skeletons awaiting implementation.
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);
}
// 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}");
- 🗺️ Development Roadmap - Future plans, milestones, technical tasks
- 🏢 Exchange Status - Complete list of 110 exchanges and implementation status
- 📝 Changelog - Version history and recent updates
- 💻 Code Examples - Interactive samples for Bithumb, Bitget, Coinone, Kraken
git clone https://github.com/ccxt-net/ccxt.simple.git
cd ccxt.simple
dotnet run --project samples/ccxt.sample.csproj
We welcome contributions! Need a specific exchange implemented? Create an issue - exchanges with more community requests get priority.
git clone https://github.com/ccxt-net/ccxt.simple.git
cd ccxt.simple
dotnet build # Build solution
dotnet test # Run 73 tests
- 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
- SEONGAHN - Lead Developer & Project Architect (lisa@odinsoft.co.kr)
- YUJIN - Senior Developer & Exchange Integration Specialist (yoojin@odinsoft.co.kr)
- SEJIN - Software Developer & API Implementation (saejin@odinsoft.co.kr)
- 🐛 Issues: GitHub Issues
- 📧 Email: help@odinsoft.co.kr
MIT License - see LICENSE.txt for details.
Built with ❤️ by the ODINSOFT Team | ⭐ Star us on GitHub