Verify a document
Recompute the 96-character SHA-384 digest, then compare it with the anchored transaction on HashScan.
1. Recompute the SHA-384 seal
Hash the PDF with SHA-384. The digest is 96 hexadecimal characters. The register and sign payloads store that value on the sha384 field. The Hedera message field is docHash, and the message records hashAlgorithm as SHA-384.
shasum -a 384 document.pdf
The Python SDK computes the same digest with hashsign.crypto.sha384_file.
from hashsign.crypto import sha384_file
digest = sha384_file("document.pdf")2. Compare the consensus message
documents.verify returns the topic id, transaction id, and consensus timestamp. The topic message is JSON with docHash and a timestamp. When hybrid mode is on, it can also include hybridAnchor, SHA-384 (96 hex characters) of the classical and ML-DSA signatures, because a topic message is capped at 1024 bytes. Compare your recomputed SHA-384 seal to docHash.
3. Open the transaction on HashScan
The portal builds explorer links as https://hashscan.io/{network}/transaction/{transactionId}. Topic links use /topic/{topicId}. The network in a live proof is mainnet, testnet, or previewnet. The example topic on the marketing page, 0.0.9001, is the local mock topic, not a live seal.
Hedera's mirror node also returns a running hash for the topic stream. That stream hash is not the document seal. Compare docHash.
A hash shows that a document has not changed since it was sealed. It does not prove who signed it.