Skip to main content

Overview

DynamicEvmWalletClient::sign_message signs a UTF-8 message using EIP-191 (personal_sign) and returns a 0x-prefixed r || s || v signature (65 bytes / 130 hex chars). Message signing is commonly used for authentication, nonce verification, and data integrity checks.

Prerequisites

Basic Message Signing

The Rust SDK is stateless — every sign call requires WalletProperties and external_server_key_shares. Load both from where you persisted them at wallet creation time.
signature is a 0x-prefixed hex string — pass it directly to any EIP-191 verifier (alloy, ethers, viem, etc).

Verifying the signer locally

Because the signature is standard EIP-191, you can recover the signer with any EVM library. With alloy:

Common Use Cases

Authentication

Data Integrity

Next Steps

Last modified on May 19, 2026