Sign and verify a message
Use the same network and exact message for signing and verification:isValidMessageSignature returns false when the signature does not validate for the wallet, network, and message. Pass walletAddress to verify a signature from any wallet, even while signed out; omit it to verify against the active Ethereum wallet.
Sign and verify a Solana message
For a selected Solana wallet, use the Solana-specific methods. Off-chain messages do not take a network because they are not cluster-specific.walletAddress.
Sign and verify typed data
Pass the EIP-712 data as a JSON-serializable object withdomain, types, primaryType, and message. The SDK serializes it with JSON.stringify before passing it to the native layer, so write integer values as numbers or decimal strings instead of bigint:
chainId in the EIP-712 domain remains part of the signed payload. The wallet method also requires the corresponding exported network value.
Without walletAddress, verification uses the currently active wallet of the matching type. If the app switches wallets between signing and verification, pass the signer’s address as walletAddress.
Sign and verify with a Tron wallet
For an active Tron wallet, use the Tron methods. Messages and TIP-712 typed data do not take a network, and address values in typed data may be Base58Check (T…):
signTronTypedData({ typedData }) and isValidTronTypedDataSignature({ typedData, signature }) work the same way for TIP-712 data. Both verification methods accept walletAddress, a Base58Check address.