Signing produces a signature without submitting a transaction. Both signing methods verify the result against the wallet before returning it, so a signature you receive has already been checked.
Signing requires an active wallet and uses the same idempotency IDs as transfers.
Sign a plain message
The operation returns with status signed. signature holds the hex signature and verified reports the wallet-aware verification result.
Sign typed data
signTypedData validates the EIP-712 domain and data before signing, then verifies the signature against the wallet. Invalid domains, unknown types, and values that do not match their declared types are rejected rather than signed.
Treat typed-data signing as an authorization
The SDK validates that typed data is well formed. It cannot judge what a given payload authorizes, and that remains your responsibility.
Do not expose signTypedData as a general-purpose endpoint that signs caller-supplied payloads. A signature over attacker-chosen typed data can authorize transfers, approvals, or contract calls that your application never intended. Construct the payload in your backend from values you control.
Continue with balances for reads that need no active wallet.