Swingby Node API API Reference

HTTP Websocket/Rest interface for interaction with the Swingby network.

Terms of Service: https://docs.swingby.network/terms.pdf
Contact: support@swingby.network
Response Content-Types: application/json
Schemes: https, http, wss
Version: 0.1.0

floats

Endpoints relevant to creating/querying floats

Creates a float deposit

POST /api/v1/floats/create

Creates a float deposit

amount: string

Amount of funds to float

currency_from: string

Currency from (BTC, BNB ...)

address_to: string

Payout address for the LP token on the Ethereum chain

nonce: integer

PoW nonce

Request Content-Types: application/json
Request Example
{
  "amount": "132.32",
  "currency_from": "BTC",
  "address_to": 1.3432103058131285e+48,
  "nonce": 10232
}
200 OK

Success

400 Bad Request

Bad Request

409 Conflict

Data conflict

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
  "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "amountIn": "123.0400",
  "amountOut": "123.0400",
  "amountFee": "1.00",
  "currencyIn": "BTC",
  "currencyOut": "sbBTC",
  "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
  "timestamp": 1577488326
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (409 Conflict)
{
  "code": 409,
  "message": "Resource conflict"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Get the float balances

GET /api/v1/floats/balances

Get the TSS address float balances

200 OK

Success

400 Bad Request

Bad Request

409 Conflict

Data conflict

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "currency": "BTC",
    "amount": "32.3213"
  }
]
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (409 Conflict)
{
  "code": 409,
  "message": "Resource conflict"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Query Floats

GET /api/v1/floats/query

Get all floats on the network

in_hash

Hash of the inbound transaction

type
string
in
query
out_hash

Hash of the outbound transaction

type
string
in
query
hash

Unique hash of the float

type
string
in
query
from_chain

Currency (BTC, BNB ...)

type
string
in
query
in_address

Float inbound address

type
string
in
query
out_address

Float outbound address

type
string
in
query
status

Status which can be used as a list e.g WAITING,REFUNDED,SIGNING

type
string
in
query
page_size

Max number of items per page

type
integer
in
query
page

Page number

type
integer
in
query
sort

if sort = 1 then results are old - new

type
integer
in
query
OR_in_hash

Hash of the inbound transaction (OR match)

type
string
in
query
OR_in_address

Float inbound address (OR match)

type
string
in
query
OR_out_address

Float outbound address (OR match)

type
string
in
query
200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "total": 20324,
  "itemCount": 50,
  "items": [
    {
      "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
      "status": "WAITING",
      "txIdIn": "a591ee98632af06cd905c330e32d86dcd837c4c4a669128ecb84c22d31483607",
      "txIdOut": "f6f06ec1d4f818fd4ca3e021f404dc4bf5ba1366729413ab03ac23ff3bf550bd",
      "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
      "addressIn": "1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvaiL",
      "amountIn": "500.00",
      "currencyIn": "BTC",
      "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
      "amountOut": "498.00",
      "currencyOut": "BTC.S",
      "timestamp": 1569759157,
      "fee": "2.00",
      "feeCurrency": "BTC"
    }
  ]
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

info

Endpoints relevant to querying nodes/networks state

Get Node Status

GET /api/v1/status

Get node state and network metadata

200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "nodeInfo": {
    "id": "7ae6153c3fcbbbb3eff1b20748cff08e",
    "moniker": "jeeves",
    "version": "0.1.0",
    "listenAddr": "node-jeeves-eu-west-1.aws.com:80",
    "collateralStaked": 823772,
    "testnet": true
  },
  "swapInfo": {
    "coin1": "BTC",
    "coin2": "BNB",
    "stakeAmount": "10000.00",
    "feePercent": "0.001"
  }
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Get TSS addresses

GET /api/v1/addresses

Get node TSS addresses

200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "address": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
    "currency": "BTC"
  }
]
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Get Node Peers

GET /api/v1/peers

Get list of peers connected to the node

type

node type signer | normal

