Skip to main content

Private Socket

Custody private socket documentation.

EnvironmentSocket Base URL
Testwss://testream.crypto-asset-custody.com/ws/private
Productionwss://stream.crypto-asset-custody.com/ws/private

Authentication

Authentication için genel mesaj yapısından bir miktar ayrışan bir mesaj gönderilmesi gerekiyor. Authenticate edilmemiş connection ile auth dışında bir operasyon gerçekleştirmeye çalışmak error response ile sonuçlanır.

Örnek auth mesajı

{
"op": "auth",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbk5hbWUiOiJ4LWF1dGgiLCJjb3VudHJ5Q29kZSI6IjkwIiwicGhvbmVOdW1iZXIiOiI1NDIxMDU2MDYzIiwidXNlcklkIjoyODAyMDc2LCJlbWFpbCI6Im11c3RhZmF6b3J0dWxAZ21haWwuY29tIiwiYWRtaW5MZXZlbCI6NCwibGV2ZWxJZCI6MTA3LCJpc0NvdW50cnlSZXN0cmljdGVkIjp0cnVlLCJyb2xlSWQiOm51bGwsImlhdCI6MTcwNzIzMjQwMCwiZXhwIjoxNzA3MzE4ODAwLCJqdGkiOiIzYzJhMTIxYi0zZDU5LTQxOTMtYmVlNi0yYjIxZDZjODE3YWQifQ.gI0LSvdSZkvjOsqp0IYLDjuyDYV0HfQXbxF0S-6_05U",
"id": 3
}

Örnek auth response mesajları

  • Success

    {
    "e": "auth",
    "i": {
    "code": 0
    },
    "id": 5
    }
  • Error

    {
    "e": "fatal",
    "i": {
    "code": -5000,
    "message": "Token expired at 3/15/2024, 9:55:14 AM.",
    "help": "Please generate new token."
    }
    }

    Halihazırda authenticate etmiş olduğunuz bir connection'da tekrar jwt yollarsanız error response alırsınız.

    {
    "e": "fatal",
    "i": {
    "code": -5006,
    "message": "Connection is already authenticated.",
    "help": ""
    }
    }

Stream ve channellar

Bağlantınız için authentication tamamladıktan sonra aşağıda listenen stream ve channel'lara sub olabilirsiniz.

StreamChannelDesc
user_infouser_infoLegacy /user/info mesajları bu stream'de yayınlanıyor.
balancebalanceTüm bakiyeyi içeren snapshot mesajı gider. Bakiye değişimleri canlı olarak aktarılır.
asset_ioasset_ioDeposit/withdraw işlemlerinin ayrıntıları aktarılır.
updateupdateUser hakkında bir bilginin database'de güncellendiğini belirten mesajlar aktarılır.

Client mesajları

Bağlantı authenticate edildiğinde otomatik olarak tüm private channel'lara sub olunduğu için auth mesajı dışında client mesajı gönderilmesini gerek yoktur.

Server mesajları

Örnek data mesajı içeriği aşağıda listelenmiştir. Snapshot mesajları yalnızca auth sonrası bir kez gönderilir. Mesajlar real-time geldiği için array içinde yalnızca tek json objesi bulunur. Bu obje içindeki alanlar aşağıdaki tabloda listelenmiştir.

AlanData typeDesc
eidintEvent id. Platform genelinde gerçekleşen her evente verilen unique bir değer.
tsintEvent gerçekleşme zamanı(epoch timestamp).
dataarrayMesaj içeriği
{
"e": "data",
"st": "balance",
"ch": "balance",
"data": [
{
"eid": 31466,
"ts": 1710478230034,
"snapshot": true,
"data": [
{
...
}
]
}
]
}

Tüm nümerik değerler floating-point error'ları önlemeye yönelik olarak string formatında gönderilir. Timestamp ve id alanları integer tipindedir. Her bir stream mesajlarının örnekleri aşağıda listelenmiştir. Tüm snapshot mesajları ayrı bir bölüm içindedir.

User info mesajları

User info mesaj içeriği değiştirilmeden var olan yapıya uyumlu hale getirilmiştir. eid alanı statik olarak 1 gelmektedir.

  • User info mesaj örneği
    {
    "e": "data",
    "st": "user_info",
    "ch": "user_info",
    "data": [
    {
    "eid": 1,
    "ts": 1710499070261,
    "data": [
    {
    "type": 1,
    "message": "..."
    }
    ]
    }
    ]
    }

