Wickra Exchange

September 17, 2026 · View on GitHub

Wickra Exchange — streaming-native crypto-exchange connectivity: one typed API over the ten largest exchanges, across ten languages

CI codecov NuGet License: MIT OR Apache-2.0

Wickra Exchange — C#


▶ Live demo: all 514 indicators over real Binance market data, computed live in your browser — live.wickra.org · zero backend, powered by wickra-wasm.

One typed API. Ten exchanges. Eight languages — for C#. dotnet add package WickraExchange — prebuilt native library, no system dependencies.

.NET bindings for wickra-exchange over the Wickra C ABI via P/Invoke. One synchronous, pull-based API over the ten largest crypto exchanges, plus offline paper and replay simulators that share the same API.

Install

dotnet add package WickraExchange

The native library ships prebuilt per platform under runtimes/<rid>/native/, selected automatically. There is nothing to compile. Targets .NET 8 and later.

Requires .NET 8+. The native library (wickra_exchange) must be resolvable on the loader path (PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS). The same strategy runs paper, replay and live by swapping the constructor. Licensed under MIT OR Apache-2.0.

Quick start

using WickraExchange;
using System.Collections.Generic;

using var ex = Exchange.Paper(new Dictionary<string, double> { ["USDT"] = 100_000.0 },
                              makerBps: 0, takerBps: 5, slippageBps: 0);
ex.SetPrice("BTC/USDT", 20_000.0);
var order = ex.PlaceMarket("BTC/USDT", Side.Buy, 1.0);
Console.WriteLine(order.Status);        // Filled
Console.WriteLine(ex.Balance("BTC"));    // 1.0

Benchmark

Every binding forwards to the same data-driven Rust core, so what this one adds is the call overhead of [LibraryImport] P/Invoke over the C ABI, not a different result. The core's throughput is measured by the repository's benchmark suite and the nightly bench.yml run; the numbers, the machine and how to reproduce them are in the repository BENCHMARKS.md.

Documentation

The full guide, the spec reference and the API documentation live in the main repository and the documentation site:

Wickra Exchange ships native bindings for Python, Node.js, WASM and Rust, plus a C ABI hub that any C-capable language (C, C++, C#, Go, Java, R) links against — all forwarding to the same data-driven, unsafe-forbidden Rust core.

Security

Found a security issue? Please don't open a public issue. Report it privately via the repository's Security tab ("Report a vulnerability") or email support@wickra.org with a subject line starting [wickra security]. Full policy: https://github.com/wickra-lib/wickra-exchange/blob/main/SECURITY.md.

Disclaimer

Not a trading system and not financial advice. This library connects to exchanges and can place real orders that risk real capital; any such use is entirely at your own risk. Authentication, order rounding, reconnect handling and rate limiting can fail in ways that lose money — test against testnets, use withdrawal-disabled keys, and review the code before trading. The software is provided as is, without warranty of any kind; see the license files for the full terms.

License

Licensed under either of Apache-2.0 or MIT at your option.