type
string normal
in
query
200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "dd400fb69f10dfab7d8d462720e0aac8",
    "moniker": "Loki",
    "version": "0.1.0",
    "active": "boolean",
    "rank": 1,
    "state": 1,
    "state_name": "Signing",
    "thisNode": false,
    "rewardsAddress1": "178JB4HJe6jLwcHbTV6jxB3CogPy61SV2v",
    "rewardsAddress2": "3M92sq9ssFaNbEwF47uteVKJsbw125juS7",
    "p2pListener": "string",
    "restUri": "string",
    "signPoolSize": "integer",
    "stake": {
      "amount": "1430.4000",
      "stakeValid": true,
      "address": "1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvaiL",
      "stakeTime": 3888000000,
      "stakeTXHash": "0f85c5206a0bbd26a82ab1ee1d1ab4af04de31d638f390ceb08be008eca7343d"
    }
  }
]
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Get block heights

GET /api/v1/heights

Get the block heights of connected chains

200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "height1": 12345,
  "height2": 12345,
  "binance": 12345
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

swaps

Endpoints relevant to creating/querying swap transactions

Create Swap

POST /api/v1/swaps/create

Creates a swap address pair

amount: string

Amount of funds to swap

currency_from: string

Currency from (BTC, BNB ...)

currency_to: string

Currency to (BTC, BNB ...)

address_to: string

Payout address

nonce: integer

PoW nonce

skypools: boolean

Is a Sky Pools transaction?

Request Content-Types: application/json
Request Example
{
  "amount": "1453.23",
  "currency_from": "BTC",
  "currency_to": "BTC.B",
  "address_to": "3e64bc16742078deca89be163cc8d8f6",
  "nonce": 10232,
  "skypools": true
}
200 OK

Success

400 Bad Request

Bad Request

409 Conflict

Data conflict

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
  "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "addressIn": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "amountIn": "123.0400",
  "amountOut": "498.00",
  "amountFee": "1.00",
  "currencyIn": "BTC",
  "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
  "currencyOut": "BTC.S",
  "timestamp": 1577488326
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (409 Conflict)
{
  "code": 409,
  "message": "Resource conflict"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Query Swaps

GET /api/v1/swaps/query

Queries swap db with the given fields

in_hash

Hash of the inbound transaction

type
string
in
query
out_hash

Hash of the outbound transaction

type
string
in
query
hash

Unique hash of the swap

type
string
in
query
to_chain

Currency (BTC, BNB ...)

type
string
in
query
from_chain

Currency (BTC, BNB ...)

type
string
in
query
in_address

Swap inbound address

type
string
in
query
out_address

Swap outbound address

type
string
in
query
status

Swaps status which can be used as a list e.g WAITING,REFUNDED,SIGNING

type
string
in
query
page_size

Max number of items per page

type
integer
in
query
page

Page number

type
integer
in
query
sort

if sort = 1 then results are old - new

type
integer
in
query
OR_in_hash

Hash of the inbound transaction (OR match)

type
string
in
query
OR_out_hash

Hash of the outbound transaction (OR match)

type
string
in
query
OR_in_address

Swap inbound address (OR match)

type
string
in
query
OR_out_address

Swap outbound address (OR match)

type
string
in
query
200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "total": 20324,
  "itemCount": 50,
  "items": [
    {
      "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
      "status": "WAITING",
      "txIdIn": "a591ee98632af06cd905c330e32d86dcd837c4c4a669128ecb84c22d31483607",
      "txIdOut": "f6f06ec1d4f818fd4ca3e021f404dc4bf5ba1366729413ab03ac23ff3bf550bd",
      "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
      "addressIn": "1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvaiL",
      "amountIn": "500.00",
      "currencyIn": "BTC",
      "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
      "amountOut": "498.00",
      "currencyOut": "BTC.S",
      "timestamp": 1569759157,
      "fee": "2.00",
      "feeCurrency": "BTC",
      "rewards": [
        {
          "txId": "1298de2855abdda7e520c58aa700c3c7b4e1e89a9b7dc28193e89b8f66c4bf83",
          "amount": 100,
          "address": "38WJFZccL9YDMoppsMw2m7TC6Pjxr8x7JD"
        },
        {
          "txId": "df5e712e27b53675a554a87d139198bb7f63d7a233fad82e728b742423701393",
          "amount": 100,
          "address": "37EekxL2QLNCQHqfNcBuEdT3wddhaQBpot"
        }
      ],
      "skypools": true
    }
  ]
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Calculate swap

POST /api/v1/swaps/calculate

Calculates the actual amount that the user will receive and fees for a given swap

amount: string

Amount of funds to swap

currency_from: string

Currency from (BTC, BNB ...)

currency_to: string

Currency to (BTC, BNB ...)

address_to: string

Payout address

Request Content-Types: application/json
Request Example
{
  "amount": "1453.23",
  "currency_from": "BTC",
  "currency_to": "BTC.B",
  "address_to": "3e64bc16742078deca89be163cc8d8f6"
}

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "send_amount": "string",
  "receive_amount": "0.013",
  "currency_from": "BTC.B",
  "currency_to": "string",
  "fee": "0.0002",
  "nonce": 12424
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Get Swap Fees

GET /api/v1/swaps/fees

Get the fees for performing a swap

200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "currency": "BTC",
    "bridgeFeePercent": "0.001",
    "minerFee": "200"
  }
]
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Get Swaps Stats

