github cardano-foundation/cardano-wallet v2026-08-21
Release v2026-08-21

one hour ago

Node Compatibility

Compatible with cardano-node@11.0.1.

Docker Image

Image

Highlights

This release exposes DRep registry data through new REST endpoints (GET /v2/dreps, GET /v2/dreps/suggested, GET /v2/dreps/summary, and GET /v2/dreps/{drepId}) so clients can list and inspect DReps without cardano-cli. It stops depositReturned from treating ordinary incoming payments as stake-key refunds, documents only reachable Byron/Icarus passphrase encryption methods, and hardens Byron random wallets: RndState.gen is reseeded from the system CSPRNG on checkpoint load, and derived keys are verified to reproduce the address before signing. Operator-facing Mithril plumbing moves the client image to the IntersectMBO registry, prefers mithril-client on PATH, and restores ledger snapshots into the node's LMDB backend.

Changes

Added

  • DRep registry HTTP API: GET /v2/dreps (all registered credential-based DReps; sentinels excluded; empty list on pre-Conway nodes), GET /v2/dreps/suggested (random sample of active, listed DReps excluding the top 35 by voting power; optional count, default 20, max 200), GET /v2/dreps/summary (aggregate counts and total staked voting power), and GET /v2/dreps/{drepId} (one DRep with embedded CIP-0119 metadata). A background worker fetches and hash-checks CIP-0119 JSON from anchor URLs (#5360)

Changed

  • Point the Mithril client image at the IntersectMBO container registry (ghcr.io/intersectmbo/mithril-client:2617.0-2478748) (#5319)
  • Resolve mithril-client from PATH when present, and keep the GitHub-release download as fallback (#5356)
  • Drop the cardano-cli Haskell library from local-cluster (the cardano-cli executable is still used at runtime) (#5346)
  • Use published Hackage packages delta-types-1.0.0.0 and delta-store-1.0.0.0 instead of vendored lib/delta-* trees (#5357)

Fixed

  • Compute depositReturned from wallet-owned deregistration certificates instead of a numeric input/output heuristic (#5345)
  • Narrow Byron/Icarus OpenAPI passphrase.encryption_method to reachable values (scrypt, pbkdf2-hmac-sha512); argon2id-v2 remains Shelley/shared-wallet only (#5327)
  • Reseed Byron RndState.gen from the system CSPRNG on checkpoint load (#5343)
  • Verify Byron derived keys reproduce the address before signing, so random wallets can spend and migrate addresses whose recorded derivation index is not the index the key was derived at (#5370)
  • Restore Mithril ledger snapshots into the node's LMDB backend instead of replaying from genesis after MetadataBackendMismatch (#5380)

CI/CD

  • Make publish-release re-runnable and fix docs git identity (#5323)
  • Windows: give the wallet-unit job a cardano-node.exe, clean E2E temp directories on cancellation, and fix environment-variable case collisions in prop_hspecMain (#5332, #5355, #5378)
  • macOS: resolve LOCAL_CLUSTER_CONFIGS from lib/unit, persist Nix eval caches, and run integration tests on master pushes (#5331, #5344, #5348)
  • Run Linux E2E on push to master (#5338)
  • Run the Mithril workflow nightly instead of on every master push (#5336)
  • Bump deprecated GitHub Actions to current majors (#5335)
  • Merge back release-candidate/v2026-07-23 version bumps (#5339)
  • Drop already-fixed items from the Known Issues template (#5324)
  • Require GitHub issue closing keywords in PR bodies (#5362)
  • Fix the cardano-wallet-benchmarks compile break and gate benchmarks in CI (#5376)
  • Keep focused Cabal test recipes limited to local test suites (#5361)
  • Add SQLite test progress and timeout diagnostics (#5349)
  • Accept spec prefixes wider than three digits (#5372)
  • Read waitForTimeoutLine capture as bytes, not chars (#5374)
  • README: remove the stale Lean badge; add a macOS integration badge (#5342, #5353)

API changes

Wallet HTTP paths below are served under /v2.

New endpoints

Four DRep-registry GETs (#5360):

  • GET /v2/dreps — all registered DReps (key-hash and script-hash only; always-abstain / always-no-confidence sentinels excluded) with on-chain fields plus asynchronously populated name. Served from cache (~15 minute TTL). Returns [] on pre-Conway nodes.
  • GET /v2/dreps/suggested — random sample of active DReps with off-chain metadata and do_not_list: false, excluding the top 35 by voting power. Optional query count (default 20, max 200; 0 returns []).
  • GET /v2/dreps/summary — aggregate statistics: total staked voting power, active count, inactive count, and total count.
  • GET /v2/dreps/{drepId} — one DRep with embedded CIP-0119 metadata (null if there is no anchor, metadata has not been fetched, or hash verification failed). 404 for sentinels and unknown IDs; 400 for malformed IDs.

PUT /v2/dreps/{drepId}/wallets/{walletId} (join) is unchanged.

voting_power.quantity is serialized as a JSON string. Metadata fields are attacker-controlled content from the DRep anchor URL and must be treated as untrusted.

No endpoints were deleted.

Modified endpoints

GET /v2/byron-wallets, POST /v2/byron-wallets, and GET /v2/byron-wallets/{walletId} (#5327):

  • passphrase.encryption_method no longer lists argon2id-v2 (Byron/Icarus wallets never store or migrate to root-key v2).
  • Remaining enum values: scrypt, pbkdf2-hmac-sha512.
  • Example is now pbkdf2-hmac-sha512.
  • Description is now: the scheme used to protect the wallet's root key in storage; absent on wallets that have no stored passphrase. The parenthetical "e.g. watch-only wallets" was removed.

No request schemas or status codes changed. Shelley and shared wallets that store a root key still expose argon2id-v2.

Known Issues

  • (#5326) (ADP-2635) Database connections do not seem to gracefully terminate on stopping the wallet.

Signatures

Name Role Contribution areas Approval
Paolo Veronelli @paolino Software Engineer Release preparation, integration, and maintenance coordination ✔️
Pawel Jakubas @paweljakubas Software Engineer Pivotal correctness, security, API ergonomics, and implementation review across passphrase handling, Byron wallet safety, transaction accounting, and the DRep API ✔️
Jean-Philippe Raynaud @jpraynaud Contributor Mithril client image registry migration
Samuel Leathers @disassembler Contributor DRep registry API and CIP-0119 metadata support
Adam Dean @Crypto2099 Contributor Byron signing/address verification and test-spec prefix handling

Don't miss a new cardano-wallet release

NewReleases is sending notifications on new releases.