BIP340 - Reshare a key share when you are the new party
POST/bip340/reshare/new-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 new party (meaning one that does not currently have a key share) should use for receiving a key share in the new newT-of-newN quorum. The method takes the same input parameters as keygen since for a new party joining the quorum the reshare operation is very similar to a keygen operation. In order to receive the keygen-ids of parties that are already a part of the quorum, those parties will need to call /{schema}/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
Possible values: >= 1
Responses
- 200
- 400
- 401
- 404
- 500
- application/json
- Schema
- Example (from schema)
Schema
Possible values: [already_performed_keygen
, 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
, user_id_not_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"
}