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: 0x0000000100111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111bExample 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 workThe 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.