• v6.0.5-unlock eba340e460

    Axiom 6.0.5 — full unlock (auto)
    All checks were successful
    build-patched-axiom / build (push) Successful in 40s
    Stable

    exo released this 2026-09-04 06:03:18 +00:00 | 5 commits to main since this release

    Automatic build of Axiom 6.0.5 (Modrinth o59cWLPI) - full unlock + fully offline patches.

    Drop Axiom-6.0.5-for-MC26.2-Ekaxiom.jar into ~/.minecraft/mods/ in place of the original Axiom jar. See README.md for what the patch does and reports/PHASE7-license-mechanics.md for why it's safe.

    upstream sha512  b7983617669a73739ea21486d8ea232980e10b6692b02911a873d64ab37cb4ffb0a58c27e35a31a68f65883c689a787f5f57b0cb2d29d325ed7cfc8351a0e3bc
    patched  sha256  312a8bdab9f98c4b2a2d10a83ac663ddebddc5ffa17e330adb2acd425b0cf74b
    patched  size    47074621 bytes
    

    Built 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
  • v6.0.3-unlock eba340e460

    Axiom 6.0.3 — full unlock (auto)
    All checks were successful
    build-patched-axiom / build (push) Successful in 40s
    Stable

    exo released this 2026-09-03 06:01:29 +00:00 | 5 commits to main since this release

    Automatic build of Axiom 6.0.3 (Modrinth SkHtNK2i) - full unlock + fully offline patches.

    Drop Axiom-6.0.3-for-MC26.2-Ekaxiom.jar into ~/.minecraft/mods/ in place of the original Axiom jar. See README.md for what the patch does and reports/PHASE7-license-mechanics.md for why it's safe.

    upstream sha512  1150833b4aa122c6fad62a671d8599ec749acc7edd548da1b0d6efa846b18ef17e38656aa1a41ac1ab15bc0ba40c917a293fe7216142e0f811c55760b297b55b
    patched  sha256  e1fc7e5e8ce20333797920c5817122513bc9f5a7e8ce23cbfd4fef83257e7784
    patched  size    47074205 bytes
    

    Built 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
  • v6.0.1-unlock eba340e460

    Axiom 6.0.1 — full unlock (auto)
    All checks were successful
    build-patched-axiom / build (push) Successful in 40s
    Stable

    exo released this 2026-09-01 06:01:53 +00:00 | 5 commits to main since this release

    Automatic build of Axiom 6.0.1 (Modrinth oxE9J6s9) - full unlock + fully offline patches.

    Drop Axiom-6.0.1-for-MC26.2-Ekaxiom.jar into ~/.minecraft/mods/ in place of the original Axiom jar. See README.md for what the patch does and reports/PHASE7-license-mechanics.md for why it's safe.

    upstream sha512  e48c9b6b0bca42b83679a8bec25488163c31a5dd56f117ab0db7998e7d37fa7e2e778cfbc68fc542e813604e4091b6a0348ae7d65ba0776ddb48fd6a028f602a
    patched  sha256  fe8b874a29ddc17f6828645c969eff659b6af165b190f4b119875dd6630f9451
    patched  size    47074667 bytes
    

    Built 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
  • v6.0.0-unlock eba340e460

    Axiom 6.0.0 — full unlock
    All checks were successful
    build-patched-axiom / build (push) Successful in 40s
    Pre-release

    admin_ekaii released this 2026-08-26 15:38:28 +00:00 | 5 commits to main since this release

    Manual 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.jar into your mods folder.

    upstream sha512  2af708142fcf17f19ed30134bea4f9748f8b3a0373c0f5339734694ebafdcf9d90c6a5eafb678c4798ad42aff14d12efb4ac5b2c9acb811a6dd41ac50a3f7bad
    patched  sha256  dbb89d70740c9e9e11c5f8396f07b8eff1e7d13d9a63423075cfe1c68c9fc78f
    patched  size    47040053 bytes
    
    Downloads
  • v5.5.0-unlock eba340e460

    Axiom 5.5.0 — full unlock (MC 26.2)
    All checks were successful
    build-patched-axiom / build (push) Successful in 40s
    Stable

    admin_ekaii released this 2026-08-11 10:12:38 +00:00 | 5 commits to main since this release

    Automatic-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.jar into ~/.minecraft/mods/ in place of the original Axiom jar.

    upstream sha512  fc6681cfe613a1d97346dacbe71b8a6df770cb86fc0424ee9f4abcb4eedc23a3754d7def1d36995f782e167bb29d15a31a99a35c662fc14278d020eba272b530
    patched  sha256  a34042a64b9722925ac4e7b79ee55314415033883ea24f170c0c6f2d877e1559
    patched  size    46989356 bytes
    
    Downloads
  • v5.4.1-unlock3 a49e2166a0

    v5.4.1-unlock3
    All checks were successful
    build-patched-axiom / build (push) Successful in 25s
    Stable

    admin_ekaii released this 2026-05-23 17:00:41 +00:00 | 7 commits to main since this release

    Adds 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
  • v5.4.1-unlock2 a2dbba0221

    Ekaxiom 5.4.1 — full unlock + rebrand
    All checks were successful
    build-patched-axiom / build (push) Successful in 25s
    Stable

    admin_ekaii released this 2026-05-03 19:45:31 +00:00 | 9 commits to main since this release

    Axiom 5.4.1, fully unlocked + offline + rebranded as Ekaxiom.

    Drop Axiom-5.4.1-Ekaxiom.jar into ~/.minecraft/mods/ (replacing the original Axiom jar). It still loads as Fabric mod id axiom so 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 display
      • assets/axiom/lang/en_us.json — every value matching \bAxiom\b rewritten ("Axiom Configuration" → "Ekaxiom Configuration", gamerule labels (Axiom) Do Block Drops → (Ekaxiom) Do Block Drops, etc.)
      • Hardcoded English strings inside com/moulberry/**.class files — chat messages ([Axiom] → [Ekaxiom]), startup tips, AlertScreen titles, "Axiom Renderer", etc.
    • Internal identifiers (Fabric id="axiom", package com.moulberry.axiom, mixin namespace, every class/field/method reference) are left untouched so the mod still loads and the protocol still matches the upstream AxiomPaperPlugin.

    Carries over from -unlock1

    • Master switch Authorization.hasCommercialLicense() = true — every gated feature unlocked.
    • getMeta / checkCommercial / checkServer / LocalizationLoader.fetchUpdateCount neutralized so zero packets reach axiom.moulberry.com.
    • Latin + Greek-omicron Authorization twins both patched.

    Reproducibility

    upstream sha512  5e923c7e19d537434...dfbbf3f8
    patched sha256   16325173b9e7bbc1a76c9a3ad0a827723a85c48d12eb53b4cff250826068876f
    patched size     46 921 686 bytes
    

    Built 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.yml workflow will tag and release v<axiom-version>-unlock automatically when Moulberry ships a new Fabric release on Modrinth — see README for the gate logic and the strict completeness check.

    Downloads
  • v5.4.1-unlock1 534203c9ea

    Axiom 5.4.1 — full unlock, fully offline
    All checks were successful
    build-patched-axiom / build (push) Successful in 25s
    Stable

    admin_ekaii released this 2026-05-03 19:17:16 +00:00 | 13 commits to main since this release

    Drop-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 axiom v5.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 unlocked
    Authorization.checkCommercial(UUID) returns true + sets static field; never contacts the auth server
    Authorization.checkServer(host, ip, UUID) returns COMMERCIAL + sets static field; never contacts the auth server
    Authorization.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.com from 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.md for 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.zip if 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 bytes
    

    Audit 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