Skip to main content
This document specifies the request and response payload formats used in TSS Node callback server communication.

Callback request

The callback request is sent from the TSS Node to the callback server.

Base request structure

FieldTypeDescription
request_idstringThe unique ID of the callback request.
request_typeintType of the callback request:
- TypePing (0): Used for heartbeat monitoring
- TypeKeyGen (1): Creating new key shares for your MPC Wallets.
- TypeKeySign (2): Signing transactions or messages.
- TypeKeyReshare (3): Redistributing key shares among participants.
request_detailstringDetails specific to the request type. The structure varies depending on the request type. The content is a JSON-serialized string.
extra_infostringAdditional contextual information. The structure varies depending on the request type. The content is a JSON-serialized string.

TypePing request

Used for heartbeat monitoring of the callback server. If you have specified the monitor_interval parameter when configuring the TSS Node settings, the node will periodically send the request to verify server availability.
callback:
  monitor_interval: 1h # Monitoring interval; if empty, monitoring is disabled
For TypePing requests, request_id, request_detail and extra_info will be empty objects.

TypeKeyGen request

Used for key share generation.

request_detail

FieldTypeDescription
thresholdintThe number of key share holders required to approve operations in this key share holder group.
node_idsarray[string]The TSS Node IDs of the key share holders in this key share holder group.
curveintThe elliptic curve type of the root extended public key. Possible values:
0: Secp256k1
2: Ed25519.
task_idstringThe unique identifier for this key generation task.
biz_task_idstringFor this request type, this field contains the TSS request ID.

extra_info

FieldTypeDescription
orgobjectThe organization information:
- org_id: String. The ID of the organization.
- name: String. The organization name.
- created_timestamp: Int. The organization’s creation time in Unix timestamp format, measured in milliseconds.
projectobjectThe project information. For details, see the response of the Get project information operation.
vaultobjectThe vault information. For details, see the response of the Get vault information operation.
target_key_share_holder_groupobjectThe key share holder group information. For details, see the response of the Get key share holder group information operation.
tss_requestobjectThe TSS request information. For details, see the response of the Get TSS request operation.

TypeKeySign request

Used for transaction or message signing operations.

request_detail

FieldTypeDescription
group_idstringThe ID of the TSS key share group.
root_pub_keystringThe root extended public key of the group.
used_node_idsarray[string]The list of TSS Node IDs participating in signing.
bip32_path_listarray[string]The BIP32 derivation paths.
msg_hash_listarray[string]The list of message hashes to sign.
tweak_listarray[string]The list of tweaks to apply.
signature_typeintThe type of signature to generate. Possible values:
- 1: ECDSA signature
- 2: EdDSA signature
- 3: Schnorr signature
tss_protocolintThe TSS protocol. Possible values:
- 1: GG18
- 2: Lindell
- 3: EddsaTSS
task_idstringThe unique identifier for this signing task.
biz_task_idstringFor this request type, this field contains the transaction ID.

extra_info

FieldTypeDescription
orgobjectThe organization information:
- org_id: String. The ID of the organization.
- name: String. The organization name.
- created_timestamp: Int. The organization’s creation time in Unix timestamp format, measured in milliseconds.
projectobjectThe project information. For details, see the response of the Get project information operation.
vaultobjectThe vault information. For details, see the response of the Get vault information operation.
walletobjectThe wallet information. For details, see the response of the Get wallet information operation.
signer_key_share_holder_groupobjectThe information of the key share holder group that signs the transaction. For details, see the response of the Get key share holder group information operation.
source_addressesarray[object]The information of the source addresses of the transaction. For details, see the response of the List wallet addresses operation.
transactionobjectThe information of the transaction to sign. For details, see the response of the Get transaction information operation.

TypeKeyReshare request

Used for key resharing operations. Resharing means to use an existing key share holder group to generate key shares for a new group.

request_detail

FieldTypeDescription
old_group_idstringThe ID of the existing TSS key share group.
root_pub_keystringThe root extended public key of the vault.
curveintThe elliptic curve type of the root extended public key.
0: Secp256k1
2: Ed25519.
used_node_idsarray[string]The TSS Node IDs of the existing key share holder group.
old_thresholdintThe threshold value of the existing key share holder group used.
new_thresholdintThe threshold value of the new key share holder group.
new_node_idsarray[string]The TSS Node IDs of the new key share holder group.
task_idstringThe unique identifier for this resharing task.
biz_task_idstringFor this request type, this field contains the TSS request ID.

extra_info

FieldTypeDescription
orgobjectThe organization information:
- org_id: String. The ID of the organization.
- name: String. The organization name.
- created_timestamp: Int. The organization’s creation time in Unix timestamp format, measured in milliseconds.
projectobjectThe project information. For details, see the response of the Get project information operation.
vaultobjectThe vault information. For details, see the response of the Get vault information operation.
source_key_share_holder_groupobjectThe information of the existing key share holder group. For details, see the response of the Get key share holder group information operation.
target_key_share_holder_groupobjectThe information of the new key share holder group. For details, see the response of the Get key share holder group information operation.
tss_requestobjectThe TSS request information. For details, see the response of the Get TSS request operation.

Callback response

Your callback server must respond to all callback requests with the following structure:
FieldTypeDescription
statusintThe response status code. 0 indicates success. Any other value indicates that an error occurred while processing the request in the callback server.
request_idstringThe unique ID of the callback request.
actionstringAction to take. Possible values:
- APPROVE: Approve the request and proceed with the operation
- REJECT: Deny the request and stop the operation
errorstringThe error message:
- When status is not 0: Contains internal error messages from the callback server.
- When status is 0 and action is REJECT: Contains the specific reason for the rejection.

Important notes

  • If the TSS Node fails to receive an HTTP response, it will retry the callback request.
  • After exceeding the maximum retry attempts, the risk control result will be set to REJECT.
Feel free to share your feedback to improve our documentation!