Skip to content

Releases: ShieldedLabs/zero

Zero v29

Choose a tag to compare

@github-actions github-actions released this 07 Sep 16:04

Zero release 29, built from commit 7e1b37d.

Changes

Added

  • zebra: per-check timers for transaction verification. The checks phase of
    zebra_consensus_transaction_duration_seconds was one timer around every
    script, signature and proof check and their waits on the shared batch
    verifiers, so the largest cost in block verification could not be attributed.
    zebra_consensus_transaction_check_duration_seconds{check,request} now
    records each check's wall time from first poll to completion, with check in
    script, sprout_proof, sprout_sig, sapling, orchard and state
    (mempool only); subtracting zebra_consensus_batch_duration_seconds for the
    matching verifier isolates queue wait from batch work. The checks run
    concurrently, so the kinds overlap rather than sum. A phase="prepare"
    sample covers the sighash and transaction id digests, bundle extraction and
    check construction between utxo_fetch and checks, which were previously
    untimed. (#74)

CI

  • release.yml refuses to dispatch when either node's mainnet halt (zcashd
    or zebra) is under 4 weeks past the current tip (estimated from a block
    anchor and the wall clock, no network access); MAINTENANCE.md gains the
    matching pre-release checklist. (#61)
  • z3-smoke builds only the stack images whose build context a PR touches
    and pulls the others, pinned by digest, from ghcr.io/shieldedlabs/zero-*:main:
    the newest main build that passed the smoke test, published by a new
    push-to-main run after its own green smoke. Releases, schedules, and
    dispatches still build every image. The zcashd cache-warm build is its own
    non-gating job, so smoke no longer waits ~45 minutes for it on zcashd PRs. (#64)
  • The zcashd image builds depends/ in its own cached layer, so a change under
    zcashd/src rebuilds zcashd alone (about 2 minutes at 16 vCPUs) instead of
    every dependency (about 15). The cache-warm job no longer exports its builder
    layers to the Actions cache on PR runs: that upload took 10 to 29 minutes per
    PR (a single 5.5 GB blob) and had pushed the repository past the 10 GB cache
    quota, evicting the other workflows' entries. PR runs are now a separate
    read-only job (no registry login, no packages: write, no export); pushes
    to main, schedules, dispatches, and releases still refresh the registry
    cache. (#65, #66)
  • release.yml grants its smoke gate pull-requests: read. The reusable
    z3-smoke workflow has required that scope since #64, and a called workflow
    may not request more than its caller grants, so every release dispatch since
    then failed at startup with no jobs. (b212452)
  • z3-regtest mines its golden chain with generatetoaddress on the live
    node instead of the internal miner behind stop-and-restart cycles, builds
    its binaries in parallel behind a source-tree binary cache, and runs the
    scenario groups as parallel jobs, with a push-to-main run so PR caches have
    something to hit: 64 to 83 minutes per run before, about 15 after. (#67, #68)
  • release.yml's version job uses the same checkout v7.0.1 pin as its other
    jobs, and a mislabelled checkout pin in the Copilot review workflow is
    labelled correctly; SHAs unchanged. (#62)
  • The Copilot push-review workflow gains code, security and full modes
    (code by default on pushes to main, selectable on manual runs), and
    .github/copilot-instructions.md is generated from
    .github/review-modes/*.md rather than edited by hand. (#71)

Docs

  • zebra: the end-of-support vendor note is a plain // [zero] comment above
    ESTIMATED_RELEASE_HEIGHT instead of part of its rustdoc; value and
    behaviour unchanged. (#63)

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v29.zip
  • zebra-v29.zip
  • zaino-v29.zip
  • zallet-v29.zip
  • orchard-v29.zip
  • librustzcash-v29.zip
  • lightwalletd-v29.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v29-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v28

Choose a tag to compare

@github-actions github-actions released this 02 Sep 17:00
94db842

Zero release 28, built from commit 94db842.

Changes

Fixed

  • zcashd: the mainnet end-of-service halt moves from block 3,471,448
    (~2026-09-04) to 3,527,448 (~2026-10-23), with the shutdown warning from
    block 3,511,320 (~2026-10-08). Every release from v20 through v27 embedded
    the v20 release height, so all of them halt at 3,471,448; there is no
    runtime override, only a new binary moves it. Testnet and regtest are not
    affected. (#59)
  • zebra: the mainnet end-of-support halt moves from block 3,545,960
    (~2026-11-08) to 3,564,960 (~2026-11-24), the horizon of upstream zebra
    6.3.0, with the warning from block 3,548,832 (~2026-11-10). v26 and v27
    both reported 3,545,960 because neither re-vendored zebra. Zero now carries
    the release height and re-sets it at every release. (#59)

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v28.zip
  • zebra-v28.zip
  • zaino-v28.zip
  • zallet-v28.zip
  • orchard-v28.zip
  • librustzcash-v28.zip
  • lightwalletd-v28.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v28-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v27

Choose a tag to compare

@github-actions github-actions released this 02 Sep 08:08
35da117

Zero release 27, built from commit 35da117.

Changes

Performance

  • Zebra block verification reuses transparent script verification from mempool
    admission (#45): a transaction verified on entry to the mempool skips the
    interpreter, ZIP-244 sighash, and signature checks when the block that mines
    it is verified, keyed by WtxId so an authorizing-data twin misses.
  • Zebra block-path UTXO lookups overlap up to 64-way instead of awaiting one
    state round trip per input (#46).
  • Measured together on a full-block shape of 7 transactions with 1000
    transparent inputs each, state serving lookups under 1ms of latency: 2.9 s
    to 59 ms for a block whose transactions were mempool-verified, and the
    lookup wall alone drops 2.8 s to 0.37 s cold (#49 has the full matrix).

Added

  • A worst-case transaction verification benchmark for zebra-consensus (#49),
    byte-comparable with Zakura's copy of the same benchmark so the two nodes
    can be A/B measured on identical inputs, plus Zero-only cold/warm cases for
    the 7x1000 transparent block shape with configurable state latency.
  • CI runs the zebra-consensus criterion benches on every zebra-touching
    commit and posts timings to the job summary (#48).

Subtrees

  • zallet re-vendored at v0.1.0-beta.3: upstream split the workspace into a
    zallet launcher plus per-backend crates, and our z_listunspent and sync
    patches moved onto zallet-core (#54 carried the deploy fallout: the
    z3-stack image builds the zaino backend via BACKEND=zaino, zallet.toml
    selects it and opts into the non-loopback RPC bind guard, and the smoke
    probes accept the new sync-gate answer).
  • zaino updated to upstream 0.8.0 (#37).
  • orchard tracks upstream main now that Ironwood ships in 0.15.x;
    librustzcash and lightwalletd re-vendored and pinned to recorded tags;
    zcashd build scripts fixed for arm64 macOS (native arch detection, portable
    bdb, Apple-Silicon crc32).

zero-indexer

  • The shim and hub embed a Nym mixnet driver end to end: the hub publishes
    its mixnet address and the clearnet submit path is closed, submissions are
    padded so size stops fingerprinting a migration, and both sides get
    reproducible StageX builds with attested deploys and a one-command
    deploy.sh.
  • Hardening wave from the external security review: bounded reads, queues,
    timeouts and fan-out across shim and hub, fail-closed expiries, ordered
    shutdown, publish-before-serve for queued migrations, and status endpoints
    (/nym-status) so a dead mixnet client stops reading as healthy.
  • The book renames Zeronym to zero-indexer; operator and failover runbooks
    rewritten from measured behavior.

CI

  • cargo vet supply-chain gate: every Rust dependency change must land with a
    matching audit or exemption diff under the component's supply-chain/
    directory (new stores for zaino and orchard; zebra's and zcashd's brought
    back in sync with their trees; enforced by cargo-vet.yml).
  • z3-smoke hardening (#56, #57): third-party actions pinned by commit SHA,
    packages: write scoped to the one job that pushes build cache, and
    cache-warm-only build legs can no longer redden the stack gate when a
    registry throttles a cache pull.
  • Copilot reviews commits pushed straight to main, with custom instructions;
    the zeronym test jobs actually run their suites (including mixnet-driver
    tests) and the hub reproduce gate runs on push, not only on PRs.

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v27.zip
  • zebra-v27.zip
  • zaino-v27.zip
  • zallet-v27.zip
  • orchard-v27.zip
  • librustzcash-v27.zip
  • lightwalletd-v27.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v27-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v26

Choose a tag to compare

@github-actions github-actions released this 11 Aug 18:32

Zero release 26, built from commit 3e24f3e.

Changes

Added

  • coinbase_tx_version = 5 under [mining] in zebra pins getblocktemplate to V5
    coinbase transactions. At Ironwood activation zebrad templates switched to the V6
    format, and mining-pool software that splices extranonce data into the coinbase
    broke parsing them; F2Pool works around it by running a hand-patched zebrad
    (upstream's answer, ZcashFoundation/zebra#10909, is documentation only). The pin
    gives the same result as a supported config option and stays consensus-valid.
    Unset keeps the network-upgrade default. A V5 pin with a miner address whose only
    receiver is Orchard is rejected at startup, since paying an Orchard receiver after
    NU6.3 needs the V6-only Ironwood output.

Fixed

  • Zebra now prefers the first-received chain on equal-work ties, as the protocol
    spec requires, instead of tie-breaking on the tip block hash
    (ZcashFoundation/zebra#11240, reported by F2Pool with production logs of losing
    blocks they had won by 0.4s of propagation). Siblings always tie on work in
    Zcash, so the old rule turned won propagation races into coin flips and let an
    equal-work sibling arriving arbitrarily late displace an already-adopted tip.
    Blocks are stamped with a receipt order when committed (zcashd nSequenceId
    analogue); strictly more work still always wins, and receipt order survives
    invalidate/reconsider.

CI

  • z3-smoke and z3-regtest no longer use GitHub's paths: trigger filter.
    Both now register on every pull request and decide in a 20-second Path gate
    job whether the expensive jobs run, computed from git diff against the
    merge commit's base. PR #20 (the v25 zebra security update) matched the old
    filters on 107 of its 144 changed files and GitHub still created no Actions
    check suite for it, so a 144-file consensus change merged with no stack CI
    and nothing on the PR page showing anything was missing. Each workflow also
    gained a required job that reports on every PR, pass or skip, so "the
    workflow never ran" can no longer look identical to "the workflow passed".
    The release workflow_call gate is unchanged and still runs the full stack
    unconditionally.

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v26.zip
  • zebra-v26.zip
  • zaino-v26.zip
  • zallet-v26.zip
  • orchard-v26.zip
  • librustzcash-v26.zip
  • lightwalletd-v26.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v26-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v25

Choose a tag to compare

@github-actions github-actions released this 07 Aug 23:07
fe056fc

Zero release 25, built from commit fe056fc.

Changes

Security

  • zebra: three fixes from the Zcash Foundation's upcoming security release,
    applied ahead of it as [upstream-pending] carries on top of upstream
    main (all drop on the next zebra subtree pull):
    • Blocks above the sync lookahead limit no longer score the peer that served
      them. The far-ahead hash comes from a malicious FindBlocks response that
      carries no peer attribution, so the follow-up download is answered by an
      independently chosen honest peer, and scoring it let an attacker get honest
      peers banned throughout initial block download (GHSA-qhr3-cvch-5fh2).
    • A block download answered with a canonical header and a rewritten coinbase
      height is re-requested immediately instead of being rediscovered a sync
      round later, and the serving peer is scored when a parent block Zebra
      already holds proves the claimed height wrong (GHSA-g95h-hw6g-pvgv,
      reported upstream by @zakura-security).
    • Peers that gossip consensus-invalid blocks are scored for misbehavior
      again. The inbound download cleanup downcast errors to VerifyBlockError,
      but the gossip verifier is a BlockVerifierRouter returning RouterError,
      so the downcast never matched and such peers were never banned
      (GHSA-8hh2-hrf2-cqf4).

Changed

  • zebra: subtree updated from v6.2.0 to upstream main (8e9ff3b2cb, past
    v6.2.3), the exact base of the Foundation's upcoming release. Brings the
    6.2.1 to 6.2.3 hardening releases (NU6.3 activation-window and peer
    connectivity fixes) plus unreleased work: MAX_MONEY value-pool enforcement
    (#10817), the block/mempool transaction-verifier split (#11095), singleton
    FindBlocks downloads (#11165), inbound address canonicalization (#11129),
    bans that clear the whole address book for an IP (#11173), zec.rocks default
    seeders (#11096), getdeprecationinfo (#11097), getblocksubsidy NU6-era
    metadata (#11172), indexer gRPC stream limits (#10980), and a
    getblocktemplate coinbase-cache fix (#10954). State format is unchanged
    (28); no resync needed. Binaries self-report zebrad 6.2.3 until upstream's
    release bumps the version.
  • Dropped six zebra carries that merged or were superseded upstream: #11113,
    #11050, #11053, #11061 (superseded by the narrower require-while-syncing
    rule), GHSA-2p4c-3q4q-p463 (#11054), and GHSA-8gxx-hc65-vv82 (#11052).
    Still carried: #10732 FindBlocks stall gating.

Added

  • zebra: two Prometheus metrics for diagnosing slow block acceptance.
    zebra_consensus_transaction_duration_seconds splits transaction verification
    into phase="utxo_fetch" (one state round trip per transparent input) and
    phase="checks" (scripts, signatures, proofs), each labelled
    request="block" or "mempool"; the ratio shows whether a node is bound by
    state lookups or cryptography. rpc_submitblock_inflight gauges how many
    submitted blocks are being verified at once. Needs the prometheus feature
    and a [metrics] endpoint_addr, both already set in our images.

Fixed

  • zebra: submitblock no longer discards a solved block when the miner's client
    disconnects. Verification ran on the RPC connection, so a client timeout
    cancelled it mid-flight and the block vanished with no commit and no log line.
    Verification now completes regardless of the client, the block is still gossiped
    once the client has gone, and every outcome is logged. (50e7e57, 92f499b)
  • zebra: submitblock answers duplicate-inconclusive for a block still being
    verified, instead of verifying it a second time. A miner retrying after a
    timeout would otherwise double the work on an already-slow node; duplicate
    would wrongly imply the node holds a validated copy. (46b3926)

Testing

  • Three regression tests cover the submitblock disconnect and resubmission
    paths, each checked to fail without the fixes above.
    zebra-rpc/examples/submitblock_abandon_repro.rs reproduces it on Regtest: a
    2,000-input block taking ~350ms was lost 3/3 when abandoned at 43/88/177ms,
    and commits after the fix. It also shows the block path reuses none of the
    mempool's verification work. (c9908b5, a3c60db)

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v25.zip
  • zebra-v25.zip
  • zaino-v25.zip
  • zallet-v25.zip
  • orchard-v25.zip
  • librustzcash-v25.zip
  • lightwalletd-v25.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v25-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v24

Choose a tag to compare

@github-actions github-actions released this 28 Jul 05:51
4aec301

Zero release 24, built from commit 4aec301.

Changes

Fixed

  • zebra: peers are no longer penalized for relaying transactions with the
    adjacent NU6.2 or NU6.3 consensus branch ID within 40 blocks either side of
    NU6.3 activation. Around the boundary a peer's tip can legitimately sit on
    the other side of it, and Zebra scored that as misbehavior and banned the
    peer, shedding honest peers exactly when the peer set matters most. Ironwood
    activates on Mainnet at block 3,428,143. Carried from upstream v6.2.3, which
    is an optional hardening release with no security advisories attached; taken
    for the activation-window behavior specifically. (upstream #11113, 157e96f)

Testing

  • The z3 smoke probes assert that the deployed zebrad reports the NU6.3 branch
    ID and pins activation at 3,428,143. A stale image passed every other probe
    while silently lacking both the consensus rules and the grace window above;
    the 2026-07-17 cached-layer incident shipped that exact class of mismatch.
  • New qa/log-filter-injection-test.sh covers the zebrad-log-filter fix from
    v23 with seven assertions (command substitution, backticks, metacharacters,
    backslash preservation, passthrough). Verified to fail against the pre-fix
    script. It runs as a seconds-long quick-checks job ahead of the image
    builds, since zebra-utils scripts are not in the runtime image and cannot be
    stack-probed.

CI

  • z3-smoke and z3-regtest now trigger on vendored crate sources
    (zebra/zebra-*, zebra/zebrad, zaino and zallet packages, lockfiles), not
    just Dockerfiles and deploy config. Previously a PR that changed consensus or
    wallet code but no Dockerfile ran no CI at all, which is how v21's zebra
    security carries reached the release dispatch untested and why the
    release-time workflow_call gate was added. Gating the release is the
    backstop; running on the PR is the fix. Scoped to crate sources so docs and
    changelog edits do not trigger a three-image build.

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v24.zip
  • zebra-v24.zip
  • zaino-v24.zip
  • zallet-v24.zip
  • orchard-v24.zip
  • librustzcash-v24.zip
  • lightwalletd-v24.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v24-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v23

Choose a tag to compare

@github-actions github-actions released this 28 Jul 04:16
459b8bf

Zero release 23, built from commit 459b8bf.

Changes

Security

  • zebra: ZIP-317 policy is now applied to mempool transactions before any
    expensive cryptographic verification, instead of after. This completes the
    GHSA-2p4c-3q4q-p463 mitigation: v21 banned peers that send invalid shielded
    proofs, but the node had already paid for proof verification by the time the
    ban landed. An unauthenticated peer could force full Halo2/Groth16
    verification on transactions that could never be mined. Rated high upstream,
    and specific to NU6.3/Ironwood-active nodes, which is every image we ship.
    (upstream #11053, 3b7467e)
  • zebra: zebrad-log-filter no longer executes log text as shell. It used GNU
    sed's e flag with log-line content interpolated into the executed string,
    so piping logs through the filter ran attacker-influenced text as commands.
    Not shipped or invoked by any image, but operators run it by hand against
    live logs. (upstream #11050, 196815d)

Scope note: upstream zebra v6.2.2 carries a third security fix, redacting the
Elasticsearch password from the startup config dump (#11051). It is deliberately
not carried. That code is behind the elasticsearch feature, which none of our
builds enable (FEATURES=release_max_level_info,progress-bar,prometheus), and
the fix changes a public field type, so carrying it would add a breaking
zebra-state API change with no effect on anything we ship. It arrives on the
next zebra subtree pull.

Both carries are marked [upstream-pending] and drop on the next zebra subtree
pull that reaches v6.2.1 / v6.2.2.

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v23.zip
  • zebra-v23.zip
  • zaino-v23.zip
  • zallet-v23.zip
  • orchard-v23.zip
  • librustzcash-v23.zip
  • lightwalletd-v23.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v23-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v22

Choose a tag to compare

@github-actions github-actions released this 27 Jul 20:23
b4876a2

Zero release 22, built from commit b4876a2.

Changes

Fixed

  • zcashd: z_gettreestate help documents the ironwood object's pre-activation presence with a null finalRoot
  • zcashd: raw-tx JSON emits ironwood only for exact-v6 transactions (ZFUTURE no longer shows an empty bundle)
  • zcashd: GetHistoryAt's size-check error names the invalid record size
  • zcashd: Updated source documentation and clarified error messages

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v22.zip
  • zebra-v22.zip
  • zaino-v22.zip
  • zallet-v22.zip
  • orchard-v22.zip
  • librustzcash-v22.zip
  • lightwalletd-v22.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v22-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v21

Choose a tag to compare

@github-actions github-actions released this 23 Jul 01:02
21063fb

Zero release 21, built from commit 21063fb.

Changes

Security

  • zebra: peers submitting invalid shielded proofs are now banned. Failed
    Orchard/Ironwood Halo2 proofs, Orchard binding signatures, and Sprout
    JoinSplit signatures previously collapsed to a zero misbehaviour score,
    letting a peer force expensive verification indefinitely.
    (GHSA-2p4c-3q4q-p463, 036f233)
  • zebra: known-block queries drain rejected-block notifications before
    checking sent hashes, so an honest block body sharing a header hash with a
    rejected body is accepted immediately instead of stalling sync as a
    duplicate. (GHSA-8gxx-hc65-vv82, 81b5121)

Fixed

  • zebra: outbound peer connections require the peer to advertise NODE_NETWORK,
    and rejected peers are recorded so they are not redialed. Without this, the
    current mainnet peer population (dominated by non-serving services=0 nodes
    since the zcashd EoS halt) fills all outbound slots and stalls fresh syncs
    at genesis indefinitely. Verified A/B: patched node syncs from the same
    seeders where stock zebra 6.2.x stalls. Upstreamed as
    ZcashFoundation/zebra#11061. (2af34be)

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v21.zip
  • zebra-v21.zip
  • zaino-v21.zip
  • zallet-v21.zip
  • orchard-v21.zip
  • librustzcash-v21.zip
  • lightwalletd-v21.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v21-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.

Zero v20

Choose a tag to compare

@github-actions github-actions released this 21 Jul 17:46
1739caf

Zero release 20, built from commit 1739caf.

Changes

  • zcashd: Ironwood is now fully supported (mainnet and testnet)
  • zcashd: Bumped the EOL date to ~2026-09-03 (restores the original 7-week EOL window)
  • zcashd: Various bug fixes, hardening, and regression tests

Source archives

One ZIP per vendored component (tracked source at the released commit):

  • zcashd-v20.zip
  • zebra-v20.zip
  • zaino-v20.zip
  • zallet-v20.zip
  • orchard-v20.zip
  • librustzcash-v20.zip
  • lightwalletd-v20.zip

Binaries

Prebuilt for linux/x86_64 (built on ubuntu-22.04, glibc 2.35+; stripped).
Telemetry disabled (no sentry/opentelemetry); getblocktemplate and
prometheus metrics included.

  • zebrad-v20-linux-x86_64 (with .sha256)

Note

The "Source code (zip)" and "Source code (tar.gz)" entries are
generated automatically by GitHub from the tag. They are not part of
the Zero release; use the assets above.