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

namera sign

Sign a UTF-8 message or EIP-712 typed data with an account.

Sign a UTF-8 message or EIP-712 typed data with an account.

Usage

namera sign \
  --namespace evm \
  --wallet 0199dfe1-0000-7000-8000-000000000001 \
  --session-key 0199dfe1-0000-7000-8000-000000000002 \
  --network 'Base Sepolia' \
  --type message \
  --message 'Hello from Namera'

Output

Signature created
-> Account: 👛 Example account
-> Network: Base Sepolia
-> Session key: Example session
-> Type: Message
-> Signature: 0x0000000100111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111b

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.

With --output json:

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

The fixture signature illustrates the full output shape; use your returned signature for verification.

Options

--namespace

  • Type: evm | eip155
  • Required: for non-interactive input flags

Select the EVM network family. Both values resolve to the same namespace. This is not the chain ID; choose the network separately.

--wallet

  • Type: string (account ID)
  • Required: for non-interactive input flags

Use an ID from namera --output json wallet list, not an Ethereum address. With input flags, the CLI reads the account to validate your selection.

--network

  • Type: network name, numeric chain ID, or CAIP-2 ID
  • Required: for non-interactive input flags

For Base Sepolia, use --network 'Base Sepolia', --network 84532, or --network eip155:84532. Names are case-insensitive. The supported networks are Ethereum, Sepolia, Base, Base Sepolia, Arbitrum One, Arbitrum Sepolia, OP Mainnet, and OP Sepolia. Supported Networks lists their identifiers.

--session-key

  • Type: string (session-key ID)
  • Required: for non-interactive input flags

Choose a key belonging to the selected account. Find IDs with namera --output json session-key list --wallet <wallet-id>. Input flags require session-key read access to validate the key. Execution and signing also require a grant, an active installation on the chosen network, and matching permissions.

--type

  • Type: message | typed-data
  • Required: for non-interactive input flags

Choose a UTF-8 message or an EIP-712 structured payload. There is no default.

--message

  • Type: string
  • Required: when --type message

The exact UTF-8 message. Quote it to preserve spaces. Whitespace and letter case are part of the signed payload. Do not combine this with --typed-data.

--typed-data

  • Type: JSON string
  • Required: when --type typed-data

Supply domain, types, primaryType, and message following EIP-712. The domain identifies the application and can bind the signature to a chain and verifying contract. Use the same full object when verifying. Do not combine it with --message.

--params

  • Type: JSON string
  • Required: only when replacing individual input flags

Pass the complete request as one JSON object. Use this for batch calls or scripts that already construct requests. JSON uses eip155 for the namespace, CAIP-2 chain IDs, and decimal strings for bigint quantities.

Do not combine it with individual transaction or signature input flags. It can be used with --profile and global output options. Supplying JSON skips the interactive selection and its extra account/session-key reads; authorization and request validation still apply.

--profile

  • Type: string
  • Default: personal

Choose the saved CLI connection for this command. Pass the same name used at login. If NAMERA_API_KEY is set, ordinary API commands use that key instead of the profile's OAuth credentials.

namera wallet list --profile work

The command also accepts global options: --output pretty|json, --quiet, and --help.

The session's installed authority must allow signatures and any applicable API policies must allow the payload. Signing does not broadcast a transaction. Do not blindly repeat a signing command after losing its response; another attempt can consume another signature allowance.

Errors

Failures exit nonzero and are written to stderr. With --output json, inspect error.code and error.nextStep. See Output and Errors.