-
Axiom 6.0.5 — full unlock (auto)
StableAll checks were successfulbuild-patched-axiom / build (push) Successful in 40sreleased this
2026-09-04 06:03:18 +00:00 | 5 commits to main since this releaseAutomatic build of Axiom 6.0.5 (Modrinth
o59cWLPI) - full unlock + fully offline patches.Drop
Axiom-6.0.5-for-MC26.2-Ekaxiom.jarinto~/.minecraft/mods/in place of the original Axiom jar. See README.md for what the patch does andreports/PHASE7-license-mechanics.mdfor why it's safe.upstream sha512 b7983617669a73739ea21486d8ea232980e10b6692b02911a873d64ab37cb4ffb0a58c27e35a31a68f65883c689a787f5f57b0cb2d29d325ed7cfc8351a0e3bc patched sha256 312a8bdab9f98c4b2a2d10a83ac663ddebddc5ffa17e330adb2acd425b0cf74b patched size 47074621 bytesBuilt by Forgejo Actions run #3474.
Jar attached by hand on 2026-09-05: the CI run created this release but died before uploading the asset (HTTP-code parsing bug in auto-build.yml, fixed in branch fix/ci-release-upload). Rebuilt locally from the same upstream file (sha512 verified) with the patcher at
eba340e; hashes above updated to this build.Jar REPLACED on 2026-09-05 (patcher
80b9cd3, PR #4): the previous asset had a dead NPE guard - the patcher stripped the @WrapOperation annotation from MixinCamera.extractRenderState_isSpectator, so Mixin never injected it and a transiently-null player still crashed the render thread (Camera.extractRenderState:137). Hashes above updated to this build.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
Axiom 6.0.3 — full unlock (auto)
StableAll checks were successfulbuild-patched-axiom / build (push) Successful in 40sreleased this
2026-09-03 06:01:29 +00:00 | 5 commits to main since this releaseAutomatic build of Axiom 6.0.3 (Modrinth
SkHtNK2i) - full unlock + fully offline patches.Drop
Axiom-6.0.3-for-MC26.2-Ekaxiom.jarinto~/.minecraft/mods/in place of the original Axiom jar. See README.md for what the patch does andreports/PHASE7-license-mechanics.mdfor why it's safe.upstream sha512 1150833b4aa122c6fad62a671d8599ec749acc7edd548da1b0d6efa846b18ef17e38656aa1a41ac1ab15bc0ba40c917a293fe7216142e0f811c55760b297b55b patched sha256 e1fc7e5e8ce20333797920c5817122513bc9f5a7e8ce23cbfd4fef83257e7784 patched size 47074205 bytesBuilt by Forgejo Actions run #3464.
Jar attached by hand on 2026-09-05: the CI run created this release but died before uploading the asset (HTTP-code parsing bug in auto-build.yml, fixed in branch fix/ci-release-upload). Rebuilt locally from the same upstream file (sha512 verified) with the patcher at
eba340e; hashes above updated to this build.Jar REPLACED on 2026-09-05 (patcher
80b9cd3, PR #4): the previous asset had a dead NPE guard - the patcher stripped the @WrapOperation annotation from MixinCamera.extractRenderState_isSpectator, so Mixin never injected it and a transiently-null player still crashed the render thread (Camera.extractRenderState:137). Hashes above updated to this build.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
Axiom 6.0.1 — full unlock (auto)
StableAll checks were successfulbuild-patched-axiom / build (push) Successful in 40sreleased this
2026-09-01 06:01:53 +00:00 | 5 commits to main since this releaseAutomatic build of Axiom 6.0.1 (Modrinth
oxE9J6s9) - full unlock + fully offline patches.Drop
Axiom-6.0.1-for-MC26.2-Ekaxiom.jarinto~/.minecraft/mods/in place of the original Axiom jar. See README.md for what the patch does andreports/PHASE7-license-mechanics.mdfor why it's safe.upstream sha512 e48c9b6b0bca42b83679a8bec25488163c31a5dd56f117ab0db7998e7d37fa7e2e778cfbc68fc542e813604e4091b6a0348ae7d65ba0776ddb48fd6a028f602a patched sha256 fe8b874a29ddc17f6828645c969eff659b6af165b190f4b119875dd6630f9451 patched size 47074667 bytesBuilt by Forgejo Actions run #3436.
Jar attached by hand on 2026-09-05: the CI run created this release but died before uploading the asset (HTTP-code parsing bug in auto-build.yml, fixed in branch fix/ci-release-upload). Rebuilt locally from the same upstream file (sha512 verified) with the patcher at
eba340e; hashes above updated to this build.Jar REPLACED on 2026-09-05 (patcher
80b9cd3, PR #4): the previous asset had a dead NPE guard - the patcher stripped the @WrapOperation annotation from MixinCamera.extractRenderState_isSpectator, so Mixin never injected it and a transiently-null player still crashed the render thread (Camera.extractRenderState:137). Hashes above updated to this build.Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
3 downloads
-
Source code (ZIP)
-
Axiom 6.0.0 — full unlock
Pre-releaseAll checks were successfulbuild-patched-axiom / build (push) Successful in 40sreleased this
2026-08-26 15:38:28 +00:00 | 5 commits to main since this releaseManual unlock build of Axiom 6.0.0 (MC 26.2, Modrinth
DEXe5O7N). Note: 6.0.0 is published as an ALPHA on Modrinth, so the release-only daily auto-build did not pick it up — this build was cut by hand.Patcher applied with zero drift: all expected methods rewritten (getMeta, hasCommercialLicense, checkCommercial, checkServer x2 Authorization classes; fetchUpdateCount; MixinCamera isSpectator NPE guard). Drop
Axiom-6.0.0-for-MC26.2-Ekaxiom.jarinto your mods folder.upstream sha512 2af708142fcf17f19ed30134bea4f9748f8b3a0373c0f5339734694ebafdcf9d90c6a5eafb678c4798ad42aff14d12efb4ac5b2c9acb811a6dd41ac50a3f7bad patched sha256 dbb89d70740c9e9e11c5f8396f07b8eff1e7d13d9a63423075cfe1c68c9fc78f patched size 47040053 bytesDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
Axiom 5.5.0 — full unlock (MC 26.2)
StableAll checks were successfulbuild-patched-axiom / build (push) Successful in 40sreleased this
2026-08-11 10:12:38 +00:00 | 5 commits to main since this releaseAutomatic-equivalent build of Axiom 5.5.0 for MC 26.2 (Modrinth
QO99kC52) — full unlock + fully offline patches, rebranded Ekaxiom.Built locally with the same patcher source now on
main(JDK 25, ASM 9.7.1), upstream sha512-verified against Modrinth. In 5.5.0 the render-side isSpectator NPE guard was re-homed from MixinLevelRenderer.update_isSpectator to MixinCamera.extractRenderState_isSpectator.Drop
Axiom-5.5.0-for-MC26.2-Ekaxiom.jarinto~/.minecraft/mods/in place of the original Axiom jar.upstream sha512 fc6681cfe613a1d97346dacbe71b8a6df770cb86fc0424ee9f4abcb4eedc23a3754d7def1d36995f782e167bb29d15a31a99a35c662fc14278d020eba272b530 patched sha256 a34042a64b9722925ac4e7b79ee55314415033883ea24f170c0c6f2d877e1559 patched size 46989356 bytesDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
v5.4.1-unlock3
StableAll checks were successfulbuild-patched-axiom / build (push) Successful in 25sreleased this
2026-05-23 17:00:41 +00:00 | 7 commits to main since this releaseAdds null-guard on MixinLevelRenderer.update_isSpectator to fix client NPE during CoreProtect rollbacks / heavy chunk reloads.
All previous unlock + Ekaxiom rebrand patches retained.
SHA256: 11c42a46023c497b3ad3bd8e7b129d801d8b85a24af4476857ebc995cb04146c
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
Ekaxiom 5.4.1 — full unlock + rebrand
StableAll checks were successfulbuild-patched-axiom / build (push) Successful in 25sreleased this
2026-05-03 19:45:31 +00:00 | 9 commits to main since this releaseAxiom 5.4.1, fully unlocked + offline + rebranded as Ekaxiom.
Drop
Axiom-5.4.1-Ekaxiom.jarinto~/.minecraft/mods/(replacing the original Axiom jar). It still loads as Fabric mod idaxiomso the multiplayer protocol with AxiomPaperPlugin servers works unchanged — it's only the user-visible naming that's flipped.What's new in
-unlock2- Mod-list / in-game / chat / tutorial copy now reads "Ekaxiom" instead of "Axiom". Three rebrand surfaces patched:
fabric.mod.json.name— mod list displayassets/axiom/lang/en_us.json— every value matching\bAxiom\brewritten ("Axiom Configuration"→"Ekaxiom Configuration", gamerule labels(Axiom) Do Block Drops→(Ekaxiom) Do Block Drops, etc.)- Hardcoded English strings inside
com/moulberry/**.classfiles — chat messages ([Axiom]→[Ekaxiom]), startup tips, AlertScreen titles, "Axiom Renderer", etc.
- Internal identifiers (Fabric
id="axiom", packagecom.moulberry.axiom, mixin namespace, every class/field/method reference) are left untouched so the mod still loads and the protocol still matches the upstreamAxiomPaperPlugin.
Carries over from
-unlock1- Master switch
Authorization.hasCommercialLicense() = true— every gated feature unlocked. getMeta/checkCommercial/checkServer/LocalizationLoader.fetchUpdateCountneutralized so zero packets reachaxiom.moulberry.com.- Latin + Greek-omicron
Authorizationtwins both patched.
Reproducibility
upstream sha512 5e923c7e19d537434...dfbbf3f8 patched sha256 16325173b9e7bbc1a76c9a3ad0a827723a85c48d12eb53b4cff250826068876f patched size 46 921 686 bytesBuilt by Forgejo Actions run #186. Class-file content is byte-identical to a local rebuild against the same upstream jar (only ZIP-wrapper timestamps differ).
The
auto-build.ymlworkflow will tag and releasev<axiom-version>-unlockautomatically when Moulberry ships a new Fabric release on Modrinth — see README for the gate logic and the strict completeness check.Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
2 downloads
- Mod-list / in-game / chat / tutorial copy now reads "Ekaxiom" instead of "Axiom". Three rebrand surfaces patched:
-
Axiom 5.4.1 — full unlock, fully offline
StableAll checks were successfulbuild-patched-axiom / build (push) Successful in 25sreleased this
2026-05-03 19:17:16 +00:00 | 13 commits to main since this releaseDrop-in replacement for
Axiom-5.4.1-for-MC26.1.jar— fully unlocked, fully offline.Patched at the bytecode level via ASM. The mod still loads as Fabric mod id
axiomv5.4.1 — same metadata, same protocol, same packet handlers. Only the license-check methods are rewritten to short-circuit.What changed vs upstream
Patched method Behavior Authorization.hasCommercialLicense()always true— master switch, every gated feature unlockedAuthorization.checkCommercial(UUID)returns true+ sets static field; never contacts the auth serverAuthorization.checkServer(host, ip, UUID)returns COMMERCIAL+ sets static field; never contacts the auth serverAuthorization.getMeta()returns an empty Meta(no kill switch, no version nag)LocalizationLoader.fetchUpdateCount()throws — falls back to cached translations; the bundled Weblate token is never sent Net effect on the wire
Zero connections to
axiom.moulberry.comfrom the mod. Your Mojang UUID, the server hostname you're connecting to, and the server's IP never leave your client.What you do NOT lose
Every documented Axiom feature still works — block placement, render overrides, blueprint browser, schematic export, history persistence, Lua script brushes, image annotations, marker tools. The license check was a remote feature toggle, not a runtime code-loading channel: see
reports/PHASE7-license-mechanics.mdfor the proof (the JWT body has only one boolean claim and the verifier reads only that claim).What you DO lose
- Periodic auto-fetch of new translations (mod still reads the cached
translations.zipif you have one). - Image annotations placed in worlds you visit still work, but the URL fetch of those images is not patched — they hit whatever URL the server tells them to. If you want zero outbound HTTP from the client side, see the strict-mode patches in
reports/PHASE4-patches.md.
Reproducibility
Built by Forgejo Actions run #180. The .class files in this artifact are byte-identical to a local build of the same patcher source against the same upstream jar (only ZIP-wrapper timestamps differ).
upstream jar Axiom-5.4.1-for-MC26.1.jar sha512: 5e923c7e19d537434...dfbbf3f8 patched jar Axiom-5.4.1-patched.jar sha256: 89a65ceb1c3d58a4f94254fb3339629073a10b7c84b3a2ca6dfe837fc522d2a4 size: 46 921 186 bytesAudit reports are in
reports/. Verdict: no backdoor in the upstream jar; the anti-audit Greek-omicron homoglyph is hostile to inspection but not malicious; the privacy footprint (per-server UUID reporting + remote kill switch) is what this build neutralizes.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
- Periodic auto-fetch of new translations (mod still reads the cached