Private Socket
Custody private socket documentation.
| Environment | Socket Base URL |
|---|---|
| Test | wss://testream.crypto-asset-custody.com/ws/private |
| Production | wss://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.
| Stream | Channel | Desc |
|---|---|---|
user_info | user_info | Legacy /user/info mesajları bu stream'de yayınlanıyor. |
balance | balance | Tüm bakiyeyi içeren snapshot mesajı gider. Bakiye değişimleri canlı olarak aktarılır. |
asset_io | asset_io | Deposit/withdraw işlemlerinin ayrıntıları aktarılır. |
update | update | User 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.
| Alan | Data type | Desc |
|---|---|---|
eid | int | Event id. Platform genelinde gerçekleşen her evente verilen unique bir değer. |
ts | int | Event gerçekleşme zamanı(epoch timestamp). |
data | array | Mesaj 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"
},
...
]
}
]
}