Ecdsa - Sign a message using a key share
POST/ecdsa/sign
This API endpoint requires an API Key with at least one of the following Roles: CryptoUser | KeysManager
Signs a message using the given key_id.
The message is signed using the secret share generated in the /ecdsa/keygen operation. The signature is then returned to the caller. The message must be hashed when signing using the relevant hash (i.e. sha256 for Bitcoin or keccak256 for EVM).
Request
Header Parameters
The AUTHORIZATION header must be set to the API Key of the user. The API Key is returned when a new user is created using the /admin/create-user endpoint.
- application/json
Body
required
Represents a simplified structure for specifying a hash algorithm and its corresponding message for signing.
- MOD1
- MOD2
- HostAddress
oneOf
Hex encoded extra data to be passed to the Rule Server. This data should be used to pass any additional information / external state to the Rule Server that is required to properly validate the signing request.
When the none hash algorithm is selected, no hashing is performed, and the message is used as-is. Therefore, the message must be 32 bytes long formatted as a hex string. The hash_algo field is case-insensitive.
Possible values: [sha256, keccak256, sha256d, none]
The message to be signed must be hex-encoded.
relay_address
object
An Optional relay address to use only for this specific MPC operation. If not provided, the default relay address will be used. The relay address should be in the format of host:port.
anyOf
string
Responses
- 200
- 400
- 401
- 404
- 500
- application/json
- Schema
- Example (from schema)
Schema
{
"der": "string",
"r": "string",
"s": "string",
"v": 0
}
- application/json
- Schema
- Example (from schema)
Schema
Possible values: [already_performed_keygen, api_key_not_found, bad_n_and_t_params, bad_request_params, batch_too_large, cant_delete_boot_admin, cluster_already_exists, cluster_not_found, executor_result, failed_to_import_key_share, invalid_domain, key_not_found, key_operation_before_keygen, no_backup_private_key, no_backup_public_key, plaintext_backup_disabled, policy_already_exists, policy_in_use_by_keys, policy_in_use_by_users, policy_not_found, policy_validation_failed, room_creation_problem, rule_already_exists, rule_in_use, rule_not_found, rule_not_in_policy, user_already_exists, user_has_associated_keys, user_not_found, vertex_already_exists, vertex_not_found]
{
"err_msg": "string",
"err_type": "already_performed_keygen"
}
- application/json
- Schema
- Example (from schema)
Schema
Possible values: [access_denied, bad_key_permission]
{
"err_msg": "string",
"err_type": "access_denied"
}
- application/json
- Schema
- Example (from schema)
Schema
Possible values: [not_found]
{
"err_msg": "string",
"err_type": "not_found"
}
- application/json
- Schema
- Example (from schema)
Schema
Possible values: [internal_problem]
{
"err_msg": "string",
"err_type": "internal_problem"
}