Bitcoin Development

How Bitcoin Core Releases Work

A Bitcoin Core release is the result of branch management, review, testing, release candidates, tagged source, reproducible-build work, checksums, and multiple attestations. Each artifact supplies limited evidence. A software release does not by itself activate consensus rules, prove source correctness, or require every user to upgrade.

  • Bitcoin Core
  • Deep
  • Release Process Explainer
  • 17 to 20 minutes
  • Reviewed 2026-07-25

Preview only. Publication records and confirmed URLs do not exist; all navigation remains inactive.

Bitcoin Core releases turn a changing source repository into identifiable source and binary artifacts. The process reduces ambiguity: users can name a version, reviewers can inspect a fixed tree, builders can reproduce outputs, and maintainers can issue targeted updates for supported release lines.

It does not eliminate trust or risk. A signed Git tag attests that a particular key signed a tag object pointing to a source commit. A checksum commits to file bytes through a digest. A signature over a checksum file attests that a key signed that checksum statement. Reproducible builds can show that multiple builders obtained matching output from specified source and build inputs. None of those alone proves the source is correct, the build environment is harmless, a signer is trustworthy, or a userโ€™s machine is secure.

This guide was reviewed July 24, 2026 against the live lifecycle and download documentation, the v31.1 release process, and Bitcoin Core 31.1 commit 9be056a8a72b624dae9623b2f7bded92c2a21c91.

Development on the integration branch

Bitcoin Core development takes place through proposed patches, review, testing, and merges on the main integration branch. The README warns that this branch is not guaranteed to be completely stable.

A merged change is therefore not automatically a release. It may be revised before branch-off, excluded from a backport, disabled by configuration, or remain dormant pending a separate activation condition.

Release work creates a fixed boundary around selected commits. Reviewers should compare the release branch and tag rather than treating the current default branch as the software users downloaded.

Proposed schedules and freezes

Major-release planning is commonly tracked in a public issue with target dates for branch-off and release candidates. Schedules can include a feature freeze, translation milestones, or other coordination points.

These are proposed project-management dates. They can move as bugs, review capacity, translations, build issues, or test results change. A schedule issue is not a protocol commitment.

Feature freeze limits the kinds of new changes accepted while stabilization is underway. Translation freeze gives translators a stable text set. Neither means testing stops; release-candidate work is specifically for finding and correcting release blockers.

Release branches

Before a major release, the project creates a release branch. The integration branch can continue toward future development while the release branch receives selected stabilization, documentation, translation, and fix commits.

A maintenance release is normally made from the relevant supported release line. Backports should be narrower than importing the entire current development branch. The older the supported line, the higher the threshold for accepting changes because every backport introduces review and regression risk.

The lifecycle page reviewed July 24, 2026 says the latest three major versions are maintained. It lists 31.x, 30.x, and 29.x in the maintenance window and 28.x as end of life after the 31.0 release.

Release candidates

A release candidate, marked rc1, rc2, and so on, is a build proposed for wider testing before final release. A later candidate can include fixes discovered while testing an earlier candidate.

Release candidates should not be described as final merely because binaries exist. Their purpose is to test the near-final source, packaging, migration, wallet behavior, platform support, interfaces, and operational edge cases.

Testing includes automated suites, continuous integration, manual quality assurance, platform-specific checks, upgrade scenarios, and review of release notes. The amount and type of evidence varies by change.

Tagging and release notes

The release process uses tooling to perform consistency checks and create a signed Git tag for a release candidate or final release. The tag fixes the source tree at a named version.

A signed tag provides evidence that the holder of a particular key signed that Git object. A verifier still needs an independently obtained expectation for the key and must inspect what the tag points to. The signature does not prove that every line was reviewed or that the source has no vulnerability.

Release notes describe user-visible changes, compatibility, upgrade steps, known issues, and credits. They are an important map, not a substitute for source and tests. A missing note can hide a meaningful change; an imprecise note can overstate compatibility. Critical operators may need to inspect the diff and linked pull requests.

Major and maintenance releases

Bitcoin Core uses major versions such as 31.0 and maintenance versions such as 31.1. The lifecycle page says the project aims for a major release about every six to seven months and provides maintenance releases for bug and security fixes.

The word โ€œmajorโ€ is a project version category, not a claim that consensus changed. A major release can contain no consensus activation. The lifecycle document also explains that consensus-rule proposals are handled differently from ordinary semantic versioning and may be shipped in maintenance releases to produce smaller reviewable changesets.

Installing software that contains code for a consensus proposal does not necessarily activate it. Activation can depend on deployment parameters, network signaling, heights, times, or other separately specified conditions. A release note and deployment state must both be checked.

Supported branches and end of life

The maintenance window tells users which release lines generally receive fixes. End of life means a branch does not generally receive security fixes; it does not make the software stop running at a particular block.

