Sign Message

This scenario is mainly used to sign information. that can be used for login verification.

Sign Message

This method is used for sign message.

interface SignedData {
    publicKey: string;
    data: string;
    signature: {
        field: string;
        scalar: string;

interface ProviderError extends Error {
    message: string;
    code: number;
    data?: unknown;
type SignMessageArgs = {

const content = `Click "Sign" to sign in. No password needed!

This request will not trigger a blockchain transaction or cost any gas fees.

I accept the Auro Test zkApp Terms of Service: ${window.location.href}

address: ${currentAccount}
iat: ${new Date().getTime()}`;

const signContent:SignMessageArgs = {

const signResult: SignedData|ProviderError = await window.mina?
     .catch((err: any) => err);


Sign Json Message

This method is used for sign JSON data , Auro Wallet will format message.

type JsonMessageData  = {

type SignJsonMessageArgs = {
    readonly message: Array<JsonMessageData>

const msgParams = [
    { label: "Label:", value: "Sign Confirm" },
      label: "Message:",
      value: "Click to sign in and accept the Terms of Service",
      label: "URI:",
      value: window.location.href,
      label: "networkID:",
      value: network.networkID,
      label: "Chain Name:",
      label: "Issued At:",
      value: new Date().getTime(),
      label: "Resources:",
      value: "",
const signResult:SignedData|ProviderError = await window.mina
        message: msgParams
    .catch((err: any) => err);


Verify Message

This methods is used for verify signed Message.

let verifyResult:boolean|ProviderError = await window.mina
    .catch((err: any) => err);
console.log(verifyResult); // If the result is successful, it will return true.

Last updated