GET /api/v1/swaps/stats

Get node and network swap statistics

200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "participatedSwaps": 2302,
  "networkSwaps": 54200,
  "participatedSwapsVolume": 92080602,
  "networkSwapsVolume": 2168030200,
  "participated24hrSwaps": [
    320,
    352,
    275,
    228,
    248,
    349,
    402,
    434,
    352,
    389,
    462,
    425,
    512,
    369,
    206,
    269,
    364,
    305,
    259,
    324,
    369,
    396,
    298,
    259
  ],
  "participated24hrSwapsVolume": [
    204623.56,
    194567.56,
    144623.56,
    174912,
    154216.92,
    142412.52,
    174912.2,
    284527.26,
    312427.26,
    254223.51,
    264221.56,
    224453.67,
    294523.56,
    174912.2,
    194312.2,
    224453.67,
    144623.56,
    124123.56,
    142412.52,
    174912.2,
    194312.2,
    204623.56,
    174912,
    221683.56
  ],
  "network24hrSwaps": [
    4320,
    4652,
    5275,
    5628,
    4748,
    6249,
    6702,
    6234,
    6852,
    7189,
    6462,
    7325,
    7712,
    6869,
    5206,
    6169,
    6364,
    5705,
    5259,
    4324,
    4869,
    5296,
    4298,
    4259
  ],
  "network24hrSwapsVolume": [
    4817844.88,
    4315834.38,
    3815234.18,
    4013834.38,
    3818234.92,
    3513264.58,
    174912.2,
    4516834.28,
    5113231.38,
    4614134.38,
    4215834.38,
    4216674.28,
    4714834.38,
    4314864.78,
    4013834.38,
    4116934.28,
    3818834.78,
    3519836.38,
    316524.38,
    3016394.38,
    3516234.38,
    3613884.38,
    3813384.38,
    4512841.88
  ],
  "participated1mSwapsVolume": [
    2455482.72,
    2660202.72,
    1952382.32,
    1455282.72,
    1256432.22,
    952382.32,
    752382.32,
    1052382.32,
    752422.32,
    355682.32,
    52382.32,
    0
  ],
  "participated1mSwaps": [
    9600,
    10202,
    8600,
    82010,
    101510,
    11072,
    9395,
    12571,
    9262,
    5292,
    1278,
    0
  ],
  "network1mSwaps": [
    51840,
    48830,
    45140,
    52446,
    49842,
    42180,
    35840,
    32149,
    31891,
    39860,
    28910,
    21849
  ],
  "network1mSwapsVolume": [
    57814138.56,
    54154102.56,
    49217188.16,
    39163138.16,
    35896138.65,
    31314638.76,
    2564336.56,
    2115168.16,
    17211158.25,
    12364118.56,
    5214678.56,
    1854638.56
  ],
  "rewardsVolume": 92080,
  "networkRewardsVolume": 2168030,
  "rewards24hrVolume": [
    2040.62356,
    1940.56756,
    1440.62356,
    1740.912,
    1542.1692,
    1424.1252,
    1749.122,
    2845.2726,
    3124.2726,
    2542.2351,
    2642.2156,
    2244.5367,
    2945.2356,
    1749.122,
    1943.122,
    2244.5367,
    1446.2356,
    1241.2356,
    1424.1252,
    1749.122,
    1943.122,
    2046.2356,
    1749.12,
    2216.8356
  ],
  "networkRewards24hrVolume": [
    48178.4488,
    43158.3438,
    38152.3418,
    40138.3438,
    38182.3492,
    35132.6458,
    1749.122,
    45168.3428,
    51132.3138,
    46141.3438,
    42158.3438,
    42166.7428,
    47148.3438,
    43148.6478,
    40138.3438,
    41169.3428,
    38188.3478,
    35198.3638,
    3165.2438,
    30163.9438,
    35162.3438,
    36138.8438,
    38133.8438,
    45128.4188
  ],
  "rewards1mVolume": [
    24554.8272,
    26602.0272,
    19523.8232,
    14552.8272,
    12564.3222,
    9523.8232,
    7523.8232,
    10523.8232,
    7524.2232,
    3556.8232,
    523.8232,
    0
  ],
  "networkRewards1mVolume": [
    578141.3856,
    541541.0256,
    492171.8816,
    391631.3816,
    358961.3865,
    313146.3876,
    25643.3656,
    21151.6816,
    172111.5825,
    123641.1856,
    52146.7856,
    18546.3856
  ]
}
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

