Protocol Configurations

The SDK will return an error that contains the HTTP error code:

invalid tsm input ; node returned 404: 404 page not found

The 404 error means that the endpoint is not found. If the SDK is the same version as the MPC node, this will only happen if the endpoint is not enabled in the node. This is handled by the feature section under the relevant protocol, and the feature end point that has been called have not been enabled. Here is an example of DKLS19 protocol enabling all the end points:

[DKLS19]

# Controls which features of DKLS19 to enable. Each field corresponds to a method in the SDK.
[DKLS19.Features]
  GenerateKey = true
  GeneratePresignatures = true
  Sign = true
  SignWithPresignature = true
  GenerateRecoveryData = true
  PublicKey = true
  ChainCode = true
  Reshare = true
  CopyKey = true
  BackupKeyShare = true
  RestoreKeyShare = true
  ExportKeyShares = true
  ImportKeyShares = true
  BIP32GenerateSeed = true
  BIP32DeriveFromSeed = true
  BIP32DeriveFromKey = true
  BIP32ConvertKey = true
  BIP32ExportSeed = true
  BIP32ImportSeed = true
  BIP32Info = true

Which one is missing depends on what operation have been attempted. For a list of possible features for each protocol, see the configuration example.

There is one other thing that can give a 404: using an SDK that does not match the MPC node. In this case, the endpoints might have been renamed. The most seen instance of this is that in 61.0.0, EdDSA was generalized into Schnorr signatures. This meant that all endpoints were renamed from eddsa to schnorr. This has caused customers running with SDK and MPC node differences across this boundary to get 404 errors.