Library / SDK
JKorf/CryptoExchange.Net avatar
JKorf/CryptoExchange.Net

CryptoExchange.Net: one C# shape for many exchange APIs

A C# .netstandard base library used for implementing cryptocurrency exchange API's.

570 stars235 forksC#MIT

At a glance

What is it?
CryptoExchange.Net is a .NET Standard base library that exchange client libraries build on, so a Binance, OKX or Bybit integration exposes the same patterns and a similar experience. The base package cannot call an exchange by itself, and the project also ships agent instruction files, a shared clients package and a set of examples for people working with AI coding assistants.
Who is it for?
CryptoExchange.Net fits a .NET team that supports several exchanges and wants one calling convention, one set of shared client interfaces and one place to fix a breaking change, rather than a separate hand-written integration per venue. It does not fit someone who wants a single exchange integration, since the base package cannot call an API on its own, and a project with one exchange is usually better served by that exchange's own client library.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A base library you do not call directly

CryptoExchange.Net is described in the repository metadata as a C# .NET Standard base library used for implementing cryptocurrency exchange APIs, and the README is explicit about a point that trips people up. The CryptoExchange.Net package itself cannot be used directly for accessing APIs. You either install a client library from the list in the ecosystem table, or you use CryptoClients.Net, which includes access to all the exchange APIs. What the base library provides is a standardized way of implementing different APIs, which the README says results in a very similar experience for users of the API implementations. The audience is therefore a developer writing an exchange integration, or an application team that would rather consume a uniform interface than learn each venue's naming conventions. The project has existed since 2018 according to the badge in the header, is MIT licensed, and the current release is version 13.2.1, published on 2026-10-19 with the last push on the same day.

Shared client interfaces and the SharedApis V2 pattern

The mechanism behind the uniformity is a set of shared interfaces that each exchange implementation maps onto its own wire format. The README gives a concrete way to see this working, in the form of a prompt to give an AI coding assistant:

text
> "Show me how to fetch BTC/USDT spot tickers from Binance and OKX concurrently in C# using the SharedApis V2 pattern."

The expected output, as the README states it, should use the .SharedApi properties, SharedSymbol, IGetTickerRest and Task.WhenAll. That single sentence is a compact specification of the design. A ticker request is expressed against a shared interface, IGetTickerRest, the instrument is named with the shared symbol type, the client exposes its shared API surface, and the concurrency is ordinary .NET async code with Task.WhenAll. The value is that an application written against the shared interface keeps working when you swap the venue, and the same pattern holds for order books, trades and account calls.

The ecosystem table covers exchanges, and carries referral links

The README carries a table of the libraries in the ecosystem, with a column for API type, repository, NuGet package, referral link and referral fee discount. The venues listed include Aster as a DEX, and CEX venues such as Binance, BingX, Bitfinex, Bitget, BitMart, Bitstamp, BloFin, Bybit, Coinbase, CoinEx, CoinW and CoinGecko. The table also invites you to consider using a referral link to support development and mentions a possible trading fee discount, with the discount column showing entries such as 20 percent for Binance, BingX and CoinEx, 30 percent for BitMart and 4 percent for Aster, and dashes for the exchanges with no referral arrangement. That is worth naming plainly rather than glossing over. The libraries are MIT licensed and the base library is free, but the exchange client packages are distributed with a commercial referral attached, so a team that does not want its users routed through an affiliate link has to check the table before choosing a package.

The repository ships instruction files for AI coding assistants

One thing stands out about this repository compared with a typical exchange client library, and it is a section titled For AI Coding Assistants. The library and the wider ecosystem are described as providing first-class support for AI coding assistants, and the README then lists where those instructions live:

text
- **Agents**: `AGENTS.md` (auto-detected at repo root)
- **Cursor**: `.cursor/rules/cryptoexchange-net.mdc`
- **GitHub Copilot**: `.github/copilot-instructions.md`
- **Other tools** (Windsurf, Codex, Continue, Aider, etc.): `llms.txt` at repo root
- **Compilable examples**: `Examples/ai-friendly/`

