Skip to main content
Raw signing lets you sign arbitrary data with an embedded MPC wallet when you need full control over hashing and formatting. This is most useful for non-standard signing flows or chain/app-specific message formats.
Raw signing is currently only available for EVM embedded wallets.

Basic raw signing (hash then sign)

Raw signing is not currently exposed as a first-class API in React Native. If you only need standard message signing, use the chain-specific signing methods for your wallet.

Encoding options

Dynamic supports different encoding formats for your raw messages depending on what you need to hash/sign.

Hexadecimal encoding

Most common for blockchain applications. The message is encoded as a hex string.

UTF-8 text encoding

For plain text messages that don’t require hex encoding.
Hello World

Hash functions

Different hash functions serve different purposes in cryptographic signing.

Keccak256 (Ethereum standard)

import { keccak256, stringToHex } from 'viem';

const message = "Hello World";
const hash = keccak256(stringToHex(message));