Operators should compare their exact version with advisories and supported branches. โ€œI run version 30โ€ is incomplete because a later 30.x maintenance release may contain fixes absent from 30.0.

Upgrade urgency is risk-specific. A remotely exploitable validation defect differs from a wallet migration issue or an interface bug that affects only a disabled option. The advisory, release notes, configuration, and operating environment should determine the response.

Guix and reproducible builds

Bitcoin Coreโ€™s release process uses Guix-based tooling for reproducible builds. Builders check out the tagged source, use specified inputs, build outputs, and publish signed attestations of the checksums they obtained.

A reproducible build means independent builders using the specified process can produce byte-identical outputs for the covered artifact. Matching output reduces the risk that a distributor quietly substituted different code after source review.

It does not prove the source is secure or correct. Multiple builders can reproducibly build the same bug. They can also share a compromised dependency definition or overlooked toolchain weakness. Reproducibility supplies provenance evidence, not a formal proof of safety.

Checksums and multiple signatures

The official download page provides a SHA256SUMS file and a SHA256SUMS.asc collection of signatures.

A locally calculated checksum matching SHA256SUMS shows that the downloaded bytes match a listed digest. It does not identify who created the digest.

A valid signature on the checksum file shows that a particular key attested to those digests. Trust then depends on whether the verifier expected and trusts that key. Multiple independent signatures let a user compare attestations instead of relying on one key.

The release process describes combining attestations after multiple builders obtain matching results. This distributes evidence, but users still need to verify fingerprints through channels they consider independent.

Code signing is different

Windows and macOS platforms can use operating-system code signatures. Bitcoin Coreโ€™s release process handles detached platform signatures and combines them with reproducibly built unsigned artifacts.

Platform code signing can help an operating system identify the publisher key and detect changes to a signed package. It is not the same as a Git tag signature, a PGP signature over checksums, or a Guix build attestation.

A code-signed binary can still contain a bug. A valid signature can be created by a compromised key. A platform trust store can make a decision the user has not independently reviewed. Each signature should be described by what object was signed and which trust path is used.

Official distribution locations

The Bitcoin Core download page and versioned directory on bitcoincore.org are the projectโ€™s stated binary distribution locations. GitHub is used for source, tags, issues, and release metadata, but project release pages direct binary users to the official deterministic, signed downloads.

A file attached to a GitHub release is not automatically preferred or verified. Users should follow the current official verification instructions, not download a similarly named binary from an issue, fork, search result, or third-party mirror.

A torrent can distribute the same bytes, but the transport source does not replace checksum and signature verification.

Security fixes and disclosure timing

Security vulnerabilities can require coordinated fixes and delayed disclosure. The security policy defines private reporting paths, while public advisories identify affected versions, severity context, and fixed releases after disclosure.

Delay can reduce the time attackers have to exploit a flaw before users can upgrade. It also means public issue history is not always complete at release time.

A release containing a security fix may initially use limited language. Later disclosure can provide more detail. Researchers should date the evidence and avoid concluding that absence of a public issue means no security work occurred.

Upgrade and downgrade considerations

Release notes provide version-specific upgrade instructions and compatibility warnings. A typical upgrade requires shutting the old process down cleanly before starting the new binary.

Databases, chainstate formats, indexes, and wallets may be migrated. A successful upgrade does not guarantee that an immediate downgrade is safe. Older software may not understand newer data, and a rollback can require reindexing, restoring a backup, or recreating an index.

Wallet migration deserves additional caution because key and descriptor data may be changed. Operators should read the release notes for both directions, back up using documented procedures, and test operational runbooks before a high-value deployment.

Pruning and optional indexes can affect recovery time. Rebuilding from retained local data may not be possible if the needed block files were pruned.

A release is not consensus activation

A software release and a Bitcoin consensus activation are different events.

A release publishes code. Activation determines when a rule is enforced on a network. A release may contain no consensus changes. It may contain inactive code for a proposal. Multiple maintained branches may receive the same consensus-related patch. Alternative implementations may deploy compatible rules through different code.

Node operators are not automatically updated by the project. They choose whether and when to install. Miners and businesses make their own decisions. A maintainer cannot create network consensus by tagging a release.

For every claim that a release โ€œchanges Bitcoin,โ€ identify the exact rule, deployment method, activation state, implementation versions, and observed network behavior.

A release-evidence ladder

Evaluate artifacts from narrowest to broadest:

  1. Release schedule: intended timing; not final code.
  2. Release branch: stabilization target; can still change.
  3. Release candidate: testable near-final artifact; not final.
  4. Signed tag: key attestation to a source reference.
  5. Release notes: human-readable change map.
  6. Reproducible-build attestations: evidence of matching outputs from specified source and inputs.
  7. Checksums: identity of downloaded bytes.
  8. Checksum signatures: signer attestations to those identities.
  9. Platform code signatures: operating-system publisher and integrity evidence.
  10. Independent testing and review: behavioral evidence for selected risks.
  11. Deployment observation: evidence of what users and the network actually run.

