Skip to content

useSignMessages ​

Signs multiple messages in a single request. Supports ECDSA and BIP322 protocols.

WARNING

signMessages is currently supported only by the Xverse connector. If the active connector does not support signMessages, the core implementation falls back to signing each message individually using signMessage.

If address is not provided for a message, the default account address will be used. If protocol is not provided, BIP322 will be used by default.

Import ​

ts
import { useSignMessages } from "@midl/react";

Example ​

tsx
function SignMessages() {
  const { signMessages, isLoading, error, data } = useSignMessages();

  if (isLoading) return <p>Loading...</p>;
  if (error) return <p>Error: {error.message}</p>;

  return (
    <div>
      <p>{data?.[0]?.signature}</p>
      <button
        onClick={() =>
          signMessages([
            { message: "Hello, world!" },
            { message: "Second message" },
          ])
        }
      >
        Sign Messages
      </button>
    </div>
  );
}

Parameters ​

NameTypeDescription
mutationUseMutationOptions(optional) Mutation options for react-query.
configConfig(optional) Custom config to override the default from context.

SignMessagesVariables ​

An array of SignMessageParams, with address optional per message.

NameTypeDescription
messagestringThe message to sign.
addressstring(optional) The address to sign with. If not provided, uses default account.
protocolstring(optional) The protocol to use (ECDSA or BIP322). Defaults to BIP322.

Returns ​

NameTypeDescription
signMessages(variables: SignMessagesVariables) => voidFunction to initiate message signing.
signMessagesAsync(variables: SignMessagesVariables) => Promise<SignMessagesData>Function to asynchronously sign the messages.
...restobjectAdditional mutation state (e.g. isLoading, error, etc.).

Released under the MIT License