Create SHA256 hash in Clarity
Generate SHA-256 hashes from buffer data in Clarity smart contracts
(define-read-only (create-sha256-hash (data (buff 4096)))(sha256 (unwrap-panic (to-consensus-buff? data))));; Example usage(define-read-only (hash-message (message (string-utf8 200)))(create-sha256-hash (unwrap-panic (to-consensus-buff? message))));; Hash a simple string(print (hash-message u"Hello World"))
Use cases
- Creating unique identifiers from data
- Verifying data integrity in contracts
- Implementing commit-reveal schemes
- Building merkle trees for proofs
Key concepts
The SHA-256 implementation in Clarity:
- Takes a buffer as input (max 1MB)
- Returns a 32-byte buffer hash
- Uses
to-consensus-buff?
to ensure consistent encoding - Produces the same hash as off-chain implementations