Sign messages and transactions
Sign plaintext messages, EIP-712 typed data, or submit raw EVM transactions.
Ask your agent
You (to your agent): "Sign this message on Ethereum: Hello, world"
You (to your agent): "Sign this EIP-712 typed data: <paste JSON payload>"
Your agent shows the exact payload and asks you to confirm before signing.
Prerequisites
- Quickstart completed
- Understanding of what you are signing. Review payloads before confirming.
Sign a plaintext message
mm wallet sign-message --message "<TEXT>" --chain-id <CHAIN_ID> [--wait]
Sign EIP-712 typed data
mm wallet sign-typed-data --chain-id <CHAIN_ID> --payload '<JSON>' [--wait]
The payload must be valid JSON with domain, types, primaryType, and message fields.
Send a raw transaction
If the calldata is unfamiliar, decode it first:
mm decode --payload <0x-calldata>
Then submit the transaction:
mm wallet send-transaction --chain-id <CHAIN_ID> --payload '<JSON>' [--wait]
The payload must include at least a to address. See the commands reference for the full schema.
If mm decode returns Call unknown function, treat the transaction as higher risk and confirm
the payload before signing.
Server-wallet polling
In server-wallet mode, signing commands may return a pollingId when --wait is omitted. Track
pending requests:
mm wallet requests list
mm wallet requests watch --polling-id <POLLING_ID>
In bring your own wallet mode, results return immediately when the mnemonic is unlocked.