For AI agents: read the documentation index. Documentation pages are available as Markdown by appending .md to their URL, or requesting Accept: text/markdown.

Namera Docs

Sign Typed Data

Sign an EIP-712 payload with explicit application context.

Install the CLI and sign in. Replace the example account ID, session-key ID, and recipient with your own. Use an active key installed on Base Sepolia with permission for the operation.

Enable signature authority and permit the intended typed-data domain. Confirm the domain's chain ID and verifying contract before signing.

Prepare the Payload

Save this example as typed-data.json, replacing the domain with your application's real values:

typed-data.json
{
  "domain": {
    "name": "Namera Example",
    "version": "1",
    "chainId": 84532,
    "verifyingContract": "0x2222222222222222222222222222222222222222"
  },
  "types": {
    "Note": [
      {
        "name": "contents",
        "type": "string"
      }
    ]
  },
  "primaryType": "Note",
  "message": {
    "contents": "Hello from Namera"
  }
}

The domain's numeric chainId and the CLI's selected network serve different roles. Keep them consistent for a payload intended for that network.

Sign the Payload

namera sign \
  --namespace evm \
  --wallet 0199dfe1-0000-7000-8000-000000000001 \
  --session-key 0199dfe1-0000-7000-8000-000000000002 \
  --network 'Base Sepolia' \
  --type typed-data \
  --typed-data "$(cat typed-data.json)"
Signature created
-> Account: 👛 Example account
-> Network: Base Sepolia
-> Session key: Example session
-> Type: Typed data (EIP-712)
-> Signature: 0x0000000100111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111b

With --output json on the signing command:

{
  "namespace": "eip155",
  "walletId": "0199dfe1-0000-7000-8000-000000000001",
  "chainId": "eip155:84532",
  "account": "0x1111111111111111111111111111111111111111",
  "signature": "0x0000000100111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111b",
  "type": "typed-data"
}

Use --output json on the original invocation if another program will consume the signature. Keep the complete typed-data object unchanged for verification. Do not combine --message with --typed-data.

The example signature is a fixture value. A signature may authorize an action even though this command itself does not submit a transaction.

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.