# PersonalMessage

Utilities & types for working with [EIP-191 Personal Messages](https://eips.ethereum.org/EIPS/eip-191#version-0x45-e)

## Examples

### Computing Sign Payload

An EIP-191 personal sign payload can be computed using [`PersonalMessage.getSignPayload`](/api/PersonalMessage/getSignPayload):

```ts twoslash
import { Hex, PersonalMessage, Secp256k1 } from 'ox'

const payload = PersonalMessage.getSignPayload(
  Hex.fromString('hello world')
) // [!code focus]

const signature = Secp256k1.sign({
  payload,
  privateKey: '0x...'
})
```

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`PersonalMessage.encode`](/api/PersonalMessage/encode) | Encodes a personal sign message in [ERC-191 format](https://eips.ethereum.org/EIPS/eip-191#version-0x45-e): `0x19 ‖ "Ethereum Signed Message:\n" + message.length ‖ message`. |
| [`PersonalMessage.getSignPayload`](/api/PersonalMessage/getSignPayload) | Gets the payload to use for signing an [ERC-191 formatted](https://eips.ethereum.org/EIPS/eip-191#version-0x45-e) personal message. |
