# useVerifyMessage

## Description

This hook provides functionality to verify a signature for a given message.

## Returns

* **data** (`boolean`): The signature generated.
* **error** (`Error | null`): An error object if the transaction failed, otherwise `null`.
* **isPending** (`boolean`): A boolean indicating whether the transaction is currently pending.
* **isSuccess** (`boolean`): A boolean indicating whether the transaction was successfully sent.
* **isError** (`boolean`): A boolean indicating whether an error occurred during the transaction process.
* **verifyMessage** : A function that verify if the signature corresponds to the given message.&#x20;
* **verifyMessageAsync** : A function that verify if the signature and returns a promise that resolves to the verification result.

## Example

```typescript
import { useVerifyMessage } from "@cometh/connect-react-hooks";
import { useState } from "react";
import type { Hex } from "viem";

function MessageVerifier() {
  const [message, setMessage] = useState("");
  const [signature, setSignature] = useState<Hex>("");
  const { verifyMessageAsync, isPending, isError, error, data } = useVerifyMessage();

  const handleVerify = async () => {
    try {
      const isValid = await verifyMessageAsync({ message, signature });
      console.log("Signature is valid:", isValid);
    } catch (err) {
      console.error("Error verifying message:", err);
    }
  };

  return (
    <div>
      <input
        placeholder="Enter message"
        value={message}
        onChange={(e) => setMessage(e.target.value)}
      />
      <input
        placeholder="Enter signature (hex)"
        value={signature}
        onChange={(e) => setSignature(e.target.value as Hex)}
      />
      <button onClick={handleVerify} disabled={isPending}>
        Verify Signature
      </button>
      {isPending && <p>Verifying signature...</p>}
      {isError && <p>Error: {error as string}</p>}
      {data !== undefined && <p>Signature is {data ? "valid" : "invalid"}</p>}
    </div>
  );
}

export default MessageVerifier;
```
