Webhooks
The daemon supports handling webhooks that can be invoked whenever a certain event occurs during its lifecycle. This is the list of all events a webhook can be registered for:
A webhook is defined by an event for which it's registered to, an endpoint that is invoked whenever the event occurs, and optionally a secret used to sign a JWT token to authenticate requests.
#
Add webhookA webhook can be added to those handled by the daemon with:
# To add a secured webhook$ tdex addwebhook --action TRADE_SETTLED --endpoint http://localhost:8888/endpoint --secret supersecret# To add a non-secured webhook$ tdex addwebhook --action TRADE_SETTLED --endpoint http://localhost:8888/endpoint# hook id: 00000-000-000-0000
The daemon in response returns the id of the newly webhook created.
#
List webhooksYou can list all the webhooks registered for some specific event with:
$ tdex listwebhooks --action TRADE_SETTLED# [# {# "id": 00000-000-000-0000,# "action": "TRADE_SETTLED",# "endpoint": "http://localhost:8888/endpoint",# "is_secured": true# }# ]
A list of webhooks showing their id, event, endpoint and wheter a secret is set is returned.
#
Remove webhookA webhook can be removed by specifing its id with the command:
$ tdex removewebhook --id 00000-000-000-0000# removed hook with id: 00000-000-000-0000
In response, you get the confirmation os the removal of the webhook
#
Event payloadIn this section you can find the payload sent by the daemon to a webhook endpoint whenever a certain event occurs. All payloads are represented in JSON format.
As mentioned, the daemon takes care of authenticating its requests by adding a JWT token. The daemon produces a signatures using the HMAC-SHA256 scheme, therefore the same must be used by the web server exposing the endpoint being invoked.
#
TRADE_SETTLEDExample of payload for TRADE_SETTLED event:
{ "txid": "68790873e2e56a86844f367f9c3d64ebadc1c6d61d8cda6df0dff8010139ea95", "swap": { "amount_p": 1447, "asset_p": "6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d", "amount_r": 41790673, "asset_r": "ce091c998b83c78bb71a632313ba3760f1763d9cfcffae02258ffa9865a37bd2" }, "price": { "base_price": 0.00003462495088, "quote_price": 28880.90739460 }, "market": { "base_asset": "6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d", "quote_asset": "ce091c998b83c78bb71a632313ba3760f1763d9cfcffae02258ffa9865a37bd2" }, "balance": { "base_balance": 57556016, "quote_balance": 376940871878 }}
#
ACCOUNT_WITHDRAWExample of payload for market ACCOUNT_WITHDRAW event:
{ "market": { "base_asset": "6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d", "quote_asset": "ce091c998b83c78bb71a632313ba3760f1763d9cfcffae02258ffa9865a37bd2" }, "amount_withdraw": { "base_amount": 10000000, "quote_amount": 1000000000000, }, "receiving_address": "lq1qqval07apclpjrlru50x3px9x2606fhy6h2m7km7zhgxjmqf8kxzm36mn7hxypzcuw7nk0mt25a658nzlysvjkkejc4kcuxqsc", "txid": "b0ad86c8efcc4eadc74aab471196d7e0773f328ca7bb54dbe4eea1c7cf8c7445", "balance": { "base_balance": 47556016, "quote_balance": 276940871878 }}
#
ACCOUNT_LOW_BALANCEExample of fee ACCOUNT_LOW_BALANCE event:
{ "account": { "type": "fee", "index": 0 }, "balance": 100}
Example of market ACCOUNT_LOW_BALANCE event:
{ "account": { "type": "market", "base_asset": "6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d", "quote_asset": "ce091c998b83c78bb71a632313ba3760f1763d9cfcffae02258ffa9865a37bd2", "index": 5 }, "balance": { "base_amount": 100, "quote_amount": 2000000000, }}