For single-exchange code the README points at the same kind of files in each exchange's own repository, naming Binance.Net, Bybit.Net and OKX.Net as examples, and it links a cryptoexchange-skills-hub repository of installable skills. The top-level entries confirm the shape, with AGENTS.md, llms.txt, llms-full.txt and a .cursor directory at the root. For a library with a uniform but non-obvious interface, publishing the conventions as machine-readable instructions is a practical decision, and it is rare enough to be worth a paragraph on its own.

The examples folder does the work a tutorial would

The repository layout shows where a new user should actually start. Under Examples there is a BlazorClient, a ConsoleClient, a SharedClients directory, an ai-friendly directory and an example-config.json file, plus a README. The SharedClients project is the one to read if you want to see how a single application talks to more than one exchange through the shared interfaces, and the Blazor and Console clients show the same thing without a browser framework in the way. The example-config.json is presumably the shape of the client configuration, which is a useful reference when you are wiring credentials and options for the first time. The root also has a CryptoExchange.Net.sln, a CryptoExchange.Net directory for the library itself, a CryptoExchange.Net.UnitTests directory, a docs directory and the llms files, so the documentation exists in three forms, prose, compiled examples and machine-readable instructions.

Version 13 and a fast release cadence

The release history shows a project that ships often. Version 13.1.0 came out on 2026-09-28, 13.2.0 on 2026-10-13 and 13.2.1 on 2026-10-19, so the 13.2 line moved twice in three weeks. That cadence is typical of a library that has to absorb exchange API changes as they happen, and it is the main operational consideration for anyone depending on it, because a version number that moves this fast needs pinning rather than floating. The .NET Standard base is what lets a single library serve a wide range of target frameworks, and the library targets .NET, with the unit test project alongside it and the build running through GitHub Actions on the dotnet workflow. Documentation lives on a separate site, cryptoexchange.jkorf.dev, and the README is explicit that the base library and the client libraries are described there.

Editorial conclusion

CryptoExchange.Net fits a .NET team that supports several exchanges and wants one calling convention, one set of shared client interfaces and one place to fix a breaking change, rather than a separate hand-written integration per venue. It does not fit someone who wants a single exchange integration, since the base package cannot call an API on its own, and a project with one exchange is usually better served by that exchange's own client library. Before adopting it, read the documentation for the shared client interfaces, check the version history of the client library you intend to use against the base library version you pin, and decide whether the referral-linked client packages in the ecosystem table are acceptable for your project.

Frequently asked questions

Can I use CryptoExchange.Net on its own to call an exchange API?

No. The README states that the CryptoExchange.Net package itself cannot be used directly for accessing APIs. You either install a client library from the ecosystem list, such as the Binance, OKX or Bybit packages, or use CryptoClients.Net, which includes access to all the exchange APIs.

What does CryptoExchange.Net give a client library?

It provides a standardized way of implementing different APIs so that users of the implementations get a very similar experience. The shared client interfaces are used through the .SharedApi properties, with types such as SharedSymbol and interfaces such as IGetTickerRest, and the README's worked example combines those with Task.WhenAll to fetch tickers from two exchanges concurrently.

Does CryptoExchange.Net provide support for AI coding assistants?

The README describes first-class support for AI coding assistants, with instruction files in the repository: AGENTS.md at the root, .cursor/rules/cryptoexchange-net.mdc for Cursor, .github/copilot-instructions.md for GitHub Copilot and llms.txt at the root for other tools, plus compilable examples in Examples/ai-friendly and a cryptoexchange-skills-hub repository of installable skills.

Which exchanges have client libraries for CryptoExchange.Net?

The ecosystem table lists Aster as a DEX and CEX venues including Binance, BingX, Bitfinex, Bitget, BitMart, Bitstamp, BloFin, Bybit, Coinbase, CoinEx, CoinW and CoinGecko, each with its own repository and NuGet package. The table also lists a referral link and fee discount per exchange, with dashes for the venues that have no referral arrangement.

Official sources

  1. JKorf/CryptoExchange.Net on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/jkorf-cryptoexchange-net.svg)](https://hysenlabs.com/projects/jkorf-cryptoexchange-net)

Was this useful?