Skip to content
Logo

Message signing

TronSigner::sign_message signs plaintext using the same prefix and hashing rules as TronWeb's signMessageV2.

use tronz::{TronSigner, recover_message_address, verify_message};
 
let message = b"hello from tronz";
let signature = signer.sign_message(message).await?;
 
assert!(verify_message(message, &signature, signer.address()));
assert_eq!(recover_message_address(message, &signature)?, signer.address());

tronz stores recovery id v as 0 or 1. Use signature.to_legacy_bytes() when interoperating with TronWeb consumers that expect 27 or 28.

See the runnable message-signing example.