# Verify Signatures

> Documentation index: [llms.txt](https://namera.ai/llms.txt).

Source: https://namera.ai/docs/cli/guides/signing/verify-signatures

Check a signature using the original account, network, and payload.

Install the CLI and [authenticate](https://namera.ai/docs/cli/authentication). Use the full signature
returned by `namera sign`, not the illustrative signature from a documentation
response.

## Verify a Message [#verify-a-message]

```sh
namera verify-signature \
  --namespace evm \
  --wallet 0199dfe1-0000-7000-8000-000000000001 \
  --network 'Base Sepolia' \
  --type message \
  --message 'Hello from Namera' \
  --signature <hex-signature>
```

<div className="docs-response">

```text
Signature valid
-> Account: 👛 Example account
-> Network: Base Sepolia
-> Type: Message
```

</div>

Use the exact original message, including spaces and line breaks. Verification
checks the account; it takes no session-key ID.

## Verify Typed Data [#verify-typed-data]

Save the original EIP-712 payload as `typed-data.json`, then:

```sh
namera --output json verify-signature \
  --namespace evm \
  --wallet 0199dfe1-0000-7000-8000-000000000001 \
  --network 'Base Sepolia' \
  --type typed-data \
  --typed-data "$(cat typed-data.json)" \
  --signature <hex-signature>
```

For scripts, inspect `valid` in the returned JSON. A successful request with
`valid: false` is not a command error. Do not treat exit code zero as a valid
signature.

Verification does not submit a transaction or prove which session key signed.

Example output uses fixture accounts and hashes, captured with the CLI's output
formatters. Plain-text output is shown without terminal colors; your values and
relative expiry dates will differ.
