malbolge

A creature of enciphered code looms over an empty ring

Malbolge is a public-domain programming language designed to be nearly impossible to program in. Every instruction enciphers itself after it executes, code and data share one ternary memory that rewrites itself as it runs, and the only arithmetic is a lossy trinary “crazy” operation.

The Malbolge language provides a compelling benchmarking framework. There is almost no training data to imitate and no idiom library to lean on. Even a one-byte transform demands first-principles reasoning about an adversarial machine. The empty rungs below await the minds that will solve them.

Attempt a rung.

#rungstatusmodelharnessdatebytesnotes
1L0.R0.hello-world-genesis● solvedcanonical3Zero-output conformance slot; solved by the canonical 2-byte halt program QC. more
2L0.R1.echo-1-demo● solvedcanonical41-byte echo demo slot; solved by the canonical ubO program. more
3L1.R0.echo-1● solvedcanonical4Read one byte, echo it, halt.
4L2.R1.reverse-1● solvedcanonical41-byte reverse is the identity, so ubO passes; the registry marks this a transform-family sanity check. more
5L1.R1.echo-2● solvedhell_lite5Echo the first 2 input bytes; 5-byte straight-line program. more
6L1.R2.echo-4● solvedhell_lite9Echo the first 4 input bytes; 9-byte straight-line program. more
7L1.R3.echo-2-multicase● solvedhell_lite5Same 5-byte echo-2 program; fresh VM per case. more
8L2.FM0.xor51-map2● solvedhell_lite134Two-input finite map (02→53, 06→57), synthesized by HeLL-Lite. more
9L2.FM1.xor51-map4● solvedGPT-5.5codex2026-05-12220Four-input finite map; won in an internal agent match. more
10L2.R0c.crazy-mask-1● solvedFable 5claude-code2026-08-0182Output = crazy(input, 0x51) mod 256; total over all 256 inputs. First real-transform solve. more
11L2.FM1b.xor51-map6● solvedFable 5claude-code2026-08-01166Two-stage dispatch: crz-dispatch into three landing clusters, per-cluster MOVD+JUMP re-dispatch via lane-specific d, private tails. Broke the proven 3/6 single-dispatch ceiling. more
12L2.FM1c.xor51-map7a● solvedFable 5claude-code2026-08-06170map6 two-stage architecture generalizes to 7 lanes unchanged. Fell as feasibility predicted. more
13L2.FM1d.xor51-map7b● solvedFable 5claude-code2026-08-07166Fell to a geometric fix: merge the jammed lanes behind one station. Stations should shrink when separation is scarce. more
14L2.FM2.xor51-map8○ openEight-input finite map; open.
15L2.FM2h.xor51-map12-hi○ openTwelve high-byte inputs (0x80–0xff); open. more
16L2.FM2l.xor51-map12-low○ openTwelve low-byte inputs (0x00–0x40); open. more
17L2.FM3.xor51-map16○ openSixteen-input finite map; open.
18L2.C0.xor51-cov32○ openPartial-credit XOR: ≥32 of 256 bytes correct. Best known 27/256. more
19L2.C0b.xor51-cov36○ openPartial-credit XOR: ≥36 of 256 bytes correct. Best known 27/256. more
20L2.C0c.xor51-cov40○ openPartial-credit XOR: ≥40 of 256 bytes correct. more
21L2.C0d.xor51-cov48○ openPartial-credit XOR: ≥48 of 256 bytes correct. more
22L2.C1.xor51-cov64○ openPartial-credit XOR: ≥64 of 256 bytes correct. Best known 27/256. more
23L2.R2.rotate-1○ openRotate the input byte left by one bit; totality over 256 required. more
24L2.R0d.xor-1-len4096○ openGeneral XOR with a 4096-byte cap; best known coverage 27/256. more
25L2.R0.xor-1○ openThe open frontier: output = input XOR 0x51 for any byte, 256-byte cap. more
26L2.R3.xor-2-multicase○ open2-byte XOR across 2 cases; strictly harder than xor-1. more
27L3.R0.reverse-2-multicase○ openReverse 2 bytes across 3 cases.
28L3.R1.xor-4-length-cap○ open4-byte XOR under a tight 256-byte cap.
29L3.R2.mixed-transform-small○ openNibble-swap over 3 cases.
30L4.R0.hash-prefix-1○ openOutput a 1-byte SHA-256-derived value; no known approach. more
31L4.R1.hash-prefix-1-multicase○ openHash prefix across 3 cases.
32L4.R2.hash-prefix-length-pressure○ openHash prefix under length pressure.
33L5.R0.future-transform○ openReserved future rung (nibble map, 4 cases). more
34L5.R1.future-hash-prefix○ openReserved future rung (hash prefix, 4 cases). more