Sign/Verify a message

You can sign and verify messages in just 1 line of code.

With Cometh Connect, we deploy a smart account for our users.

With Connect, we deploy the smart account at the first transaction of the user, allowing to reduce gas cost for our clients (it's a feature called lazy deployment). You might want to verify the signature of a wallet that is not yet deployed. We follow the ERC6492 standard to enable this.

In practice, this is what it looks like:

import { createPublicClient, http } from "viem"

const message = "hello world";
const signature = await smartAccountClient.account.signMessage({ message });

export const publicClient = createPublicClient({
  chain,
  transport: http()
})

const valid = await publicClient.verifyMessage({
  address: smartAccountClient.account.address,
  message,
  signature,
})

Last updated