app

Endpoints relevant to loading the node dashboard

app

Node dashboard

GET /

Load the node dashboard application

200 OK

Returns react applciation to browser

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

debug

Endpoints enabled only when the node is in test mode

Gets KVStore

GET /api/v1/debug/kvstore

Gets the nodes KVStore (Availbale only in test mode)

200 OK

Success

400 Bad Request

Bad Request

500 Internal Server Error

Internal Server Error

default

Generic Error

Response Content-Types: application/json
Response Example (200 OK)
"{\"26391988\":{\"kvBucketContent\":{\"unConfirmed\":{\"88999480\":{\"OriginId\":\"AA8xMjcuMC4wLjE6MTIxMjF4pISakSl2yQg+3Fs/yLiXkuFuZO0PJT65CEeo9ISYZwN8TXu7BAfR4sZJgYVa2GgdDYbR6R4AFnk5y2aU0sQi\",\"Type\":\"SWAP\",\"Nonce\":296551,\"DestAddr\":\"dGJuYjF4ZXltNzhxZ2wwZTR5MHJmaHF0N2NqcGN6bm53bnB1YzM0ZmY4OA==\",\"PoW\":null}},\"confirmed\":{}}}}"
Response Example (400 Bad Request)
{
  "code": 400,
  "message": "Bad request"
}
Response Example (500 Internal Server Error)
{
  "code": 500,
  "message": "Internal server error"
}
Response Example (default )
{
  "code": "> 299",
  "message": "Generic error thrown"
}

Schema Definitions

NodeStatus: object

nodeInfo: object
swapInfo: object
Example
{
  "nodeInfo": {
    "id": "7ae6153c3fcbbbb3eff1b20748cff08e",
    "moniker": "jeeves",
    "version": "0.1.0",
    "listenAddr": "node-jeeves-eu-west-1.aws.com:80",
    "collateralStaked": 823772,
    "testnet": true
  },
  "swapInfo": {
    "coin1": "BTC",
    "coin2": "BNB",
    "stakeAmount": "10000.00",
    "feePercent": "0.001"
  }
}

NodeAddress: object

address: string
currency: string
Example
{
  "address": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "currency": "BTC"
}