No single rung proves the whole system safe. Together they make the release more inspectable.

Key Terms

Integration branch
The main branch where reviewed development changes are combined.
Feature freeze
A stabilization period limiting new feature changes.
Release branch
A branch maintained for one software release line.
Release candidate
A near-final build published for testing.
Stable tag
A fixed Git reference identifying final release source.
Maintenance release
A release carrying selected fixes for a supported major line.
End of life
A release line no longer generally maintained.
Reproducible build
A process intended to produce byte-identical outputs from specified source and inputs.
Build attestation
A signed statement about output checksums produced by a builder.
Checksum
A digest used to identify file bytes.
Code signature
A platform or cryptographic signature over a software object.
Consensus activation
The point at which a network begins enforcing a new consensus rule.

Sources

Bitcoin Core Release Process at v31.1

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/doc/release-process.md
  • supports: Branch preparation, release candidates, signed tags, release notes, Guix builds, attestations, detached code signatures, and final publication.

Bitcoin Core Software Life Cycle

  • author or publisher: Bitcoin Core project
  • url: https://bitcoincore.org/en/lifecycle/
  • supports: Major and maintenance versioning, six-to-seven-month aim, latest-three-major maintenance window, EOL table, protocol-version distinctions, and consensus release treatment.

Bitcoin Core Download and Verification Page

  • author or publisher: Bitcoin Core project
  • url: https://bitcoincore.org/en/download/
  • supports: Current version, official downloads, checksums, multiple signatures, key trust, and reproducible-build explanation.

Bitcoin Core 31.1 Release Directory

  • author or publisher: Bitcoin Core project
  • url: https://bitcoincore.org/bin/bitcoin-core-31.1/
  • supports: Versioned release artifacts, `SHA256SUMS`, `SHA256SUMS.asc`, binaries, and release-candidate directory.

Bitcoin Core v31.1 Tag Commit

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/commit/9be056a8a72b624dae9623b2f7bded92c2a21c91
  • supports: Exact final 31.1 source commit reviewed.

Bitcoin Core v31.1 Release Notes

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/doc/release-notes.md
  • supports: Version-specific changes, compatibility, upgrade guidance, and release identity.

Bitcoin Core v31.1 README

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/README.md
  • supports: Development-branch instability warning, stable tags, tests, and release-source boundaries.

Contributing to Bitcoin Core at v31.1

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/CONTRIBUTING.md
  • supports: Pull-request review, test expectations, merge workflow, and signed deterministic merge history.

Bitcoin Core Security Policy

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/SECURITY.md
  • supports: Supported versions and private vulnerability reporting.

Bitcoin Core Security Advisories

  • author or publisher: Bitcoin Core project
  • url: https://bitcoincore.org/en/security-advisories/
  • supports: Public disclosure and affected-version evidence.

Bitcoin Core Guix Build Documentation

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/contrib/guix/README.md
  • supports: Reproducible build and attestation workflow.

Bitcoin Core Guix Signatures Repository

  • author or publisher: Bitcoin Core builders
  • url: https://github.com/bitcoin-core/guix.sigs
  • supports: Independently published build-output attestations.

Bitcoin Core Detached Signatures Repository

  • author or publisher: Bitcoin Core release contributors
  • url: https://github.com/bitcoin-core/bitcoin-detached-sigs
  • supports: Detached platform code-signing material.

Bitcoin Core Maintainer Tools

  • author or publisher: Bitcoin Core maintainers
  • url: https://github.com/bitcoin-core/bitcoin-maintainer-tools
  • supports: Release tagging and consistency tooling referenced by the release process.

Bitcoin Core 31.0 Release Schedule Issue

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/issues/33607
  • supports: A concrete example of proposed translation milestones, feature freeze, branch-off, release-candidate, and final timing.

Bitcoin Core Releases Index

  • author or publisher: Bitcoin Core project
  • url: https://bitcoincore.org/en/releases/
  • supports: Major and maintenance release history.

Bitcoin Core 31.0 Release Notes

  • author or publisher: Bitcoin Core project
  • url: https://bitcoincore.org/en/releases/31.0/
  • supports: Upgrade and data-migration cautions for a major release.

Bitcoin Core 31.1 Release Announcement

  • author or publisher: Bitcoin Core project
  • url: https://bitcoincore.org/en/2026/07/08/release-31.1/
  • supports: Dated final release announcement.

Bitcoin Core JSON-RPC Interface

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/doc/JSON-RPC-interface.md
  • supports: Example of software interface behavior versioned separately from consensus.

Bitcoin Core BIP Status Documentation

  • author or publisher: Bitcoin Core contributors
  • url: https://github.com/bitcoin/bitcoin/blob/v31.1/doc/bips.md
  • supports: Release-specific documentation of implemented and deployed BIP behavior.