-
Notifications
You must be signed in to change notification settings - Fork 477
Description
The docs say: A multi-sig user can be converted back to a normal user by sending a ConvertToMultiSigUser via multi-sig. In this case, the set of authorized users can be set to empty and conversion to normal user will be performed. Here: https://hyperliquid.gitbook.io/hyperliquid-docs/hypercore/multi-sig
However, in practice it seems this functionality currently doesn't work. I have a multisig set up with one authorized user and I'm trying to remove the authorized user to convert my account to a normal one. This is my API request which is correctly signed by the authorized user:
~~~ REQUEST ~~~
POST /exchange HTTP/1.1
HOST : api.hyperliquid-testnet.xyz
HEADERS:
Accept: application/json
Content-Type: application/json
BODY :
{
"action": {
"type": "multiSig",
"signatureChainId": "0x66eee",
"signatures": [
{
"r": "0x2012cf93493fd244824a1695cfd2683d360e7e0c9c29c9f62bd66be4653eb2ae",
"s": "0x4bd3c5861067a30d4f1129c949178d0402e096a425ba62622ff77cb448456c82",
"v": 28
}
],
"payload": {
"multiSigUser": "0x8e47a44eecc5eb73a69be26bad372a1ffebf08bd",
"outerSigner": "0xd89155035ccd9458558d2706ba048199fbb68362",
"action": {
"type": "convertToMultiSigUser",
"signatureChainId": "0x66eee",
"hyperliquidChain": "Testnet",
"signers": "{\"authorizedUsers\":[],\"threshold\":0}",
"nonce": 1764907907674
}
}
},
"expiresAfter": null,
"nonce": 1764907907674,
"signature": {
"r": "0xfe8d0c6acbd23270ca28e901a38c4cef8029a435474910d3ae9ffe1e7a7be255",
"s": "0x18f308ebb8abe11dcb4c9e656e9567a9ffe76afbddaba1129bc304c8a71614ea",
"v": 27
},
"vaultAddress": null
}And the response:
------------------------------------------------------------------------------
~~~ RESPONSE ~~~
STATUS : 200 OK
PROTO : HTTP/1.1
RECEIVED AT : 2025-12-04T23:11:48.425739-05:00
TIME DURATION: 750.364125ms
HEADERS :
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *
Connection: keep-alive
Content-Length: 57
Content-Type: application/json
Date: Fri, 05 Dec 2025 04:11:48 GMT
Server: nginx/1.26.2
Vary: origin, access-control-request-method, access-control-request-headers
Via: 1.1 344d3cc6f132c3533d8a58d054dcf1da.cloudfront.net (CloudFront)
X-Amz-Cf-Id: t_HGNImjhlPuNzSkth_juI7NQIcafRpkamdQ8tYyV89212L77l-CzQ==
X-Amz-Cf-Pop: MIA3-C3
X-Cache: Miss from cloudfront
BODY :
{
"status": "err",
"response": "Invalid multi-sig threshold"
}It's unclear what I'm supposed to pass for the threshold value here. Omitting threshold completely results in this error:
Unexpected error (code=148))
Any ideas what I can try? There is no example for revoking a multisig in the repo so maybe I'm missing something