Peer: object

id: string
moniker: string
version: string
active: boolean true
rank: integer
state: integer
state_name: string
thisNode: boolean
rewardsAddress1: string
rewardsAddress2: string
p2pListener: string
restUri: string
signPoolSize: integer
stake: Stake
Example
{
  "id": "dd400fb69f10dfab7d8d462720e0aac8",
  "moniker": "Loki",
  "version": "0.1.0",
  "active": "boolean",
  "rank": 1,
  "state": 1,
  "state_name": "Signing",
  "thisNode": false,
  "rewardsAddress1": "178JB4HJe6jLwcHbTV6jxB3CogPy61SV2v",
  "rewardsAddress2": "3M92sq9ssFaNbEwF47uteVKJsbw125juS7",
  "p2pListener": "string",
  "restUri": "string",
  "signPoolSize": "integer",
  "stake": {
    "amount": "1430.4000",
    "stakeValid": true,
    "address": "1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvaiL",
    "stakeTime": 3888000000,
    "stakeTXHash": "0f85c5206a0bbd26a82ab1ee1d1ab4af04de31d638f390ceb08be008eca7343d"
  }
}

SwapRequest: object

hash: string
addressDeposit: string
addressIn: string
amountIn: string
amountOut: string
amountFee: string
currencyIn: string
addressOut: string
currencyOut: string
timestamp: integer
Example
{
  "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
  "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "addressIn": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "amountIn": "123.0400",
  "amountOut": "498.00",
  "amountFee": "1.00",
  "currencyIn": "BTC",
  "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
  "currencyOut": "BTC.S",
  "timestamp": 1577488326
}

FloatRequest: object

hash: string
addressDeposit: string
amountIn: string
amountOut: string
amountFee: string
currencyIn: string
currencyOut: string
addressOut: string
timestamp: integer
Example
{
  "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
  "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "amountIn": "123.0400",
  "amountOut": "123.0400",
  "amountFee": "1.00",
  "currencyIn": "BTC",
  "currencyOut": "sbBTC",
  "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
  "timestamp": 1577488326
}

Stake: object

amount: string
stakeValid: boolean
address: string
stakeTime: integer
stakeTXHash: string
Example
{
  "amount": "1430.4000",
  "stakeValid": true,
  "address": "1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvaiL",
  "stakeTime": 3888000000,
  "stakeTXHash": "0f85c5206a0bbd26a82ab1ee1d1ab4af04de31d638f390ceb08be008eca7343d"
}

FeeCalculation: object

send_amount: string
receive_amount: string
currency_from: string
currency_to: string
fee: string
nonce: integer
Example
{
  "send_amount": "string",
  "receive_amount": "0.013",
  "currency_from": "BTC.B",
  "currency_to": "string",
  "fee": "0.0002",
  "nonce": 12424
}

Swap: object

hash: string
status: string
txIdIn: string
txIdOut: string
addressDeposit: string
addressIn: string
amountIn: string
currencyIn: string
addressOut: string
amountOut: string
currencyOut: string
timestamp: integer (int64)
fee: string
feeCurrency: string
rewards: object[]
skypools: boolean

Is a Sky Pools transaction?

Example
{
  "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
  "status": "WAITING",
  "txIdIn": "a591ee98632af06cd905c330e32d86dcd837c4c4a669128ecb84c22d31483607",
  "txIdOut": "f6f06ec1d4f818fd4ca3e021f404dc4bf5ba1366729413ab03ac23ff3bf550bd",
  "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "addressIn": "1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvaiL",
  "amountIn": "500.00",
  "currencyIn": "BTC",
  "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
  "amountOut": "498.00",
  "currencyOut": "BTC.S",
  "timestamp": 1569759157,
  "fee": "2.00",
  "feeCurrency": "BTC",
  "rewards": [
    {
      "txId": "1298de2855abdda7e520c58aa700c3c7b4e1e89a9b7dc28193e89b8f66c4bf83",
      "amount": 100,
      "address": "38WJFZccL9YDMoppsMw2m7TC6Pjxr8x7JD"
    },
    {
      "txId": "df5e712e27b53675a554a87d139198bb7f63d7a233fad82e728b742423701393",
      "amount": 100,
      "address": "37EekxL2QLNCQHqfNcBuEdT3wddhaQBpot"
    }
  ],
  "skypools": true
}

