CCXT.SIMPLE
1.1.12
dotnet add package CCXT.SIMPLE --version 1.1.12
NuGet\Install-Package CCXT.SIMPLE -Version 1.1.12
<PackageReference Include="CCXT.SIMPLE" Version="1.1.12" />
<PackageVersion Include="CCXT.SIMPLE" Version="1.1.12" />
<PackageReference Include="CCXT.SIMPLE" />
paket add CCXT.SIMPLE --version 1.1.12
#r "nuget: CCXT.SIMPLE, 1.1.12"
#:package CCXT.SIMPLE@1.1.12
#addin nuget:?package=CCXT.SIMPLE&version=1.1.12
#tool nuget:?package=CCXT.SIMPLE&version=1.1.12
CCXT.Simple
π Modern .NET cryptocurrency trading library - Unified API access to 110 exchange adapters (9 FULL, 3 PARTIAL, 98 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 (9 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 (9 exchanges)
Binance | Bitstamp | Bithumb | Bybit | Coinbase | Coinone | Kraken | OKX | Upbit
π Partial / In Progress (3)
Huobi | KuCoin | Korbit
π§ Priority Development Queue
Bitfinex β’ Gemini β’ Poloniex β’ Mexc β’ Deribit β’ Bitmex
π Skeleton Ready (98 exchanges)
Remaining adapters are generated skeletons awaiting implementation.
π‘ 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
- πΊοΈ 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
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 90 tests
π Project Status
- Current Version: 1.1.11 (.NET Standard 2.0/2.1, .NET 8.0, 9.0, 10.0)
- Architecture: Thread-safe, event-driven, REST API focused
- Test Coverage: 90 tests passing across 7 test files
- Active Development: Monthly updates, community-driven priorities
π₯ Team
Core Development Team
- 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)
π Support & Contact
- π Issues: GitHub Issues
- π§ Email: help@odinsoft.co.kr
π License
MIT License - see LICENSE.md for details.
Built with β€οΈ by the ODINSOFT Team | β Star us on GitHub
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- GraphQL.Client (>= 6.1.0)
- GraphQL.Client.Serializer.SystemTextJson (>= 6.1.0)
- Newtonsoft.Json (>= 13.0.4)
- System.IdentityModel.Tokens.Jwt (>= 8.15.0)
-
.NETStandard 2.1
- GraphQL.Client (>= 6.1.0)
- GraphQL.Client.Serializer.SystemTextJson (>= 6.1.0)
- Newtonsoft.Json (>= 13.0.4)
- System.IdentityModel.Tokens.Jwt (>= 8.15.0)
-
net10.0
- GraphQL.Client (>= 6.1.0)
- GraphQL.Client.Serializer.SystemTextJson (>= 6.1.0)
- Newtonsoft.Json (>= 13.0.4)
- System.IdentityModel.Tokens.Jwt (>= 8.15.0)
-
net8.0
- GraphQL.Client (>= 6.1.0)
- GraphQL.Client.Serializer.SystemTextJson (>= 6.1.0)
- Newtonsoft.Json (>= 13.0.4)
- System.IdentityModel.Tokens.Jwt (>= 8.15.0)
-
net9.0
- GraphQL.Client (>= 6.1.0)
- GraphQL.Client.Serializer.SystemTextJson (>= 6.1.0)
- Newtonsoft.Json (>= 13.0.4)
- System.IdentityModel.Tokens.Jwt (>= 8.15.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v1.1.12 - Fix: Clear Authorization header in HttpClientService to prevent accumulation bug
Fix: Resolved InvalidOperationException on consecutive authenticated API calls
HttpClientService: Reset Authorization header before returning cached HttpClient
Samples: Added Upbit sample for testing GetOpenOrders and trading APIs
Samples: Added environment variables support for API key configuration
Samples: Added README.md with usage instructions