Ecdsa - Reshare a key share when you are an existing party
POST/ecdsa/reshare/existing-party
WARNING: Key resharing is an advanced feature of the Sodot MPC Vertex. We strongly advise consulting with the Sodot team before using it, as incorrect usage might lead to the detriment of the private key security. To use this feature correctly, developers using this feature must make sure that at least n - t + 1 parties of the t-of-n signing quorum delete their current shares before using the resharing of the private key. Also, after resharing, the resharing operation must not be considered complete until such deletion has occurred. Since deleting a share cannot be guaranteed cryptographically, it must be guaranteed by the software architecture (hence, by the developers using this API).
Resharing the private key of the t-of-n quorum of signers, the resultant key shares will be of the exact same public key as the previous quorum. Resharing should be used in cases where we aim to modify the current t-of-n quorum with a new quorum with newT-of-newN signers for the same public key.
This is the method that a remaining party (meaning one that does currently have a key share) should use for receiving a new key share in the new newT-of-newN quorum. The method takes the same input parameters as /{schema}/reshare/new-party
except that it will use its existing stored key share instead of a new one. In order to receive the keygen_ids of parties that are already a part of the quorum, those parties will need to call /{schme}/export-id/:key_id
and send the result to the parties in the new quorum.
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
- HostAddress
Possible values: >= 1
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
{
"key_id": "string"
}
- 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
, executor_result
, key_id_not_exists
, key_operation_before_keygen
, policy_in_use_by_keys
, policy_in_use_by_users
, policy_not_found
, policy_validation_failed
, room_creation_problem
, rule_in_use
, rule_not_found
, rule_not_in_policy
, server_share_backup_setting_disabled
, unique_violation
, user_has_associated_keys
, user_id_not_exists
, user_name_already_exists
, you_have_to_be_admin
]
{
"err_msg": "string",
"err_type": "already_performed_keygen"
}
- application/json
- Schema
- Example (from schema)
Schema
Possible values: [access_denied
]
{
"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"
}