Float: object

hash: string
status: string
txIdIn: string
txIdOut: string
addressDeposit: string
addressIn: string
amountIn: string
currencyIn: string
addressOut: string
amountOut: string
currencyOut: string
timestamp: integer (int64)
fee: string
feeCurrency: string
Example
{
  "hash": "J9-6niaYLWc2bYGQrjSCi8CiDi8djAKyjn6aH_IK970=",
  "status": "WAITING",
  "txIdIn": "a591ee98632af06cd905c330e32d86dcd837c4c4a669128ecb84c22d31483607",
  "txIdOut": "f6f06ec1d4f818fd4ca3e021f404dc4bf5ba1366729413ab03ac23ff3bf550bd",
  "addressDeposit": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
  "addressIn": "1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvaiL",
  "amountIn": "500.00",
  "currencyIn": "BTC",
  "addressOut": "bnb1dqsh580x9hkxs7xxw54u7zf0ndzedqy9ruc56n",
  "amountOut": "498.00",
  "currencyOut": "BTC.S",
  "timestamp": 1569759157,
  "fee": "2.00",
  "feeCurrency": "BTC"
}

FloatBalance: object

currency: string (string)
amount: string (string)
Example
{
  "currency": "BTC",
  "amount": "32.3213"
}

ArrFees: object[]

object
currency: string

Currency (BTC, BNB ...)

bridgeFeePercent: string

Swap fee taken by the network (%)

minerFee: string

Fixed TX fee outbound transactions (Unit format)

Example
[
  {
    "currency": "BTC",
    "bridgeFeePercent": "0.001",
    "minerFee": "200"
  }
]

Reward: object

swapHash: string
txId: string
amount: string
address: string
Example
{
  "swapHash": "43d056e0c55ffaf29177b8a800d4fd86",
  "txId": "1298de2855abdda7e520c58aa700c3c7b4e1e89a9b7dc28193e89b8f66c4bf83",
  "amount": "100.00",
  "address": "38WJFZccL9YDMoppsMw2m7TC6Pjxr8x7JD"
}

SwapStats: object

