"$schema": "http://json-schema.org/draft-04/schema" "$id": "https://nix.dev/manual/nix/latest/protocols/json/schema/hash-v1.json" title: Hash description: | A cryptographic hash value used throughout Nix for content addressing and integrity verification. This schema describes the JSON representation of Nix's `Hash` type. type: object properties: algorithm: "$ref": "#/$defs/algorithm" format: type: string enum: - base16 title: Hash format description: | The encoding format of the hash value. `base16` (lowercase hexadecimal) is the only format that is currently supported for JSON serialization. This field exists primarily to reduce ambiguity about what the hash means. It would also help us support other formats in the future, but there are no concrete plans to do so at this. hash: type: string title: Hash description: | The encoded hash value, itself. It is specified in the format specified by the `format` field. It must be the right length for the hash algorithm specified in the `algorithm` field, also. The hash value does not include any algorithm prefix. required: - algorithm - format - hash additionalProperties: false "$defs": algorithm: type: string enum: - blake3 - md5 - sha1 - sha256 - sha512 title: Hash algorithm description: | The hash algorithm used to compute the hash value. `blake3` is currently experimental and requires the [`blake-hashing`](@docroot@/development/experimental-features.md#xp-feature-blake3-hashes) experimental feature.