Subscribe
How to configure a Kaiko multi-asset rate stream.
Last updated
Was this helpful?
Was this helpful?
# This is a code example. Configure your parameters below #
from __future__ import print_function
from datetime import datetime, timedelta
import logging
import os
from google.protobuf.timestamp_pb2 import Timestamp
import grpc
from google.protobuf.json_format import MessageToJson
from kaikosdk import sdk_pb2_grpc
from kaikosdk.stream.index_multi_assets_v1 import request_pb2 as pb_index_multi_assets
def index_multi_asset(channel: grpc.Channel):
try:
with channel:
stub = sdk_pb2_grpc.StreamIndexMultiAssetsServiceV1Stub(channel)
responses = stub.Subscribe(pb_index_multi_assets.StreamIndexMultiAssetsServiceRequestV1(
index_code = "KT15"
))
for response in responses:
# for debug purpose only, don't use MessageToJson in the reading loop in production
print("Received message %s" % (MessageToJson(response, including_default_value_fields = True)))
except grpc.RpcError as e:
print(e.details(), e.code())
def run():
credentials = grpc.ssl_channel_credentials(root_certificates=None)
call_credentials = grpc.access_token_call_credentials(os.environ['KAIKO_API_KEY'])
composite_credentials = grpc.composite_channel_credentials(credentials, call_credentials)
channel = grpc.secure_channel('gateway-v0-grpc.kaiko.ovh', composite_credentials)
index_multi_asset(channel)
if __name__ == '__main__':
logging.basicConfig()
run()# This is a code example. Configure your parameters below #
from __future__ import print_function
from datetime import datetime, timedelta
import logging
import os
from google.protobuf.timestamp_pb2 import Timestamp
import grpc
from google.protobuf.json_format import MessageToJson
from kaikosdk import sdk_pb2_grpc
from kaikosdk.stream.index_multi_assets_v1 import request_pb2 as pb_index_multi_assets
def index_multi_asset(channel: grpc.Channel):
try:
# start of date configuration #
start = Timestamp()
start.FromDatetime(datetime.utcnow() - timedelta(days=2))
end = Timestamp()
end.FromDatetime(datetime.utcnow() - timedelta(days=1))
# end of date configuration #
stub = sdk_pb2_grpc.StreamIndexMultiAssetsServiceV1Stub(channel)
responses = stub.Subscribe(pb_index_multi_assets.StreamIndexMultiAssetsServiceRequestV1(
index_code = "KT15",
interval={
'start_time': start,
'end_time': end
}
))
for response in responses:
# for debug purpose only, don't use MessageToJson in the reading loop in production
print("Received message %s" % (MessageToJson(response, including_default_value_fields = True)))
except grpc.RpcError as e:
print(e.details(), e.code())
def run():
credentials = grpc.ssl_channel_credentials(root_certificates=None)
call_credentials = grpc.access_token_call_credentials(os.environ['KAIKO_API_KEY'])
composite_credentials = grpc.composite_channel_credentials(credentials, call_credentials)
channel = grpc.secure_channel('gateway-v0-grpc.kaiko.ovh', composite_credentials)
index_multi_asset(channel)
if __name__ == '__main__':
logging.basicConfig()
run()curl -X POST "https://gateway-v0-http.kaiko.ovh/api/stream/index_multi_assets_v1" -H "accept: application/json" -H "X-Api-Key: $KAIKO_API_KEY" -H "Content-Type: application/json" -d "{\"indexCode\": \"KT5\"}"{
"commodity": "SIC_REAL_TIME",
"indexCode": "KT5",
"interval": {
"startTime": "2024-08-12T14:23:55Z",
"endTime": "2024-08-12T14:29:00Z"
},
"mainQuote": "usd",
"compositions": [
{
"underlyingInstrument": "KK_RFR_AVAXUSD",
"base": "avax",
"quote": "usd",
"exchanges": [
"bfnx",
"cbse",
"krkn",
"stmp"
],
"instrumentInterval": {
"startTime": "2024-08-12T14:23:55Z",
"endTime": "2024-08-12T14:28:55Z"
},
"currencyConversion": "none",
"tsEvent": "2024-08-12T14:28:56.074863348Z"
},
{
"underlyingInstrument": "KK_RFR_BTCUSD",
"base": "btc",
"quote": "usd",
"exchanges": [
"bfnx",
"cbse",
"krkn",
"lmax",
"stmp"
],
"instrumentInterval": {
"startTime": "2024-08-12T14:24:00Z",
"endTime": "2024-08-12T14:29:00Z"
},
"currencyConversion": "none",
"tsEvent": "2024-08-12T14:29:01.087284434Z"
},
{
"underlyingInstrument": "KK_RFR_ETHUSD",
"base": "eth",
"quote": "usd",
"exchanges": [
"bfnx",
"cbse",
"krkn",
"lmax",
"stmp"
],
"instrumentInterval": {
"startTime": "2024-08-12T14:23:55Z",
"endTime": "2024-08-12T14:28:55Z"
},
"currencyConversion": "none",
"tsEvent": "2024-08-12T14:28:56.142347541Z"
},
{
"underlyingInstrument": "KK_RFR_SOLUSD",
"base": "sol",
"quote": "usd",
"exchanges": [
"bfnx",
"cbse",
"gmni",
"krkn",
"stmp"
],
"instrumentInterval": {
"startTime": "2024-08-12T14:24:00Z",
"endTime": "2024-08-12T14:29:00Z"
},
"currencyConversion": "none",
"tsEvent": "2024-08-12T14:29:00.784958075Z"
},
{
"underlyingInstrument": "KK_RFR_XRPUSD",
"base": "xrp",
"quote": "usd",
"exchanges": [
"cbse",
"indr",
"krkn",
"lmax",
"stmp"
],
"instrumentInterval": {
"startTime": "2024-08-12T14:23:55Z",
"endTime": "2024-08-12T14:28:55Z"
},
"currencyConversion": "none",
"tsEvent": "2024-08-12T14:28:55.988918370Z"
}
],
"price": {
"indexValue": 334.99947165068875,
"divisor": 26979870988.68237,
"pairs": [
{
"underlyingInstrument": "KK_RFR_AVAXUSD",
"underlyingPrice": 21.333163636363636,
"weightingFactor": 17278580619.32558,
"cappingFactor": 1.0,
"currencyConversionFactor": 1.0
},
{
"underlyingInstrument": "KK_RFR_BTCUSD",
"underlyingPrice": 59699.73163636363,
"weightingFactor": 390312772.9127332,
"cappingFactor": 0.119856816159272,
"currencyConversionFactor": 1.0
},
{
"underlyingInstrument": "KK_RFR_ETHUSD",
"underlyingPrice": 2680.1494545454543,
"weightingFactor": 2288124768.3108406,
"cappingFactor": 0.373375636405882,
"currencyConversionFactor": 1.0
},
{
"underlyingInstrument": "KK_RFR_SOLUSD",
"underlyingPrice": 147.37236363636362,
"weightingFactor": 17542805404.323048,
"cappingFactor": 1.0,
"currencyConversionFactor": 1.0
},
{
"underlyingInstrument": "KK_RFR_XRPUSD",
"underlyingPrice": 0.5706330909090909,
"weightingFactor": 1755466226611.777,
"cappingFactor": 1.0,
"currencyConversionFactor": 1.0
}
]
},
"tsEvent": "2024-08-12T14:29:00Z",
"tsCompute": "2024-08-12T14:29:05.210675561Z"
}