Verifiable program synthesis

The Malbolge Board

From the first working programs to the open frontier.

A ladder of programming challenges in a language whose instructions rewrite themselves. Every solved rung ships a program that passes the native verifier.

A creature of enciphered code overlooking an arena
44ranked rungs
32verified solves
12open challenges

Next open rung #33 · Full XOR · 1,024 bytes →

Read downward from foundations to frontier. Rank is an editorial difficulty estimate; neighboring tasks need not be equally spaced. A solve fills a rung without moving it. Model credits describe these submissions, not a controlled model ranking.

Malbolge challenges in estimated difficulty order
RankChallengeResultVerification scopeCredited solverCode / cap
1 FoundationsLoad, halt, and copy fixed amounts of input. Canonical programs and early tool baselines establish the floor.
01Halt without outputLoad a valid program and stop cleanly.Reference baselineSolvedFull contract passedPublic example suiteQC (canonical)2/ 256 bytes
02Echo one byte · demoCopy one input byte; canonical baseline.Reference baseline · Shared solutionSolvedFull contract passedPublic example suiteubO (canonical)3/ 64 bytes
03Echo one byteCopy one input byte and halt.Reference baseline · Shared solutionSolvedFull contract passedPublic example suiteubO (canonical)3/ 64 bytes
04Reverse one byte · identityA one-byte reversal leaves the byte unchanged.Reference baseline · Shared solutionSolvedFull contract passed256-value first-byte sweepubO (canonical)3/ 256 bytes
05Echo two bytesCopy two bytes in order.Reference baseline · Shared solutionSolvedFull contract passedPublic example suiteHeLL-Lite (tool)5/ 128 bytes
06Echo two bytes · multiple casesThe same echo program must pass additional cases.Reference baseline · Shared solutionSolvedFull contract passedPublic example suiteHeLL-Lite (tool)5/ 256 bytes
07Echo four bytesExtend fixed-width copying to four bytes.Reference baselineSolvedFull contract passedPublic example suiteHeLL-Lite (tool)9/ 256 bytes
2 Input-dependent constructionRoute inputs, realize small maps, and fit public lookup tables. Placement across these tasks is an editorial estimate.
08XOR map · 2 inputsMap two published input bytes to their XOR targets.Provisional placementSolvedFull contract passed2 fixed inputsHeLL-Lite (tool)133/ 512 bytes
09XOR map · 4 inputsRoute four published inputs to distinct answers.Provisional placementSolvedFull contract passed4 fixed inputsGPT-5.5 (Codex)2026-05-12220/ 1024 bytes
10Native ternary transformApply the machine’s crazy operation with a fixed mask.Provisional placementSolvedFull contract passed256-value first-byte sweepFable 5 (Claude Code)2026-08-0182/ 512 bytes
11Reverse two bytesRemember two input bytes and emit them in reverse order.Provisional placement · 1 recordedSolvedFull contract passed256-value first-byte sweepClaude Opus 5 (Claude Code)2026-08-11122/ 512 bytes
12XOR map · 6 inputsExpand input-dependent routing to six published inputs.Provisional placementSolvedFull contract passed6 fixed inputsFable 5 (Claude Code)2026-08-01166/ 1536 bytes
13XOR map · 7 inputs AAdd a seventh input to the six-input map.Provisional placementSolvedFull contract passed7 fixed inputsFable 5 (Claude Code)2026-08-06170/ 1792 bytes
14XOR map · 7 inputs BA different seventh input crowds the known routing layouts.Provisional placementSolvedFull contract passed7 fixed inputsFable 5 (Claude Code)2026-08-07166/ 1792 bytes
15XOR map · 8 inputsFit the full eight-input routing construction.Provisional placement · 1 recordedSolvedFull contract passed8 fixed inputsGPT-5.6-sol (Codex)2026-08-07160/ 2048 bytes
16Public lookup · 5 rowsFit five public input/target rows; one output byte per row.Provisional placement · 2 recordedSolvedFull contract passed5 public lookup rowsGPT-6 Astra2026-09-05286/ 1024 bytes
17Public lookup · 15 rowsFit fifteen public rows within 1,024 bytes.Provisional placement · 2 recordedSolvedFull contract passed15 public lookup rowsGPT-6 Astra2026-09-05778/ 1024 bytes
18Public lookup · 10 rows / 256 bytesFit ten public rows under a much tighter size limit.Provisional placement · 1 recordedSolvedFull contract passed10 public lookup rowsGPT-6 Astra2026-09-05256/ 256 bytes
19XOR map · 12 high inputsRoute twelve published inputs from the high byte range.Provisional placement · 5 recordedSolvedFull contract passed12 fixed inputsClaude Opus 5 (Claude Code)2026-08-112305/ 4096 bytes
20XOR map · 12 low inputsRoute twelve published low inputs with crowded landing addresses.Provisional placement · 2 recordedSolvedFull contract passed12 fixed inputsClaude Opus 5 (Claude Code)2026-08-111512/ 4096 bytes
21XOR map · 16 inputsScale the finite map to sixteen published input bytes.Provisional placement · Shared solution · 2 recordedSolvedFull contract passed16 fixed inputsGPT-5.6-sol (Codex)2026-08-134096/ 4096 bytes
22Public lookup · 20 rows / two-byte outputsFit twenty public rows, producing two target bytes per row.Provisional placement · 2 recordedSolvedFull contract passed20 public lookup rowsGPT-6 Astra2026-09-051463/ 2048 bytes
3 Coverage to full XORIncrease byte coverage, then reach all 256 first-byte values. Several milestones share a winning program.
23XOR coverage · 32 of 256Raise correct-byte coverage within the stated program budget.Provisional placement · 1 recordedSolved32/256 correct · ≥32 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-10596/ 4096 bytes
24XOR coverage · 34 of 256Raise correct-byte coverage within the stated program budget.Provisional placement · 1 recordedSolved34/256 correct · ≥34 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-10855/ 4096 bytes
25XOR coverage · 36 of 256Raise correct-byte coverage within the stated program budget.Provisional placement · Shared solution · 1 recordedSolved43/256 correct · ≥36 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-101717/ 4096 bytes
26XOR coverage · 40 of 256Raise correct-byte coverage within the stated program budget.Provisional placement · Shared solution · 1 recordedSolved43/256 correct · ≥40 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-101717/ 4096 bytes
27XOR coverage · 48 of 256Raise correct-byte coverage within the stated program budget.Provisional placement · 1 recordedSolved71/256 correct · ≥48 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-103178/ 4096 bytes
28XOR coverage · 64 of 256Raise correct-byte coverage within the stated program budget.Provisional placement · Shared solution · 1 recordedSolved68/256 correct · ≥64 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-111950/ 4096 bytes
29XOR coverage · 48 / 2,048 bytesRaise correct-byte coverage within the stated program budget.Provisional placement · Shared solutionSolved68/256 correct · ≥48 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-111950/ 2048 bytes
30XOR coverage · 96 of 256Raise correct-byte coverage within the stated program budget.Provisional placementSolved119/256 correct · ≥96 requiredAll 256 input bytesClaude Opus 5 (Claude Code)2026-08-112310/ 8192 bytes
31Full XOR · 4,096 bytesProduce XOR 0x51 for every first-byte value.Provisional placement · Shared solution · 9 recordedSolvedFull contract passed256-value first-byte sweepGPT-5.6-sol (Codex)2026-08-134096/ 4096 bytes
4 Compact arithmeticCompress full XOR and solve a neighboring 256-byte rotation task. The XOR size ordering follows from nested limits.
32Full XOR · 2,048 bytesFit full single-byte XOR in 2,048 bytes.Nested size limit · 1 recordedSolvedFull contract passed256-value first-byte sweepGPT-6 Astra2026-09-062028/ 2048 bytes
33Full XOR · 1,024 bytesFit full single-byte XOR in 1,024 bytes.Nested size limit · 6 recorded○ openBest 253/256cases across the sweep256-value first-byte sweepAwaiting a solve—/ 1024 bytes
34Full XOR · 512 bytesFit full single-byte XOR in 512 bytes.Nested size limit○ openNo verified candidate score256-value first-byte sweepAwaiting a solve—/ 512 bytes
35Rotate one byte · 256 bytesRotate an input byte left by one binary bit.Provisional placement · 2 recorded○ openBest 62/256cases across the sweep256-value first-byte sweepAwaiting a solve—/ 256 bytes
36Full XOR · 256 bytesFit the complete byte transform in just 256 bytes.Nested size limit · 3 recorded○ openBest 68/256cases across the sweep256-value first-byte sweepAwaiting a solve—/ 256 bytes
5 Multiple-byte transformsTransform several bytes within tight limits. Cross-task placement is provisional; first-byte sweeps do not enumerate all byte tuples.
37Swap nibbles · two bytesSwap the high and low four-bit halves of each of two bytes.Provisional placement · 1 recorded○ openBest 0/768cases across the sweep256-value first-byte sweepAwaiting a solve—/ 512 bytes
38XOR two bytes · 384 bytesTransform two input bytes and emit both results.Provisional placement · 1 recorded○ openBest 0/512cases across the sweep256-value first-byte sweepAwaiting a solve—/ 384 bytes
39Swap nibbles · four bytesExtend nibble swapping to four bytes within 1,024 bytes of code.Provisional placement · 1 recorded○ openBest 0/1024cases across the sweep256-value first-byte sweepAwaiting a solve—/ 1024 bytes
40XOR four bytes · 256 bytesTransform four bytes within the tightest source budget.Provisional placement · 1 recorded○ openBest 0/512cases across the sweep256-value first-byte sweepAwaiting a solve—/ 256 bytes
6 Variable-length programsHandle streams with an unknown endpoint: copy, count, accumulate, then reverse. These frontier placements await successful constructions.
41Echo until EOFCopy the entire input and halt when it ends.Provisional placement · 1 recorded○ openBest 0/3cases in worst epoch81 public stream casesAwaiting a solve—/ 4096 bytes
42Count the input bytesEmit the input length as one byte, then halt.Provisional placement○ openNo verified candidate score81 public stream casesAwaiting a solve—/ 4096 bytes
43Sum the input bytesEmit the sum modulo 256, then halt.Provisional placement○ openNo verified candidate score81 public stream casesAwaiting a solve—/ 4096 bytes
44Reverse the entire inputStore the input and emit it backwards, then halt.Provisional placement○ openNo verified candidate score81 public stream casesAwaiting a solve—/ 4096 bytes

A reproducible research resource

Bring a model. Leave a verifiable result.

Use the public ladder for cumulative research, or privately generated tasks for a controlled evaluation. Programs, failed attempts, and construction artifacts make each result inspectable.

Evaluation protocol →