Balance mesajları

Bakiyesinde değişim olan asset bakiyesinin son hali yayınlanır. Asset kodu code alanındadır. Toplam bakiye totalBalance alanında, order sebebiyle bloklanmış bakiye orderBalance alanında ve diğer sebeplerden bloklanmış bakiye blockedBalance alanındadır. Kullanılabilir bakiye miktarı da availableBalance alanındadır.

  • Balance mesaj örneği
    {
    "e": "data",
    "st": "balance",
    "ch": "balance",
    "data": [
    {
    "eid": 326493,
    "ts": 1713424295898,
    "data": [
    {
    "code": "USDT",
    "totalBalance": "15.70976548",
    "blockedBalance": "0.00000000",
    "availableBalance": "15.70976548"
    }
    ]
    }
    ]
    }

Asset IO mesajları

  • Crypto withdraw mesaj örneği

    {
    "e": "data",
    "st": "asset_io",
    "ch": "asset_io",
    "data": [
    {
    "eid": 33225723,
    "ts": 1721730361833,
    "data": [
    {
    "type": "WITHDRAW",
    "code": "TON",
    "network": "TON",
    "amount": "0.50000000",
    "txId": "132a0c61e4d944a91a065f2df84db0700e889ba244ede671dfa2cb1058692f4c"
    }
    ]
    }
    ]
    }
  • Fiat withdraw mesaj örneği

    {
    "e": "data",
    "st": "asset_io",
    "ch": "asset_io",
    "data": [
    {
    "eid": 33226169,
    "ts": 1721730962107,
    "data": [
    {
    "type": "WITHDRAW",
    "code": "TRY",
    "network": "FIAT",
    "amount": "50.00000000",
    "txId": ""
    }
    ]
    }
    ]
    }
  • Crypto deposit mesaj örneği

    {
    "e": "data",
    "st": "asset_io",
    "ch": "asset_io",
    "data": [
    {
    "eid": 33226000,
    "ts": 1721730712562,
    "data": [
    {
    "type": "DEPOSIT",
    "code": "TON",
    "network": "TON",
    "amount": "0.20000000",
    "txId": "dca90d41c3734e03dddc5753cdc372d5337f8953f9d94b2216716d3681468bc9"
    }
    ]
    }
    ]
    }
  • Fiat deposit mesaj örneği

    {
    "e": "data",
    "st": "asset_io",
    "ch": "asset_io",
    "data": [
    {
    "eid": 33226348,
    "ts": 1721731206158,
    "data": [
    {
    "type": "DEPOSIT",
    "code": "TRY",
    "network": "FIAT",
    "amount": "50.00000000",
    "txId": ""
    }
    ]
    }
    ]
    }

Update mesajları

Kullanıcı ile ilgili bir bilgi değiştiğinde, değişen bilgi tipini client'a bildirir.

  • Update mesaj örneği
    {
    "e": "data",
    "st": "update",
    "ch": "update",
    "data": [
    {
    "eid": 34093050,
    "ts": 1722584005254,
    "data": [
    {
    "key": "USERPROFILE"
    }
    ]
    }
    ]
    }

Snapshot mesajları

  • Balance snapshot (stream: balance, channel: balance, auth anında kullanıcı bakiyesi)
    {
    "e": "data",
    "st": "balance",
    "ch": "balance",
    "snapshot": true,
    "data": [
    {
    "eid": 1,
    "ts": 1722584168211,
    "data": [
    {
    "code": "WLD",
    "totalBalance": "0.09761606",
    "blockedBalance": "0.00000000",
    "availableBalance": "0.09761606"
    },
    {
    "code": "TRX",
    "totalBalance": "4.00000000",
    "blockedBalance": "0.00000000",
    "availableBalance": "4.00000000"
    },
    {
    "code": "IMX",
    "totalBalance": "0.00000000",
    "blockedBalance": "0.00000000",
    "availableBalance": "0.00000000"
    },
    {
    "code": "AAVE",
    "totalBalance": "0.01592648",
    "blockedBalance": "0.00000000",
    "availableBalance": "0.01592648"
    },
    {
    "code": "NEO",
    "totalBalance": "0.00000000",
    "blockedBalance": "0.00000000",
    "availableBalance": "0.00000000"
    },
    ...
    ]
    }
    ]
    }