C++ client library for the Kaiko gRPC API. This SDK provides auto-generated gRPC stubs for streaming cryptocurrency market data.
- C++17 or later
- CMake 3.23+
- gRPC 1.54+
- Protobuf 3.21+
- A valid Kaiko API key
include(FetchContent)
FetchContent_Declare(
kaikosdk
GIT_REPOSITORY "https://github.com/kaikodata/kaiko-cpp-sdk"
GIT_TAG "v1.34.0"
)
FetchContent_MakeAvailable(kaikosdk)
target_link_libraries(your_target PRIVATE kaikosdk)conan create .The Conan recipe will automatically pull the required grpc and protobuf dependencies.
#include <iostream>
#include <memory>
#include <string>
#include <grpcpp/grpcpp.h>
#include "sdk/sdk.grpc.pb.h"
#include "sdk/stream/trades_v1/request.pb.h"
#include "sdk/core/instrument_criteria.pb.h"
int main() {
auto creds = grpc::SslCredentials(grpc::SslCredentialsOptions());
auto channel = grpc::CreateChannel("gateway-v0-grpc.kaiko.ovh:443", creds);
auto stub = kaikosdk::StreamTradesServiceV1::NewStub(channel);
grpc::ClientContext ctx;
ctx.AddMetadata("authorization", "Bearer <YOUR_API_KEY>");
kaikosdk::StreamTradesRequestV1 request;
auto* criteria = request.mutable_instrument_criteria();
criteria->set_exchange("cbse");
criteria->set_instrument_class("spot");
criteria->set_code("btc-usd");
auto reader = stub->Subscribe(&ctx, request);
kaikosdk::StreamTradesResponseV1 response;
while (reader->Read(&response)) {
std::cout << "Trade: " << response.DebugString() << std::endl;
}
return 0;
}All services expose a Subscribe RPC that returns a server-side stream.
StreamTradesServiceV1-- Real-time tradesStreamMarketUpdateServiceV1-- Market updatesStreamAggregatedQuoteServiceV2-- Aggregated quotesStreamAggregatedPriceServiceV1-- Aggregated pricesStreamAggregatedStatePriceServiceV1-- Aggregated state pricesStreamAggregatesOHLCVServiceV1-- OHLCV aggregatesStreamAggregatesVWAPServiceV1-- VWAP aggregatesStreamAggregatesSpotExchangeRateV2ServiceV1-- Spot exchange ratesStreamAggregatesSpotDirectExchangeRateV2ServiceV1-- Direct exchange ratesStreamOrderbookL2ServiceV1-- Level 2 order bookStreamOrderbookL2ReplayServiceV1-- Level 2 order book replayStreamIndexServiceV1-- Index valuesStreamIndexMultiAssetsServiceV1-- Multi-asset index valuesStreamIndexForexRateServiceV1-- Index forex ratesStreamCompositeIndicesServiceV1-- Composite indicesStreamConstantDurationIndicesServiceV1-- Constant duration indicesStreamExoticIndicesServiceV1-- Exotic indicesStreamDerivativesInstrumentMetricsServiceV1-- Derivatives instrument metricsStreamIvSviParametersServiceV1-- IV SVI parametersStreamStakingRatesServiceV1-- Staking ratesStreamCantonOracleServiceV1-- Signed Canton pull-oracle data (crypto / NAV feeds)StreamCantonOracleServiceV2-- Signed Canton pull-oracle payloads V2StreamEvmOracleServiceV1-- EVM pull-oracle EIP-712 signed prices
For more complete examples, see the kaiko-sdk-examples repository.
