Skip to content

v25.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Jun 16:14

Taquito v25.0.0

Stable release of v25, the U025 (Ushuaia) protocol release. Promoted unchanged from v25.0.0-rc.1 and published under the latest dist-tag, timed to the protocol's expected mainnet activation (governance period 176).

TL;DR. v25 adds support for the Ushuaia protocol (U025): the PsUshuai9… protocol hash is registered, U025 is now the default protocol for forging and Michelson encoding, and the RPC constants type gains the new U025 fields (DAL parameters, stake-cache cycles, canonical smart-rollup address). The bundled @ecadlabs/beacon-* fork is at 4.8.4-ecad. Two bug fixes since the last stable release, both reported by the Temple Wallet team.

Project status. Taquito is an unfunded project maintained by ECAD Labs. Releases continue on a best-effort basis; protocol-tracking releases like this one remain a priority.


Bug fixes

Both reported by the Temple Wallet team (#3427) — thanks to @werfred for the detailed report and reproductions.

  • Encrypted key decryption across realms (#3428) — encrypted-key decryption failed in cross-realm runtimes (jsdom, SSR, browser extensions) after the 24.3.0 move to @noble/hashes v2. PBKDF2 salts are now normalized to plain Uint8Array, fixing both @taquito/signer encrypted private keys (including p2esk) and @taquito/sapling encrypted spending keys.
  • Batch estimate gas rebalancing (#3429) — estimate.batch no longer throws a false gas_exhausted.operation when a batch mixes cheap operations with one gas-heavy operation. The estimator rebalances auto-patched gas (never explicit user limits) and re-simulates until estimates converge. Adds BatchGasLimitExceededError for batches whose measured gas genuinely exceeds the per-block limit.

Ushuaia (U025) support

  • New protocol registered. Protocol.PsUshuai9 = 'PsUshuai9QapM5TGj1JpuVGkdxz5GykdnEvS6Rh8SUVrARvZLCY' is added to the protocol enums in @taquito/taquito and @taquito/michel-codec.
  • U025 is now the default protocol. DefaultProtocol moves from PtTALLiNt (024) to PsUshuai9 (025). Local forging and Michelson encoding default to U025 semantics.
  • Protocol ordering updated. In @taquito/michel-codec, proto 025 now maps to PsUshuai9, and ProtoALpha shifts to 026. The internal proto-level table reflects the same renumbering. If you pinned operations to a specific protocol by hash or relied on ProtoALpha being level 025, re-check those references.
  • RPC constants extended for U025. @taquito/taquito-rpc constants types gain the new fields exposed by Ushuaianet, including DAL parameters (attestation_lag, attestation_lags, attestation_threshold, number_of_shards, number_of_slots, page_size, redundancy_factor, slot_size), cache_stake_info_cycles, cache_swrr_selected_distribution_cycles, and smart_rollup_canonical_rollup_address. These are additive on read; reading constants from older protocols is unaffected.
  • Ushuaianet network constant. USHUAIANET (chain id NetXpX8WSZkAZZA) is wired through the protocol/network mapping so estimation, forging, and integration coverage can target it.

Beacon SDK fork → 4.8.4-ecad

The bundled @ecadlabs/beacon-* packages (aliased over @airgap/beacon-*) move from 4.8.3-ecad to 4.8.4-ecad across beacon-core, beacon-dapp, beacon-types, beacon-utils, beacon-ui, and the matrix / postmessage / walletconnect transports. This continues the relay-hardening and supply-chain work from the v24.3.0 line; relay defaults still route through the Trilitech-operated octez.io nodes.

@taquito/beacon-wallet's disconnect() now calls the SDK's client.disconnect() rather than client.destroy(). The practical difference for existing integrations: disconnect now notifies the connected wallet peer, clears the active account, and tears down the active transports, but the BeaconWallet instance stays usable. You can reconnect through a new permission request without re-instantiating. (Previously destroy() wiped all beacon:* localStorage state and left the instance unusable.)

Dependency maintenance

Routine, low-risk bumps across the workspace: axios 1.16.1 → 1.18.0, @scure/bip39 ^2.0.1 → ^2.2.0, and @types/node. No public API changes.

Infrastructure (no consumer impact)

For completeness, the bulk of the diff outside the published packages is CI and website work: a dedicated Ushuaianet CI job, integration tests retargeted to Ushuaianet with relaxed milligas assertions, shadownet integration RPC reads migrated to a public teztnets node with a health monitor, and website RPC URLs moved to octez.io. None of this ships in the npm packages.


Installing

npm install @taquito/taquito

Pin the exact version for reproducibility:

npm install @taquito/taquito@25.0.0

Feedback

If estimation, forging, or constants reads look wrong against U025, please open an issue on ecadlabs/taquito with the operation and network details.