mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-08 08:26:20 +00:00
824 lines
40 KiB
HTML
824 lines
40 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, shrink-to-fit=no">
|
|
<link href="assets/images/favicon.png" rel="icon" />
|
|
<title>CryptoExchange.Net Documentation</title>
|
|
<meta name="description" content="Documentation of the CryptoExchange.Net and client implementation libraries">
|
|
<meta name="author" content="JKorf">
|
|
|
|
<!-- Stylesheet
|
|
============================== -->
|
|
<!-- Bootstrap -->
|
|
<link rel="stylesheet" type="text/css" href="assets/vendor/bootstrap/css/bootstrap.min.css" />
|
|
<!-- Font Awesome Icon -->
|
|
<link rel="stylesheet" type="text/css" href="assets/vendor/font-awesome/css/all.min.css" />
|
|
<!-- Magnific Popup -->
|
|
<link rel="stylesheet" type="text/css" href="assets/vendor/magnific-popup/magnific-popup.min.css" />
|
|
<!-- Highlight Syntax -->
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
|
|
<!--<link rel="stylesheet" type="text/css" href="assets/vendor/highlight.js/styles/github.css" />-->
|
|
<!-- Custom Stylesheet -->
|
|
<link rel="stylesheet" type="text/css" href="assets/css/stylesheet.css" />
|
|
</head>
|
|
|
|
<body class="box" data-spy="scroll" data-target=".idocs-navigation" data-offset="125">
|
|
|
|
<!-- Preloader -->
|
|
<div class="preloader">
|
|
<div class="lds-ellipsis">
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
</div>
|
|
<!-- Preloader End -->
|
|
|
|
<!-- Document Wrapper
|
|
=============================== -->
|
|
<div id="main-wrapper">
|
|
|
|
<!-- Header
|
|
============================ -->
|
|
<header id="header" class="sticky-top">
|
|
<!-- Navbar -->
|
|
<nav class="primary-menu navbar navbar-expand-lg navbar-dropdown-dark">
|
|
<div class="container-fluid">
|
|
<!-- Sidebar Toggler -->
|
|
<button id="sidebarCollapse" class="navbar-toggler d-block d-md-none" type="button"><span></span><span class="w-75"></span><span class="w-50"></span></button>
|
|
|
|
<!-- Logo -->
|
|
<a class="logo ml-md-3" href="index.html" title="iDocs Template"> <img src="assets/images/logo.png" alt="iDocs Template"/> </a>
|
|
<span class="text-2 ml-2"></span>
|
|
<!-- Logo End -->
|
|
|
|
<!-- Navbar Toggler -->
|
|
<button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#header-nav"><span></span><span></span><span></span></button>
|
|
|
|
<ul class="social-icons social-icons-sm ml-lg-2 mr-2">
|
|
<li class="social-icons-nuget"><a data-toggle="tooltip" href="http://www.nuget.org/profiles/JKorf/" target="_blank" title="" data-original-title="Nuget">Nuget</a></li>
|
|
<li><a data-toggle="tooltip" href="http://www.github.com/JKorf/CryptoExchange.Net" target="_blank" title="" data-original-title="GitHub"><i class="fab fa-github"></i></a></li>
|
|
<li><a data-toggle="tooltip" href="https://discord.gg/Wyqd4hegMZ" target="_blank" title="" data-original-title="Discord"><i class="fab fa-discord"></i></a></li>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
<!-- Navbar End -->
|
|
</header>
|
|
<!-- Header End -->
|
|
|
|
<!-- Content
|
|
============================ -->
|
|
<div id="content" role="main">
|
|
|
|
<!-- Sidebar Navigation
|
|
============================ -->
|
|
<div class="idocs-navigation bg-light">
|
|
<ul class="nav flex-column ">
|
|
<li class="nav-item"><a class="nav-link active" href="#idocs_intro">Introduction</a></li>
|
|
<li class="nav-item"><a class="nav-link active" href="#idocs_start">Getting Started</a>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_installation">Installation</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_di">Dependency Injection</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_rest">REST API Client</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_socket">Websocket API Client</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_common">Common clients</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_options">Options & Authorization</a>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_auth">Authorization</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_options_set">Setting options</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_options_def">Option definitions</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_features">Features</a>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_orderbooks">Orderbooks</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_logging">Logging</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_ratelimiting">Ratelimiting</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_examples">Examples</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_glossary">Glossary</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="#idocs_faq">FAQ</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- Docs Content
|
|
============================ -->
|
|
<div class="idocs-content">
|
|
<div class="container">
|
|
<section id="idocs_intro">
|
|
<h1>CryptoExchange.Net</h1>
|
|
|
|
<p>CryptoExchange.Net is a base library which is used to implement different cryptocurrency (exchange) API's. It provides a standardized way of implementing different API's, which results in a very similar experience for users of the API implementations.</p>
|
|
<div class="alert alert-info">All libraries can be used in the same project as well as indivually.</div>
|
|
<p>The following API's are directly supported. Note that there are 3rd party implementations going around, but only these are created and supported by me</p>
|
|
|
|
<table class="table table-bordered">
|
|
<tr>
|
|
<th>Exchange</th>
|
|
<th>Repository</th>
|
|
<th>Nuget</th>
|
|
</tr>
|
|
<tr><td>Binance</td><td><a href="https://github.com/JKorf/Binance.Net">JKorf/Binance.Net</a></td><td><a href="https://www.nuget.org/packages/Binance.Net"><img src="https://img.shields.io/nuget/v/Binance.net.svg" /></a></td></tr>
|
|
<tr><td>Bitfinex</td><td><a href="https://github.com/JKorf/Bitfinex.Net">JKorf/Bitfinex.Net</a></td><td><a href="https://www.nuget.org/packages/Bitfinex.Net"><img src="https://img.shields.io/nuget/v/Bitfinex.net.svg" /></a></td></tr>
|
|
<tr><td>Bitget</td><td><a href="https://github.com/JKorf/Bitget.Net">JKorf/Bitget.Net</a></td><td><a href="https://www.nuget.org/packages/JK.Bitget.Net"><img src="https://img.shields.io/nuget/v/JK.Bitget.net.svg" /></a></td></tr>
|
|
<tr><td>Bybit</td><td><a href="https://github.com/JKorf/Bybit.Net">JKorf/Bybit.Net</a></td><td><a href="https://www.nuget.org/packages/Bybit.Net"><img src="https://img.shields.io/nuget/v/Bybit.net.svg" /></a></td></tr>
|
|
<tr><td>CoinEx</td><td><a href="https://github.com/JKorf/CoinEx.Net">JKorf/CoinEx.Net</a></td><td><a href="https://www.nuget.org/packages/CoinEx.Net"><img src="https://img.shields.io/nuget/v/CoinEx.net.svg" /></a></td></tr>
|
|
<tr><td>CoinGecko</td><td><a href="https://github.com/JKorf/CoinGecko.Net">JKorf/CoinGecko.Net</a></td><td><a href="https://www.nuget.org/packages/CoinGecko.Net"><img src="https://img.shields.io/nuget/v/CoinGecko.net.svg" /></a></td></tr>
|
|
<tr><td>Huobi</td><td><a href="https://github.com/JKorf/Huobi.Net">JKorf/Huobi.Net</a></td><td><a href="https://www.nuget.org/packages/Huobi.Net"><img src="https://img.shields.io/nuget/v/Huobi.net.svg" /></a></td></tr>
|
|
<tr><td>Kraken</td><td><a href="https://github.com/JKorf/Kraken.Net">JKorf/Kraken.Net</a></td><td><a href="https://www.nuget.org/packages/KrakenExchange.Net"><img src="https://img.shields.io/nuget/v/KrakenExchange.net.svg" /></a></td></tr>
|
|
<tr><td>Kucoin</td><td><a href="https://github.com/JKorf/Kucoin.Net">JKorf/Kucoin.Net</a></td><td><a href="https://www.nuget.org/packages/Kucoin.Net"><img src="https://img.shields.io/nuget/v/Kucoin.net.svg" /></a></td></tr>
|
|
<tr><td>Mexc</td><td><a href="https://github.com/JKorf/Mexc.Net">JKorf/Mexc.Net</a></td><td><a href="https://www.nuget.org/packages/JK.Mexc.Net"><img src="https://img.shields.io/nuget/v/JK.Mexc.net.svg" /></a></td></tr>
|
|
<tr><td>OKX</td><td><a href="https://github.com/JKorf/OKX.Net">JKorf/OKX.Net</a></td><td><a href="https://www.nuget.org/packages/JK.OKX.Net"><img src="https://img.shields.io/nuget/v/JK.OKX.net.svg" /></a></td></tr>
|
|
</table>
|
|
|
|
<h4>Discord</h4>
|
|
<p>A Discord server is available <a href="https://discord.gg/MSpeEtSY8t">here</a>. Feel free to join for discussion and/or questions around the CryptoExchange.Net and implementation libraries.</p>
|
|
|
|
<h4>Support the project</h4>
|
|
|
|
<b>Donate</b><br />
|
|
<p>Make a one time donation in a crypto currency of your choice. If you prefer to donate a currency not listed here please contact me.<p>
|
|
|
|
<p><em>Btc</em>: bc1qz0jv0my7fc60rxeupr23e75x95qmlq6489n8gh <br />
|
|
<em>Eth</em>: 0x8E21C4d955975cB645589745ac0c46ECA8FAE504</p>
|
|
|
|
<b>Sponsor</b><br />
|
|
<p>Alternatively, sponsor me on Github using <a href="https://github.com/sponsors/JKorf">Github Sponsors</a>.</p>
|
|
|
|
<div class="alert alert-info">I develop and maintain these packages on my own for free in my spare time, any support is greatly appreciated.</div>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Getting Started
|
|
============================ -->
|
|
<section id="idocs_start">
|
|
<h1>Getting Started</h1>
|
|
<p>All packages are available on Nuget. After installing the package the API is available by using one of the library clients, or through the <code>ICrypoRestClient</code>, <code>ICryptoSocketClient</code> or <code>ISpotClient</code> interfaces.</p>
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Installation
|
|
============================ -->
|
|
<section id="idocs_installation">
|
|
<h2>Installation</h2>
|
|
|
|
<p>Add the package via dotnet, or add it via the package manager</p>
|
|
<ul class="nav nav-tabs" id="install" role="tablist" style="margin-bottom: -16px;">
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link active" id="install-binance-tab" data-toggle="tab" href="#install-binance" role="tab" aria-controls="install-binance" aria-selected="true">Binance</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-bitfinex-tab" data-toggle="tab" href="#install-bitfinex" role="tab" aria-controls="install-bitfinex" aria-selected="false">Bitfinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-bitget-tab" data-toggle="tab" href="#install-bitget" role="tab" aria-controls="install-bitget" aria-selected="false">Bitget</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-bybit-tab" data-toggle="tab" href="#install-bybit" role="tab" aria-controls="install-bybit" aria-selected="false">Bybit</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-coingecko-tab" data-toggle="tab" href="#install-coingecko" role="tab" aria-controls="install-coingecko" aria-selected="false">CoinGecko</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-coinex-tab" data-toggle="tab" href="#install-coinex" role="tab" aria-controls="install-coinex" aria-selected="false">Coinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-huobi-tab" data-toggle="tab" href="#install-huobi" role="tab" aria-controls="install-huobi" aria-selected="false">Huobi</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-kraken-tab" data-toggle="tab" href="#install-kraken" role="tab" aria-controls="install-kraken" aria-selected="false">Kraken</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-kucoin-tab" data-toggle="tab" href="#install-kucoin" role="tab" aria-controls="install-kucoin" aria-selected="false">Kucoin</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-mexc-tab" data-toggle="tab" href="#install-mexc" role="tab" aria-controls="install-mexc" aria-selected="false">Mexc</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="install-okx-tab" data-toggle="tab" href="#install-okx" role="tab" aria-controls="install-okx" aria-selected="false">OKX</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content my-3" id="myTabContent">
|
|
<div class="tab-pane fade show active" id="install-binance" role="tabpanel" aria-labelledby="install-binance-tab">
|
|
<pre><code>dotnet add package Binance.Net</code></pre>
|
|
<img src="assets/images/BinanceInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-bitfinex" role="tabpanel" aria-labelledby="install-bitfinex-tab">
|
|
<pre><code>dotnet add package Bitfinex.Net</code></pre>
|
|
<img src="assets/images/BitfinexInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-bitget" role="tabpanel" aria-labelledby="install-bitget-tab">
|
|
<pre><code>dotnet add package JK.Bitget.Net</code></pre>
|
|
<img src="assets/images/BitgetInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-bybit" role="tabpanel" aria-labelledby="install-bybit-tab">
|
|
<pre><code>dotnet add package Bybit.Net</code></pre>
|
|
<img src="assets/images/BybitInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-coingecko" role="tabpanel" aria-labelledby="install-coingecko-tab">
|
|
<pre><code>dotnet add package CoinGecko.Net</code></pre>
|
|
<img src="assets/images/CoinGeckoInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-coinex" role="tabpanel" aria-labelledby="install-coinex-tab">
|
|
<pre><code>dotnet add package CoinEx.Net</code></pre>
|
|
<img src="assets/images/CoinExInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-huobi" role="tabpanel" aria-labelledby="install-huobi-tab">
|
|
<pre><code>dotnet add package Huobi.Net</code></pre>
|
|
<img src="assets/images/HuobiInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-kraken" role="tabpanel" aria-labelledby="install-kraken-tab">
|
|
<pre><code>dotnet add package KrakenExchange.Net</code></pre>
|
|
<img src="assets/images/KrakenInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-kucoin" role="tabpanel" aria-labelledby="install-kucoin-tab">
|
|
<pre><code>dotnet add package Kucoin.Net</code></pre>
|
|
<img src="assets/images/KucoinInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-mexc" role="tabpanel" aria-labelledby="install-mexc-tab">
|
|
<pre><code>dotnet add package JK.Mexc.Net</code></pre>
|
|
<img src="assets/images/MexcInstall.png" />
|
|
</div>
|
|
<div class="tab-pane fade" id="install-okx" role="tabpanel" aria-labelledby="install-okx-tab">
|
|
<pre><code>dotnet add package JK.OKX.Net</code></pre>
|
|
<img src="assets/images/OKXInstall.png" />
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- HTML Structure
|
|
============================ -->
|
|
<section id="idocs_di">
|
|
<h2>Dependency Injection</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- HTML Structure
|
|
============================ -->
|
|
<section id="idocs_rest">
|
|
<h2>REST API client</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Sass
|
|
============================ -->
|
|
<section id="idocs_socket">
|
|
<h2>Websocket API client</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Customization
|
|
============================ -->
|
|
<section id="idocs_common">
|
|
<h2>Common Clients</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Logo Settings
|
|
============================ -->
|
|
<section id="idocs_options">
|
|
<h1>Options & Authorization</h1>
|
|
|
|
<p>Options for the clients can be provided in a couple of different ways. If no options are configured the default options will be used. For accessing private endpoints and streams API credentials have to be provided.</p>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Header
|
|
============================ -->
|
|
<section id="idocs_auth">
|
|
<h2>Authorization</h2>
|
|
|
|
<p>For private endpoints and data streams the clients will need to know the API credentials of the user accessing the API. API credentials are a way of identifying the user and validating that the user is who he says he is. You can compare it to a username and password login.</p>
|
|
<p>API credentials van be provided via the client options, see next section on how to set these options. There are currently 2 variants of API credentials supported, HMAC and RSA. </p>
|
|
|
|
<p>
|
|
<b>HMAC</b><br />
|
|
HMAC authentication involves 2 values, the API key and API secret. The combination of the two gives access to the account. HMAC is the default authentication method and can be configured as such:
|
|
<pre><code>options.ApiCredentials = new ApiCredentials("YOUR API KEY", "YOUR API SECRET");</code></pre>
|
|
</p>
|
|
|
|
<p>
|
|
<b>RSA</b><br />
|
|
RSA authentication involves generating a private and public key and then uploading the public key to the server. After using the private key to sign the request the server can validate the request by comparing the signature using the public key. Not every exchange supports this authentication method.
|
|
Depending on the version of dotnet used there are 2 ways of configuring the RSA authentication.
|
|
</p>
|
|
<p>
|
|
When running Dotnet version 3.0 or later the easiest way is to use the RsaPem type. This allows you to use the Private key directly. When running from an older Dotnet/.NET framework version you're forced to use the RsaXml type due to framework limitations. This means you'll have to convert the private key to XML format before using it.
|
|
</p>
|
|
<em>RsaXml</em>
|
|
<pre><code class="language-csharp">// when using the .netstandard2.0 compiled version, from .NET framework or Dotnet core 2.2 or lower
|
|
// Private key should look something like this: <RSAKeyValue><Modulus>...</RSAKeyValue>
|
|
options.ApiCredentials = new ApiCredentials("YOUR PUBLIC KEY", "YOUR PRIVATE KEY", ApiCredentialsType.RsaXml);</code></pre>
|
|
<em>RsaPem</em>
|
|
<pre><code class="language-csharp">// when using the .netstandard2.1 compiled version, from Dotnet core 3.0 or later
|
|
// Private key should look something like this: -----BEGIN PRIVATE KEY----- .. -----END PRIVATE KEY-----, or just a long random character string
|
|
options.ApiCredentials = new ApiCredentials("YOUR PUBLIC KEY", "YOUR PRIVATE KEY", ApiCredentialsType.RsaPem);</code></pre>
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Header
|
|
============================ -->
|
|
<section id="idocs_options_set">
|
|
<h2>Setting options</h2>
|
|
|
|
<b>Dependency injection</b>
|
|
<p>When adding a library to the service collection (see <a href="#idocs_di">Dependency Injection</a>) the options for the clients can be provided as argument to the calls. Options are split between the REST and the websocket client.</p>
|
|
<ul class="nav nav-tabs" id="options" role="tablist" style="margin-bottom: -16px;">
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link active" id="options-binance-tab" data-toggle="tab" href="#options-binance" role="tab" aria-controls="options-binance" aria-selected="true">Binance</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bitfinex-tab" data-toggle="tab" href="#options-bitfinex" role="tab" aria-controls="options-bitfinex" aria-selected="false">Bitfinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bitget-tab" data-toggle="tab" href="#options-bitget" role="tab" aria-controls="options-bitget" aria-selected="false">Bitget</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bybit-tab" data-toggle="tab" href="#options-bybit" role="tab" aria-controls="options-bybit" aria-selected="false">Bybit</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-coingecko-tab" data-toggle="tab" href="#options-coingecko" role="tab" aria-controls="options-coingecko" aria-selected="false">CoinGecko</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-coinex" role="tab" aria-controls="options-coinex" aria-selected="false">Coinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-huobi-tab" data-toggle="tab" href="#options-huobi" role="tab" aria-controls="options-huobi" aria-selected="false">Huobi</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-kraken-tab" data-toggle="tab" href="#options-kraken" role="tab" aria-controls="options-kraken" aria-selected="false">Kraken</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-kucoin-tab" data-toggle="tab" href="#options-kucoin" role="tab" aria-controls="options-kucoin" aria-selected="false">Kucoin</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-mexc-tab" data-toggle="tab" href="#options-mexc" role="tab" aria-controls="options-mexc" aria-selected="false">Mexc</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-okx-tab" data-toggle="tab" href="#options-okx" role="tab" aria-controls="options-okx" aria-selected="false">OKX</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content my-3" id="myTabContent">
|
|
<div class="tab-pane fade show active" id="options-binance" role="tabpanel" aria-labelledby="options-binance-tab">
|
|
<pre><code>builder.Services.AddBinance(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-bitfinex" role="tabpanel" aria-labelledby="options-bitfinex-tab">
|
|
<pre><code>builder.Services.AddBitfinex(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-bitget" role="tabpanel" aria-labelledby="options-bitget-tab">
|
|
<pre><code>builder.Services.AddBitget(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-bybit" role="tabpanel" aria-labelledby="options-bybit-tab">
|
|
<pre><code>builder.Services.AddBybit(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-coingecko" role="tabpanel" aria-labelledby="options-coingecko-tab">
|
|
<pre><code>builder.Services.AddCoinGecko(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-coinex" role="tabpanel" aria-labelledby="options-coinex-tab">
|
|
<pre><code>builder.Services.AddCoinEx(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-huobi" role="tabpanel" aria-labelledby="options-huobi-tab">
|
|
<pre><code>builder.Services.AddHuobi(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-kraken" role="tabpanel" aria-labelledby="options-kraken-tab">
|
|
<pre><code>builder.Services.AddKraken(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-kucoin" role="tabpanel" aria-labelledby="options-kucoin-tab">
|
|
<pre><code>builder.Services.AddKucoin(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-mexc" role="tabpanel" aria-labelledby="options-mexc-tab">
|
|
<pre><code>builder.Services.AddMexc(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-okx" role="tabpanel" aria-labelledby="options-okx-tab">
|
|
<pre><code>builder.Services.AddOKX(
|
|
restOptions => {
|
|
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
},
|
|
socketOptions => {
|
|
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
|
|
});</code></pre>
|
|
</div>
|
|
</div>
|
|
|
|
<b>Client constructor</b>
|
|
<p>When creating a client via the constructor options can be provided as parameters</p>
|
|
<ul class="nav nav-tabs" id="options-constr" role="tablist" style="margin-bottom: -16px;">
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link active" id="options-binance-tab" data-toggle="tab" href="#options-constr-binance" role="tab" aria-controls="options-constr-binance" aria-selected="true">Binance</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bitfinex-tab" data-toggle="tab" href="#options-constr-bitfinex" role="tab" aria-controls="options-constr-bitfinex" aria-selected="false">Bitfinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bitget-tab" data-toggle="tab" href="#options-constr-bitget" role="tab" aria-controls="options-constr-bitget" aria-selected="false">Bitget</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bybit-tab" data-toggle="tab" href="#options-constr-bybit" role="tab" aria-controls="options-constr-bybit" aria-selected="false">Bybit</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-coingecko-tab" data-toggle="tab" href="#options-constr-coingecko" role="tab" aria-controls="options-constr-coingecko" aria-selected="false">CoinGecko</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-constr-coinex" role="tab" aria-controls="options-constr-coinex" aria-selected="false">Coinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-huobi-tab" data-toggle="tab" href="#options-constr-huobi" role="tab" aria-controls="options-constr-huobi" aria-selected="false">Huobi</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-kraken-tab" data-toggle="tab" href="#options-constr-kraken" role="tab" aria-controls="options-constr-kraken" aria-selected="false">Kraken</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-kucoin-tab" data-toggle="tab" href="#options-constr-kucoin" role="tab" aria-controls="options-constr-kucoin" aria-selected="false">Kucoin</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-mexc-tab" data-toggle="tab" href="#options-constr-mexc" role="tab" aria-controls="options-constr-mexc" aria-selected="false">Mexc</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-okx-tab" data-toggle="tab" href="#options-constr-okx" role="tab" aria-controls="options-constr-okx" aria-selected="false">OKX</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content my-3" id="myTabContent">
|
|
<div class="tab-pane fade show active" id="options-constr-binance" role="tabpanel" aria-labelledby="options-binance-tab">
|
|
<pre><code>var binanceRestClient = new BinanceRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-bitfinex" role="tabpanel" aria-labelledby="options-bitfinex-tab">
|
|
<pre><code>var client = new BitfinexRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-bitget" role="tabpanel" aria-labelledby="options-bitget-tab">
|
|
<pre><code>var client = new BitgetRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-bybit" role="tabpanel" aria-labelledby="options-bybit-tab">
|
|
<pre><code>var client = new BybitRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-coingecko" role="tabpanel" aria-labelledby="options-coingecko-tab">
|
|
<pre><code>var client = new CoinGeckoRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-coinex" role="tabpanel" aria-labelledby="options-coinex-tab">
|
|
<pre><code>var client = new CoinExRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-huobi" role="tabpanel" aria-labelledby="options-huobi-tab">
|
|
<pre><code>var client = new HuobiRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-kraken" role="tabpanel" aria-labelledby="options-kraken-tab">
|
|
<pre><code>var client = new KrakenRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-kucoin" role="tabpanel" aria-labelledby="options-kucoin-tab">
|
|
<pre><code>var client = new KucoinRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-mexc" role="tabpanel" aria-labelledby="options-mexc-tab">
|
|
<pre><code>var client = new MexcRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-constr-okx" role="tabpanel" aria-labelledby="options-okx-tab">
|
|
<pre><code>var client = new OKXRestClient(opts =>
|
|
{
|
|
opts.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});</code></pre>
|
|
</div>
|
|
</div>
|
|
|
|
<b>SetDefaultOptions</b>
|
|
<p>The options can be defined in the static SetDefaultOptions method on the client BEFORE creating the client. Any client created after this call will use the specified options</p>
|
|
<ul class="nav nav-tabs" id="options-default" role="tablist" style="margin-bottom: -16px;">
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link active" id="options-binance-tab" data-toggle="tab" href="#options-default-binance" role="tab" aria-controls="options-default-binance" aria-selected="true">Binance</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bitfinex-tab" data-toggle="tab" href="#options-default-bitfinex" role="tab" aria-controls="options-default-bitfinex" aria-selected="false">Bitfinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bitget-tab" data-toggle="tab" href="#options-default-bitget" role="tab" aria-controls="options-default-bitget" aria-selected="false">Bitget</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-bybit-tab" data-toggle="tab" href="#options-default-bybit" role="tab" aria-controls="options-default-bybit" aria-selected="false">Bybit</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-coingecko-tab" data-toggle="tab" href="#options-default-coingecko" role="tab" aria-controls="options-default-coingecko" aria-selected="false">CoinGecko</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-default-coinex" role="tab" aria-controls="options-default-coinex" aria-selected="false">Coinex</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-huobi-tab" data-toggle="tab" href="#options-default-huobi" role="tab" aria-controls="options-default-huobi" aria-selected="false">Huobi</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-kraken-tab" data-toggle="tab" href="#options-default-kraken" role="tab" aria-controls="options-default-kraken" aria-selected="false">Kraken</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-kucoin-tab" data-toggle="tab" href="#options-default-kucoin" role="tab" aria-controls="options-default-kucoin" aria-selected="false">Kucoin</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-mexc-tab" data-toggle="tab" href="#options-default-mexc" role="tab" aria-controls="options-default-mexc" aria-selected="false">Mexc</a>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<a class="nav-link" id="options-okx-tab" data-toggle="tab" href="#options-default-okx" role="tab" aria-controls="options-default-okx" aria-selected="false">OKX</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content my-3" id="myTabContent">
|
|
<div class="tab-pane fade show active" id="options-default-binance" role="tabpanel" aria-labelledby="options-binance-tab">
|
|
<pre><code>BinanceRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new BinanceRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-bitfinex" role="tabpanel" aria-labelledby="options-bitfinex-tab">
|
|
<pre><code>BitfinexRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new BitfinexRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-bitget" role="tabpanel" aria-labelledby="options-bitget-tab">
|
|
<pre><code>BitgetRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new BitgetRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-bybit" role="tabpanel" aria-labelledby="options-bybit-tab">
|
|
<pre><code>BybitRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new BybitRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-coingecko" role="tabpanel" aria-labelledby="options-coingecko-tab">
|
|
<pre><code>CoinGeckoRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new CoinGeckoRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-coinex" role="tabpanel" aria-labelledby="options-coinex-tab">
|
|
<pre><code>CoinExRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new CoinExRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-huobi" role="tabpanel" aria-labelledby="options-huobi-tab">
|
|
<pre><code>HuobiRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new HuobiRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-kraken" role="tabpanel" aria-labelledby="options-kraken-tab">
|
|
<pre><code>KrakenRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new KrakenRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-kucoin" role="tabpanel" aria-labelledby="options-kucoin-tab">
|
|
<pre><code>KucoinRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new KucoinRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-mexc" role="tabpanel" aria-labelledby="options-mexc-tab">
|
|
<pre><code>MexcRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new MexcRestClient();</code></pre>
|
|
</div>
|
|
<div class="tab-pane fade" id="options-default-okx" role="tabpanel" aria-labelledby="options-okx-tab">
|
|
<pre><code>OKXRestClient.SetDefaultOptions(options =>
|
|
{
|
|
options.RequestTimeout = TimeSpan.FromSeconds(30);
|
|
});
|
|
var client = new OKXRestClient();</code></pre>
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Header
|
|
============================ -->
|
|
<section id="idocs_options_def">
|
|
<h2>Option definitions</h2>
|
|
|
|
<p>List of options:</p>
|
|
<p> - Generic Options</p>
|
|
<p> - Options per library</p>
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Getting Started
|
|
============================ -->
|
|
<section id="idocs_features">
|
|
<h1>Features</h1>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Header
|
|
============================ -->
|
|
<section id="idocs_orderbooks">
|
|
<h2>Orderbooks</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
<!-- Layout
|
|
============================ -->
|
|
<section id="idocs_logging">
|
|
<h2>Logging</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Layout
|
|
============================ -->
|
|
<section id="idocs_logging">
|
|
<h2>Ratelimiting</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Navbar
|
|
============================ -->
|
|
<section id="idocs_examples">
|
|
<h1>Examples</h1>
|
|
|
|
<pre><code class="language-csharp">
|
|
using Binance.Net;
|
|
|
|
var client = new BinanceRestClient();
|
|
client.SpotApi.Exchange.GetExchangeInfoAsync();
|
|
</pre></code>
|
|
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- Sidebar
|
|
============================ -->
|
|
<section id="idocs_glossary">
|
|
<h2>Glossary</h2>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
<!-- FAQ
|
|
============================ -->
|
|
<section id="idocs_faq">
|
|
<h2>FAQ</h2>
|
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
<hr class="divider">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<!-- Content end -->
|
|
|
|
</div>
|
|
<!-- Document Wrapper end -->
|
|
|
|
<!-- Back To Top -->
|
|
<a id="back-to-top" data-toggle="tooltip" title="Back to Top" href="javascript:void(0)"><i class="fa fa-chevron-up"></i></a>
|
|
|
|
<!-- JavaScript
|
|
============================ -->
|
|
<script src="assets/vendor/jquery/jquery.min.js"></script>
|
|
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
|
<!-- Highlight JS -->
|
|
<!--<script src="assets/vendor/highlight.js/highlight.min.js"></script>-->
|
|
<!-- and it's easy to individually load additional languages -->
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/csharp.min.js"></script>
|
|
<!-- Easing -->
|
|
<script src="assets/vendor/jquery.easing/jquery.easing.min.js"></script>
|
|
<!-- Magnific Popup -->
|
|
<script src="assets/vendor/magnific-popup/jquery.magnific-popup.min.js"></script>
|
|
<!-- Custom Script -->
|
|
<script src="assets/js/theme.js"></script>
|
|
<script>hljs.highlightAll();</script>
|
|
</body>
|
|
</html>
|