> For the complete documentation index, see [llms.txt](https://help.enterprise.ledger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.enterprise.ledger.com/help-center-v2/guides/transactions/signing-messages.md).

# Signing messages

How to sign a message from a Ledger Enterprise Account without moving funds, and which message standards each network uses.

**Role: Operators.**

Signing a message proves control of an address without moving anything. Counterparties, exchanges and applications use it to confirm that an address is yours.

A message signature is a **Request**, governed by its own Rule. An Account that can send cannot necessarily sign messages: an Administrator has to add a **Sign message** Rule. See [**Creating and editing Accounts**](/help-center-v2/guides/accounts/creating-and-editing-accounts.md).

The **Sign messages** tab appears on Accounts whose asset supports it.

## Signing

1. Open the **Sign messages** tab on the Account.
2. Enter the **address** to sign with.
3. Choose the **message standard**.
4. Enter the message, or paste the typed data.
5. Submit, then review and confirm.

Like any Request, it then collects the approvals its Rule requires.

## Message standards

| Standard | Shown as                   | Networks                     |
| -------- | -------------------------- | ---------------------------- |
| EIP-191  | Personal message (EIP-191) | Ethereum and EVM networks    |
| EIP-712  | Typed data (EIP-712)       | Ethereum and EVM networks    |
| BIP-137  | BIP-137                    | Bitcoin and similar networks |

**EIP-191** takes plain text, or a hex string. A hex string must have an even number of characters.

**EIP-712** takes a JSON payload of typed data. The form checks that the JSON is valid and that it really is an EIP-712 payload. It then shows the **domain**, the **primary type** and the **message fields** separately, with the raw JSON available.

That structure is the point of EIP-712. The device can display the fields individually, rather than a single opaque string.

## What can go wrong

| What you see                                      | Why                                             |
| ------------------------------------------------- | ----------------------------------------------- |
| Message cannot be empty                           | No message was entered                          |
| Hex string must have an even number of characters | An EIP-191 hex message is malformed             |
| Message exceeds maximum length                    | The message is longer than the standard allows  |
| Typed data must be a valid JSON document          | The EIP-712 payload is not valid JSON           |
| This JSON is not an EIP-712 typed data payload    | The JSON is valid, but not in EIP-712 shape     |
| No matching rule found                            | No Sign message Rule covers you on this Account |

## Signing digests over the API

**Sign digests** is a separate operation, available to API users only. It signs a raw digest rather than a message in a standard's format.

It is not available in the interface. See the [**API documentation**](https://help.enterprise.ledger.com/api-documentation-v2).

## Related

* [**Ethereum and EVM networks**](/help-center-v2/reference/networks/ethereum.md)
* [**Creating and editing Accounts**](/help-center-v2/guides/accounts/creating-and-editing-accounts.md)
* [**How governance works**](/help-center-v2/concepts/how-governance-works.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.enterprise.ledger.com/help-center-v2/guides/transactions/signing-messages.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