participatedSwaps: integer
networkSwaps: integer
participatedSwapsVolume: number
networkSwapsVolume: number
participated24hrSwaps: integer[]
participated24hrSwapsVolume: number[]
network24hrSwaps: integer[]
network24hrSwapsVolume: number[]
participated1mSwapsVolume: number[]
participated1mSwaps: integer[]
network1mSwaps: integer[]
network1mSwapsVolume: number[]
rewardsVolume: number
networkRewardsVolume: number
rewards24hrVolume: number[]
networkRewards24hrVolume: number[]
rewards1mVolume: number[]
networkRewards1mVolume: number[]
Example
{
  "participatedSwaps": 2302,
  "networkSwaps": 54200,
  "participatedSwapsVolume": 92080602,
  "networkSwapsVolume": 2168030200,
  "participated24hrSwaps": [
    320,
    352,
    275,
    228,
    248,
    349,
    402,
    434,
    352,
    389,
    462,
    425,
    512,
    369,
    206,
    269,
    364,
    305,
    259,
    324,
    369,
    396,
    298,
    259
  ],
  "participated24hrSwapsVolume": [
    204623.56,
    194567.56,
    144623.56,
    174912,
    154216.92,
    142412.52,
    174912.2,
    284527.26,
    312427.26,
    254223.51,
    264221.56,
    224453.67,
    294523.56,
    174912.2,
    194312.2,
    224453.67,
    144623.56,
    124123.56,
    142412.52,
    174912.2,
    194312.2,
    204623.56,
    174912,
    221683.56
  ],
  "network24hrSwaps": [
    4320,
    4652,
    5275,
    5628,
    4748,
    6249,
    6702,
    6234,
    6852,
    7189,
    6462,
    7325,
    7712,
    6869,
    5206,
    6169,
    6364,
    5705,
    5259,
    4324,
    4869,
    5296,
    4298,
    4259
  ],
  "network24hrSwapsVolume": [
    4817844.88,
    4315834.38,
    3815234.18,
    4013834.38,
    3818234.92,
    3513264.58,
    174912.2,
    4516834.28,
    5113231.38,
    4614134.38,
    4215834.38,
    4216674.28,
    4714834.38,
    4314864.78,
    4013834.38,
    4116934.28,
    3818834.78,
    3519836.38,
    316524.38,
    3016394.38,
    3516234.38,
    3613884.38,
    3813384.38,
    4512841.88
  ],
  "participated1mSwapsVolume": [
    2455482.72,
    2660202.72,
    1952382.32,
    1455282.72,
    1256432.22,
    952382.32,
    752382.32,
    1052382.32,
    752422.32,
    355682.32,
    52382.32,
    0
  ],
  "participated1mSwaps": [
    9600,
    10202,
    8600,
    82010,
    101510,
    11072,
    9395,
    12571,
    9262,
    5292,
    1278,
    0
  ],
  "network1mSwaps": [
    51840,
    48830,
    45140,
    52446,
    49842,
    42180,
    35840,
    32149,
    31891,
    39860,
    28910,
    21849
  ],
  "network1mSwapsVolume": [
    57814138.56,
    54154102.56,
    49217188.16,
    39163138.16,
    35896138.65,
    31314638.76,
    2564336.56,
    2115168.16,
    17211158.25,
    12364118.56,
    5214678.56,
    1854638.56
  ],
  "rewardsVolume": 92080,
  "networkRewardsVolume": 2168030,
  "rewards24hrVolume": [
    2040.62356,
    1940.56756,
    1440.62356,
    1740.912,
    1542.1692,
    1424.1252,
    1749.122,
    2845.2726,
    3124.2726,
    2542.2351,
    2642.2156,
    2244.5367,
    2945.2356,
    1749.122,
    1943.122,
    2244.5367,
    1446.2356,
    1241.2356,
    1424.1252,
    1749.122,
    1943.122,
    2046.2356,
    1749.12,
    2216.8356
  ],
  "networkRewards24hrVolume": [
    48178.4488,
    43158.3438,
    38152.3418,
    40138.3438,
    38182.3492,
    35132.6458,
    1749.122,
    45168.3428,
    51132.3138,
    46141.3438,
    42158.3438,
    42166.7428,
    47148.3438,
    43148.6478,
    40138.3438,
    41169.3428,
    38188.3478,
    35198.3638,
    3165.2438,
    30163.9438,
    35162.3438,
    36138.8438,
    38133.8438,
    45128.4188
  ],
  "rewards1mVolume": [
    24554.8272,
    26602.0272,
    19523.8232,
    14552.8272,
    12564.3222,
    9523.8232,
    7523.8232,
    10523.8232,
    7524.2232,
    3556.8232,
    523.8232,
    0
  ],
  "networkRewards1mVolume": [
    578141.3856,
    541541.0256,
    492171.8816,
    391631.3816,
    358961.3865,
    313146.3876,
    25643.3656,
    21151.6816,
    172111.5825,
    123641.1856,
    52146.7856,
    18546.3856
  ]
}

Error: object

code: integer
message: string
Example
{
  "code": "> 299",
  "message": "Generic error thrown"
}

NotFoundError: object

code: integer
message: string
Example
{
  "code": 404,
  "message": "Resource not found"
}

InternalServerError: object

code: integer
message: string
Example
{
  "code": 500,
  "message": "Internal server error"
}

BadRequestError: object

code: integer
message: string
Example
{
  "code": 400,
  "message": "Bad request"
}

ConflictError: object

code: integer
message: string
Example
{
  "code": 409,
  "message": "Resource conflict"
}