Alchemy Logo

signSignatureRequest

Signs a signature request using the provided signer. This method handles different types of signature requests including personal_sign, eth_signTypedData_v4, and authorization.

The signer to use for signing the request

The signature request parameters

The type of signature request ('personal_sign', 'eth_signTypedData_v4', or 'signature_with_authorization')

The data to sign, format depends on the signature type

// Sign a personal message
const result = await client.signSignatureRequest({
  type: 'personal_sign',
  data: 'Hello, world!'
});
 
// Sign typed data (EIP-712)
const result = await client.signSignatureRequest({
  type: 'eth_signTypedData_v4',
  data: {
    domain: { ... },
    types: { ... },
    primaryType: '...',
    message: { ... }
  }
});

function signSignatureRequest(
  signer,
  params,
): Promise<
  | {
      data:
        | `0x${string}`
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            yParity: `0x${string}`;
          }
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            v: `0x${string}`;
          };
      type: "secp256k1";
    }
  | {
      data:
        | `0x${string}`
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            yParity: `0x${string}`;
          }
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            v: `0x${string}`;
          };
      type: "ecdsa";
    }
>;

Defined in: account-kit/wallet-client/src/client/actions/signSignatureRequest.ts:30

ParameterType

signer

SmartAccountSigner

params

WithoutRawPayload< | { data: | string | { raw: `0x${string}`; }; rawPayload: `0x${string}`; type: "personal_sign"; } | { data: { domain?: { chainId?: number; name?: string; salt?: `0x${string}`; verifyingContract?: `0x${string}`; version?: string; }; message: Type.TRecord<"^.*$", Type.TUnknown>; primaryType: string; types: Type.TRecord<"^.*$", Type.TArray<Type.TObject<{ name: Type.TString; type: Type.TString; }>>>; }; rawPayload: `0x${string}`; type: "eth_signTypedData_v4"; } | object & object>

Promise< | { data: | `0x${string}` | { r: `0x${string}`; s: `0x${string}`; yParity: `0x${string}`; } | { r: `0x${string}`; s: `0x${string}`; v: `0x${string}`; }; type: "secp256k1"; } | { data: | `0x${string}` | { r: `0x${string}`; s: `0x${string}`; yParity: `0x${string}`; } | { r: `0x${string}`; s: `0x${string}`; v: `0x${string}`; }; type: "ecdsa"; }>

function signSignatureRequest(
  signer,
  params,
): Promise<{
  data: {
    metadata: {
      authenticatorData: `0x${string}`;
      clientDataJSON: string;
    };
    signature:
      | `0x${string}`
      | {
          r: `0x${string}`;
          s: `0x${string}`;
        };
  };
  type: "webauthn-p256";
}>;

Defined in: account-kit/wallet-client/src/client/actions/signSignatureRequest.ts:42

ParameterType

signer

WebAuthnSigner

params

WithoutRawPayload< | { data: | string | { raw: `0x${string}`; }; rawPayload: `0x${string}`; type: "personal_sign"; } | { data: { domain?: { chainId?: number; name?: string; salt?: `0x${string}`; verifyingContract?: `0x${string}`; version?: string; }; message: Type.TRecord<"^.*$", Type.TUnknown>; primaryType: string; types: Type.TRecord<"^.*$", Type.TArray<Type.TObject<{ name: Type.TString; type: Type.TString; }>>>; }; rawPayload: `0x${string}`; type: "eth_signTypedData_v4"; }>

Promise<{ data: { metadata: { authenticatorData: `0x${string}`; clientDataJSON: string; }; signature: | `0x${string}` | { r: `0x${string}`; s: `0x${string}`; }; }; type: "webauthn-p256"; }>

function signSignatureRequest(
  signer,
  params,
): Promise<
  | {
      data:
        | `0x${string}`
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            yParity: `0x${string}`;
          }
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            v: `0x${string}`;
          };
      type: "secp256k1";
    }
  | {
      data:
        | `0x${string}`
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            yParity: `0x${string}`;
          }
        | {
            r: `0x${string}`;
            s: `0x${string}`;
            v: `0x${string}`;
          };
      type: "ecdsa";
    }
  | {
      data: {
        metadata: {
          authenticatorData: `0x${string}`;
          clientDataJSON: string;
        };
        signature:
          | `0x${string}`
          | {
              r: `0x${string}`;
              s: `0x${string}`;
            };
      };
      type: "webauthn-p256";
    }
>;

Defined in: account-kit/wallet-client/src/client/actions/signSignatureRequest.ts:50

ParameterType

signer

SmartAccountSigner<any> | WebAuthnSigner

params

WithoutRawPayload< | { data: | string | { raw: `0x${string}`; }; rawPayload: `0x${string}`; type: "personal_sign"; } | { data: { domain?: { chainId?: number; name?: string; salt?: `0x${string}`; verifyingContract?: `0x${string}`; version?: string; }; message: Type.TRecord<"^.*$", Type.TUnknown>; primaryType: string; types: Type.TRecord<"^.*$", Type.TArray<Type.TObject<{ name: Type.TString; type: Type.TString; }>>>; }; rawPayload: `0x${string}`; type: "eth_signTypedData_v4"; }>

Promise< | { data: | `0x${string}` | { r: `0x${string}`; s: `0x${string}`; yParity: `0x${string}`; } | { r: `0x${string}`; s: `0x${string}`; v: `0x${string}`; }; type: "secp256k1"; } | { data: | `0x${string}` | { r: `0x${string}`; s: `0x${string}`; yParity: `0x${string}`; } | { r: `0x${string}`; s: `0x${string}`; v: `0x${string}`; }; type: "ecdsa"; } | { data: { metadata: { authenticatorData: `0x${string}`; clientDataJSON: string; }; signature: | `0x${string}` | { r: `0x${string}`; s: `0x${string}`; }; }; type: "webauthn-p256"; }>

Was this page helpful?