/ccxt-csharp
CCXT cryptocurrency exchange library for C# and .NET developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in
$ npx -y skills add ccxt/ccxt --skill ccxt-csharp --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ccxt-csharp
Context preview
The summary Claude sees to decide when to auto-load this skill.
CCXT cryptocurrency exchange library for C# and .NET developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in
SKILL.md
ccxt-csharp.SKILL.mdname: ccxt-csharp
description: CCXT cryptocurrency exchange library for C# and .NET developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in .NET projects. Use when working with crypto exchanges in C# applications, trading systems, or financial software. Supports .NET Standard 2.0+.
CCXT for C#
A comprehensive guide to using CCXT in C# and .NET projects for cryptocurrency exchange integration.
Installation
Via NuGet Package Manager
dotnet add package CCXT.NET
Or via Visual Studio: 1. Right-click project → Manage NuGet Packages 2. Search for "CCXT.NET" 3. Click Install
Requirements
- .NET Standard 2.0 or higher
- .NET Core 2.0+ / .NET 5+ / .NET Framework 4.6.1+
Quick Start
REST API
using ccxt;
var exchange = new Binance();
await exchange.LoadMarkets();
var ticker = await exchange.FetchTicker("BTC/USDT");
Console.WriteLine(ticker);WebSocket API - Real-time Updates
using ccxt.pro;
var exchange = new Binance();
while (true)
{
var ticker = await exchange.WatchTicker("BTC/USDT");
Console.WriteLine(ticker.Last); // Live updates!
}
await exchange.Close();REST vs WebSocket
| Feature | REST API | WebSocket API | |---------|----------|---------------| | **Use for** | One-time queries, placing orders | Real-time monitoring, live price feeds | | **Import** | `using ccxt;` | `using ccxt.pro;` | | **Methods** | `Fetch*` (FetchTicker, FetchOrderBook) | `Watch*` (WatchTicker, WatchOrderBook) | | **Speed** | Slower (HTTP request/response) | Faster (persistent connection) | | **Rate limits** | Strict (1-2 req/sec) | More lenient (continuous stream) | | **Best for** | Trading, account management | Price monitoring, arbitrage detection |
**Method naming:** C# uses PascalCase - `FetchTicker` not `fetchTicker`, `WatchTicker` not `watchTicker`
Creating Exchange Instance
REST API
using ccxt;
// Public API (no authentication)
var exchange = new Binance
{
EnableRateLimit = true // Recommended!
};
// Private API (with authentication)
var exchange = new Binance
{
ApiKey = "YOUR_API_KEY",
Secret = "YOUR_SECRET",
EnableRateLimit = true
};WebSocket API
using ccxt.pro;
// Public WebSocket
var exchange = new Binance();
// Private WebSocket (with authentication)
var exchange = new Binance
{
ApiKey = "YOUR_API_KEY",
Secret = "YOUR_SECRET"
};
// Always close when done
await exchange.Close();Common REST Operations
Loading Markets
// Load all available trading pairs
await exchange.LoadMarkets();
// Access market information
var btcMarket = exchange.Market("BTC/USDT");
Console.WriteLine(btcMarket.Limits.Amount.Min); // Minimum order amountFetching Ticker
// Single ticker
var ticker = await exchange.FetchTicker("BTC/USDT");
Console.WriteLine(ticker.Last); // Last price
Console.WriteLine(ticker.Bid); // Best bid
Console.WriteLine(ticker.Ask); // Best ask
Console.WriteLine(ticker.Volume); // 24h volume
// Multiple tickers (if supported)
var tickers = await exchange.FetchTickers(new[] { "BTC/USDT", "ETH/USDT" });Fetching Order Book
// Full orderbook
var orderbook = await exchange.FetchOrderBook("BTC/USDT");
Console.WriteLine(orderbook.Bids[0]); // [price, amount]
Console.WriteLine(orderbook.Asks[0]); // [price, amount]
// Limited depth
var orderbook = await exchange.FetchOrderBook("BTC/USDT", 5); // Top 5 levelsCreating Orders
Limit Order
// Buy limit order
var order = await exchange.CreateLimitBuyOrder("BTC/USDT", 0.01, 50000);
Console.WriteLine(order.Id);
// Sell limit order
var order = await exchange.CreateLimitSellOrder("BTC/USDT", 0.01, 60000);
// Generic limit order
var order = await exchange.CreateOrder("BTC/USDT", "limit", "buy", 0.01, 50000);Market Order
// Buy market order
var order = await exchange.CreateMarketBuyOrder("BTC/USDT", 0.01);
// Sell market order
var order = await exchange.CreateMarketSellOrder("BTC/USDT", 0.01);
// Generic market order
var order = await exchange.CreateOrder("BTC/USDT", "market", "sell", 0.01);Fetching Balance
var balance = await exchange.FetchBalance();
Console.WriteLine(balance["BTC"].Free); // Available balance
Console.WriteLine(balance["BTC"].Used); // Balance in orders
Console.WriteLine(balance["BTC"].Total); // Total balance
Fetching Orders
// Open orders
var openOrders = await exchange.FetchOpenOrders("BTC/USDT");
// Closed orders
var closedOrders = await exchange.FetchClosedOrders("BTC/USDT");
// All orders (open + closed)
var allOrders = await exchange.FetchOrders("BTC/USDT");
// Single order by ID
var order = await exchange.FetchOrder(orderId, "BTC/USDT");Fetching Trades
// Recent public trades
var trades = await exchange.FetchTrades("BTC/USDT", limit: 10);
// Your trades (requires authentication)
var myTrades = await exchange.FetchMyTrades("BTC/USDT");Canceling Orders
// Cancel single order
await exchange.CancelOrder(orderId, "BTC/USDT");
// Cancel all orders for a symbol
await exchange.CancelAllOrders("BTC/USDT");WebSocket Operations (Real-time)
Watching Ticker (Live Price Updates)
using ccxt.pro;
var exchange = new Binance();
while (true)
{
var ticker = await exchange.WatchTicker("BTC/USDT");
Console.WriteLine($"Last: {ticker.Last}");
}
await exchange.Close();Watching Order Book (Live Depth Updates)
var exchange = new Binance();
while (true)
{
var orderbook = await exchange.WatchOrderBook("BTC/USDT");
Console.WriteLine($"Best bid: {orderbook.Bids[0][0]}");
Console.WriteLine($"Best ask: {orderbook.Asks[0][0]}");
}
await exchange.Close();Watching Tr
Read more
name: ccxt-csharp description: CCXT cryptocurrency exchange library for C# and .NET developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in .NET projects. Use when working with crypto exchanges in C# applications, trading systems, or financial software. Supports .NET Standard 2.0+.
CCXT for C#
A comprehensive guide to using CCXT in C# and .NET projects for cryptocurrency exchange integration.
Installation
Via NuGet Package Manager
dotnet add package CCXT.NET
Or via Visual Studio: 1. Right-click project → Manage NuGet Packages 2. Search for "CCXT.NET" 3. Click Install
Requirements
- .NET Standard 2.0 or higher
- .NET Core 2.0+ / .NET 5+ / .NET Framework 4.6.1+
Quick Start
REST API
using ccxt;
var exchange = new Binance();
await exchange.LoadMarkets();
var ticker = await exchange.FetchTicker("BTC/USDT");
Console.WriteLine(ticker);WebSocket API - Real-time Updates
using ccxt.pro;
var exchange = new Binance();
while (true)
{
var ticker = await exchange.WatchTicker("BTC/USDT");
Console.WriteLine(ticker.Last); // Live updates!
}
await exchange.Close();REST vs WebSocket
| Feature | REST API | WebSocket API | |---------|----------|---------------| | **Use for** | One-time queries, placing orders | Real-time monitoring, live price feeds | | **Import** | `using ccxt;` | `using ccxt.pro;` | | **Methods** | `Fetch*` (FetchTicker, FetchOrderBook) | `Watch*` (WatchTicker, WatchOrderBook) | | **Speed** | Slower (HTTP request/response) | Faster (persistent connection) | | **Rate limits** | Strict (1-2 req/sec) | More lenient (continuous stream) | | **Best for** | Trading, account management | Price monitoring, arbitrage detection |
**Method naming:** C# uses PascalCase - `FetchTicker` not `fetchTicker`, `WatchTicker` not `watchTicker`
Creating Exchange Instance
REST API
using ccxt;
// Public API (no authentication)
var exchange = new Binance
{
EnableRateLimit = true // Recommended!
};
// Private API (with authentication)
var exchange = new Binance
{
ApiKey = "YOUR_API_KEY",
Secret = "YOUR_SECRET",
EnableRateLimit = true
};WebSocket API
using ccxt.pro;
// Public WebSocket
var exchange = new Binance();
// Private WebSocket (with authentication)
var exchange = new Binance
{
ApiKey = "YOUR_API_KEY",
Secret = "YOUR_SECRET"
};
// Always close when done
await exchange.Close();Common REST Operations
Loading Markets
// Load all available trading pairs
await exchange.LoadMarkets();
// Access market information
var btcMarket = exchange.Market("BTC/USDT");
Console.WriteLine(btcMarket.Limits.Amount.Min); // Minimum order amountFetching Ticker
// Single ticker
var ticker = await exchange.FetchTicker("BTC/USDT");
Console.WriteLine(ticker.Last); // Last price
Console.WriteLine(ticker.Bid); // Best bid
Console.WriteLine(ticker.Ask); // Best ask
Console.WriteLine(ticker.Volume); // 24h volume
// Multiple tickers (if supported)
var tickers = await exchange.FetchTickers(new[] { "BTC/USDT", "ETH/USDT" });Fetching Order Book
// Full orderbook
var orderbook = await exchange.FetchOrderBook("BTC/USDT");
Console.WriteLine(orderbook.Bids[0]); // [price, amount]
Console.WriteLine(orderbook.Asks[0]); // [price, amount]
// Limited depth
var orderbook = await exchange.FetchOrderBook("BTC/USDT", 5); // Top 5 levelsCreating Orders
Limit Order
// Buy limit order
var order = await exchange.CreateLimitBuyOrder("BTC/USDT", 0.01, 50000);
Console.WriteLine(order.Id);
// Sell limit order
var order = await exchange.CreateLimitSellOrder("BTC/USDT", 0.01, 60000);
// Generic limit order
var order = await exchange.CreateOrder("BTC/USDT", "limit", "buy", 0.01, 50000);Market Order
// Buy market order
var order = await exchange.CreateMarketBuyOrder("BTC/USDT", 0.01);
// Sell market order
var order = await exchange.CreateMarketSellOrder("BTC/USDT", 0.01);
// Generic market order
var order = await exchange.CreateOrder("BTC/USDT", "market", "sell", 0.01);Fetching Balance
var balance = await exchange.FetchBalance(); Console.WriteLine(balance["BTC"].Free); // Available balance Console.WriteLine(balance["BTC"].Used); // Balance in orders Console.WriteLine(balance["BTC"].Total); // Total balance
Fetching Orders
// Open orders
var openOrders = await exchange.FetchOpenOrders("BTC/USDT");
// Closed orders
var closedOrders = await exchange.FetchClosedOrders("BTC/USDT");
// All orders (open + closed)
var allOrders = await exchange.FetchOrders("BTC/USDT");
// Single order by ID
var order = await exchange.FetchOrder(orderId, "BTC/USDT");Fetching Trades
// Recent public trades
var trades = await exchange.FetchTrades("BTC/USDT", limit: 10);
// Your trades (requires authentication)
var myTrades = await exchange.FetchMyTrades("BTC/USDT");Canceling Orders
// Cancel single order
await exchange.CancelOrder(orderId, "BTC/USDT");
// Cancel all orders for a symbol
await exchange.CancelAllOrders("BTC/USDT");WebSocket Operations (Real-time)
Watching Ticker (Live Price Updates)
using ccxt.pro;
var exchange = new Binance();
while (true)
{
var ticker = await exchange.WatchTicker("BTC/USDT");
Console.WriteLine($"Last: {ticker.Last}");
}
await exchange.Close();Watching Order Book (Live Depth Updates)
var exchange = new Binance();
while (true)
{
var orderbook = await exchange.WatchOrderBook("BTC/USDT");
Console.WriteLine($"Best bid: {orderbook.Bids[0][0]}");
Console.WriteLine($"Best ask: {orderbook.Asks[0][0]}");
}
await exchange.Close();Watching Tr
A crypto trading API with more than 100 exchanges and prediction markets in JavaScript / TypeScript / Python / C# / PHP / Go / Java.
Repo: ccxt/ccxt
Other skills on ccxt.
- /ccxt-cli
CCXT command-line interface (ccxt-cli) for interacting with 100+ cryptocurrency exchanges directly from the terminal — no code required. Covers installing the CLI, calling any unified CCXT method (fetchTicker, fetchOHLCV, createOrder, fetchBalance), passing arguments and
Open skill - /ccxt-go
CCXT cryptocurrency exchange library for Go developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in Go
Open skill - /ccxt-java
CCXT cryptocurrency exchange library for Java developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in Java
Open skill - /ccxt-php
CCXT cryptocurrency exchange library for PHP developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in PHP
Open skill - /ccxt-python
CCXT cryptocurrency exchange library for Python developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in
Open skill - /ccxt-typescript
CCXT cryptocurrency exchange library for TypeScript and JavaScript developers (Node.js and browser). Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle
Open skill

