Why Verify Checksums?
Checksum verification allows you to:- Confirm the source code matches official releases
- Verify files in your
.minecraftfolder are authentic - Ensure third-party distributions haven’t been tampered with
- Build confidence in Essential’s transparency commitment
Obtaining Checksums
There are two ways to obtain checksums for verification:Option 1: Build Essential Yourself
Option 1: Build Essential Yourself
Build Essential from source to generate jar files locally, then compare them directly to files in your
.minecraft folder.Option 2: Use GitHub Actions Checksums
Option 2: Use GitHub Actions Checksums
Find the corresponding GitHub Actions run for the Essential version and either:
- Download the
checksumsartifact (text file) - View the
Generate checksumslog section of thebuildjob
Generate Checksums from Your Build
After building Essential, generate checksums for all artifacts:- Generates SHA-256 checksums for all mod and loader files
- Outputs to both console and
checksums.txtfile - Matches the format used by GitHub Actions CI
Verifying Different File Types
Files in .minecraft/mods/
Identify the file type
Check the file size:Small file (< 1 MB): This is an Essential Container file.
- Usually includes Minecraft version but never Essential version in filename
- Determine the platform based on your Minecraft version and mod loader
- Find the jar at:
loader/container/<platform>/build/libs/
- Usually includes both Minecraft and Essential version in filename
- Find the jar at:
versions/<MC-Version>/build/libs/pinned_*.jar
Files in .minecraft/essential/
Files named Essential (<Mod-Loader>_<MC-Version>).jar:
Files named
Essential (<Mod-Loader>_<MC-Version>).processed.jar are temporary files derived from the main jar. If you delete them, they’ll be regenerated on next launch.Files in .minecraft/essential/libraries/
These files are extracted from the main Essential jar:
- Location in jar:
META-INF/jars/folder - Extracted recursively for nested jars
- Re-extracted on launch if deleted and still needed
You would need to extract and verify these from the main Essential jar’s
META-INF/jars/ directory.Files in .minecraft/essential/loader/
stage1.jar
stage1.jar
This file is extracted from either:
- The container mod in
.minecraft/mods/ - The main Essential jar in
.minecraft/essential/ - (Whichever has the most recent version)
loader/stage1/<platform>/build/libs/stage2.<Mod-Loader>_<MC-Version>.jar
stage2.<Mod-Loader>_<MC-Version>.jar
Compare with: Check the accompanying You may need to find this specific version in the
loader/stage2/<platform>/build/libs/.meta file for the stage2 version:loader repository and build it separately.Version Aliases
Some Essential versions are compatible with multiple Minecraft versions. Checkversions/aliases.txt for the exact mapping:
aliases.txt.
CI Verification Process
Every Essential release is built twice:Internal CI Build
- Faster build on self-hosted infrastructure
- Includes integration tests
- Uploads jars to Essential infrastructure (not yet published)
- Publishes source code to GitHub repository
What CI Verifies
Main Jars (Verified)
Main Jars (Verified)
The CI verifies checksums of main Essential jars:
versions/*/build/libs/Essential*.jar(not pinned)
Pinned Jars (Not Verified)
Pinned Jars (Not Verified)
Pinned jars are not checksum-verified by CI because:
- They are deterministically derived from main jars
- See:
build-logic/src/main/kotlin/essential/pinned-jar.gradle.kts - Verifying main jars is sufficient
- Re-generated on demand for Modrinth/CurseForge
Computing SHA-256 Checksums
Older Files and Versions
If you have such files and are concerned about their authenticity:- Contact Essential team via Discord
- They can help verify authenticity of older files
Mixed Version Files
Not all files in your
.minecraft folder are updated at the same time. You may have files from different Essential versions.- Check the Essential version in the filename or metadata
- Find the corresponding GitHub Actions run for that version
- Some files (like stage2 loader) update independently
Troubleshooting Verification
Checksum mismatch
Checksum mismatch
Possible causes:
- Wrong Essential version (check filename and metadata)
- Modified file
- Different build environment
- Using wrong platform/version from aliases.txt
- Verify you’re comparing the correct version
- Check
versions/aliases.txtfor version mappings - Rebuild with exact Gradle wrapper version
- Check GitHub Actions logs for reference checksums
Missing checksums artifact on GitHub
Missing checksums artifact on GitHub
GitHub deletes artifacts after some time. You can:
- Build Essential yourself to generate checksums
- Contact Essential team for help verifying older versions
File not found in expected location
File not found in expected location
- Check if version is aliased in
versions/aliases.txt - Verify the platform matches your mod loader
- Some files may be in stage1 folder but are actually stage2
Next Steps
Build Essential Mod
Build Essential to generate your own checksums
Development Setup
Set up your environment for building