About the project

Distributed research, transparent rules.

OpenPuzzle coordinates public Bitcoin Puzzle search ranges without taking custody of discoveries or ranking participants by hardware.

Why OpenPuzzle exists

The Bitcoin Puzzle transactions created a public sequence of deliberately constrained private-key search challenges. Many independent researchers can explore those spaces, but uncoordinated searching repeats work. A GPU may spend an hour on a range that another participant already completed, while large areas receive no attention at all. OpenPuzzle exists to reduce that duplication through a small, auditable coordination protocol.

The website maintains the public range ledger. The open-source client asks for work, runs a locally configured engine and reports non-sensitive progress. The website does not perform the cryptographic search and the client does not contain the private server or database implementation. Keeping those responsibilities separate makes the trust boundary easier to understand.

What a participant contributes

A participant contributes computation for a specific hexadecimal interval. OpenPuzzle records the assignment identifier, anonymous installation UUID, progress checkpoint, measured speed and final status. It does not require a name, email address or user account. Hardware performance can change the amount of work sized for a target duration, but it never gives a participant priority over another participant.

Local control is the core security rule

CUDA, OpenCL and CPU engines execute on the participant's computer. If an engine reports a matching private key, the client stops and preserves the result locally. OpenPuzzle places a protected export and a visible notice under the user's home directory so the discovery is difficult to overlook. The private key and raw engine output are not uploaded.

Open source client

The Linux client, release notes and source code are public on GitHub. The packaged client includes audited engine binaries for CUDA, OpenCL and CPU execution, local self-tests, a wider GPU benchmark matrix and actionable error codes. Anyone can inspect how a range is launched, how progress is calculated and which data is sent to the server.

Current release: OpenPuzzle 1.0.53

Vanity now uses blocking CUDA synchronization to release host CPU while waiting for GPU work. The exact candidate passed known-address tests on five RTX 3080 cards and a 30-second simultaneous local measurement. Search kernels, saved profiles, one-hour ranges and common controls are preserved.

Real tests verified exact coverage, the known address and compressed WIF. The server and scheduling policy are unchanged. Other compiled GPU families still need hardware validation.

View OpenPuzzle 1.0.53 →
Windows public test — experimental

A separate Windows 10/11 x64 prerelease is available, with CPU/CUDA/OpenCL, four interface languages and NVIDIA power/fan controls. Graphical Setup 0.1.5 includes first-profile creation and automatic CUDA/OpenCL benchmarks, with Desktop and Start Menu icons. Normal startup opens only the interface. GPU drivers and a compatible runtime must be installed. The full CUDA Toolkit or AMD SDK is not required to use the prebuilt package. Linux 1.0.53 remains stable.

Download Windows installer → Windows prerequisites and installation → Read the Windows test release notes →