Resources

Change Logs

Learn about the changes and updates in each version of the Hydra SDK

July 2026 β€” bridge v2.0.0 (next tag)

@hydra-sdk/bridge 2.0.0 retargets the bridge from hydra-node v1 to the v2 line (verified against 2.3.0). The bridge major version now tracks the hydra-node major version, and 1.x is end of life.

Published under the next dist-tag. latest still resolves to 1.3.2. Install with pnpm add @hydra-sdk/bridge@next.

πŸ’₯ Breaking β€” hydra-node v2 removed the commit phase

v2 implements ADR-33: a head opens directly, with no commit phase to abort. Funds enter an open head through incremental deposits instead.

  • commands.abort() and HydraCommand.GetUTxO removed
  • commands.initSync() resolves on HeadIsOpen, not HeadIsInitializing
  • Tags removed: HeadIsInitializing, Committed, HeadIsAborted, CommitIgnored, GetUTxOResponse, PeerHandshakeFailure
  • HeadIsOpen is { headId, parties } β€” it no longer carries utxo
  • HeadIsFinalized.utxo renamed to finalizedUTxO
  • HydraHeadStatus drops Initializing and Final (Final never existed in any released hydra-node)
  • HydraHeadInfo is a discriminated union over Idle | Open | Closed
  • SubmitTxResponse rebuilt from Hydra.Chain.PostTxError
  • Greetings, InvalidInput and every ClientMessage carry no seq / timestamp

✨ New

  • Commands safeClose(), sideLoadSnapshot(), partialFanout()
  • submitL2Tx() β€” submits over POST /transaction and lets the node return the verdict, instead of racing WebSocket messages against a client timeout
  • pendingDeposits() and recoverDeposit() for the deposit lifecycle
  • getRawProtocolParameters() exposing costModels / protocolVersion for ExUnits budgeting under PV11
  • bridge.syncedStatus and bridge.nodeVersion; the bridge now fails fast on RejectedInputBecauseUnsynced instead of hanging until timeout

πŸ› Found by testing against a live node

The v2 types were derived from the hydra Haskell source, then checked against a running hydra-node 2.3.0. That check found five defects a source read alone had missed:

  • Greetings.env has no signingKey β€” the node's ToJSON deliberately omits it
  • Greetings Maybe fields are omitted rather than null, so hydraHeadId / snapshotUtxo are optional
  • InvalidInput arrives with no tag; the connectors now stamp one so the payload union stays discriminated
  • POST /transaction takes the bare tx envelope, not { submitL2Tx: … }
  • Chain-waiting endpoints timed out client-side at 30s while the node works to its own 300s api-transaction-timeout β€” DELETE /commits reported failure for a recovery the node had completed

🧹 Housekeeping

  • The bridge's duplicated protocol-parameter constants are gone; it now uses @hydra-sdk/core, which carries the PV11 cost models. toProtocol() routes through castProtocol, so a zero utxoCostPerByte β€” what the node reports inside a head β€” is preserved rather than replaced by the L1 default.

See MIGRATION-v2.md for the full upgrade path.


July 2026 Release β€” transaction v1.2.0 Β· core v1.4.1 Β· bridge v1.3.2 Β· cardano-wasm v1.0.0 (Latest)

The headline is @hydra-sdk/transaction v1.2.0 β€” a memory-safety and features release for TxBuilder. @hydra-sdk/cardano-wasm also reaches its first stable v1.0.0.

🧠 Memory Safety β€” @hydra-sdk/transaction

  • WASM memory leak & progressive slowdown fixed: every @emurgo/cardano-serialization-lib object lives in WASM linear memory and is only reclaimed by .free(). CSL's FinalizationRegistry cleanup is non-deterministic and cannot keep up under a tight build loop, so the WASM heap grew unbounded and per-transaction build time degraded steadily. complete() now frees every internally-allocated CSL object deterministically after build_tx(). Measured result: flat WASM memory (~0 KB/iter) and steady throughput across 10,000 builds; 280 existing tests unchanged. Caller-supplied objects (datum / redeemer / script) are never freed.
  • completeCbor(): Promise<string> (new): builds the transaction and returns its CBOR hex, freeing the intermediate Transaction immediately β€” the leak-free path for high-volume workloads where you only need the serialized bytes. complete() still returns a live Transaction; the caller is responsible for calling .free() on it.
  • dispose() + [Symbol.dispose] (new): release all WASM memory held by a builder. Works with the using keyword (using tx = new TxBuilder()); recommended for high-volume / spike workloads instead of relying on the GC.

πŸš€ New Features β€” @hydra-sdk/transaction

  • Stake certificates are now built: registerStake(), deregisterStake(), and delegateStake() previously staged certificates that were silently dropped at build time β€” they are now applied via set_certs, so the built transaction actually contains the certificate(s). The stake credential is resolved from the bech32 reward (stake) address; an invalid reward address now throws instead of being ignored. PoolRegistration / PoolRetirement throw a clear "not supported yet" error.
  • totalCollateral() is now applied to the built transaction via set_total_collateral (previously the value was stored but never written).
  • Optional script exUnits evaluation: TxBuilder accepts an evaluator?: IEvaluator (plus a txEvaluationMultiplier? safety margin). When supplied and the transaction contains Plutus redeemers, complete() runs a second build pass β€” the draft transaction is evaluated to obtain real exUnits, those are written back into the redeemers (SPEND matched by input txHash#index, MINT by policy id), and the transaction is rebuilt so the fee is accurate. Without an evaluator (e.g. for Hydra, which has no on-chain script evaluation), behaviour is unchanged. The IEvaluator / EvalAction / Budget types mirror MeshJS for interoperability. Current limits: only SPEND and MINT budgets are remapped, and no offline evaluator is bundled yet β€” supply a provider-backed one (Blockfrost / Ogmios / Demeter) or a UPLC evaluator.

πŸ› Bug Fixes β€” @hydra-sdk/transaction

  • Script-transaction fee fix: the builder config previously hardcoded ex_unit_prices to zero and ref_script_coins_per_byte to 15/1, so the script-execution fee component (priceMemΒ·exMem + priceStepΒ·exSteps) was omitted and reference-script pricing ignored the protocol params β€” under-funding script transactions. Both are now sourced from the protocol parameters (priceMem, priceStep, minFeeRefScriptCostPerByte). Non-script transfers were already correct.
  • reset() use-after-free fixed (the metadata container was freed but not recreated) and the constructor no longer double-allocates the underlying TransactionBuilder when params is supplied.

πŸ“¦ @hydra-sdk/cardano-wasm v1.0.0 β€” first stable release

  • The WASM wrapper reaches v1.0.0. It selects the correct @emurgo/cardano-serialization-lib build via package.json exports conditions (browser β†’ browser WASM, node β†’ Node.js), with the asm.js fallback opt-in at the @hydra-sdk/cardano-wasm/asmjs subpath. Now that it is stable, pin it like any other dependency (^1.0.0).

πŸ”§ @hydra-sdk/core v1.4.1 & @hydra-sdk/bridge v1.3.2

  • @hydra-sdk/bridge@1.3.2: syncs the updated Cardano v11 protocol parameters and cost models; depends on core@1.4.1 and cardano-wasm@1.0.0.
  • @hydra-sdk/core@1.4.1: dependency bump to @hydra-sdk/cardano-wasm@1.0.0 (patch; the v11 protocol-parameter defaults landed in 1.4.0).

πŸ“¦ Updated Packages

  • @hydra-sdk/transaction@1.2.0
  • @hydra-sdk/core@1.4.1
  • @hydra-sdk/bridge@1.3.2
  • @hydra-sdk/cardano-wasm@1.0.0

Version 1.4.0 - July 2026

πŸš€ New Features β€” @hydra-sdk/core

  • RedeemerUtils β€” new namespace: RedeemerUtils.mkRedeemer(data, options?) wraps any PlutusData (e.g. built with DatumUtils) into a Redeemer with configurable tag / index / exUnits, ready to attach to the @hydra-sdk/transaction TxBuilder. Convenience helpers mkSpendRedeemer, mkMintRedeemer, mkUnitRedeemer, plus low-level mkRedeemerTag, mkExUnits and DEFAULT_EX_UNITS are included.
    import { RedeemerUtils, DatumUtils } from '@hydra-sdk/core'
    
    const data = DatumUtils.mkConstr(1, []) // e.g. a `Cancel` redeemer
    const redeemer = RedeemerUtils.mkRedeemer(data, { tag: 'spend', index: 0 })
    
  • DatumUtils β€” new Plutus-data encoders:
    • mkBool β€” encode an Aiken Bool (False = Constr(0, []), True = Constr(1, [])).
    • mkOption β€” encode an Option/Maybe (Some = Constr(0, [v]), None = Constr(1, [])).
    • mkBytesList / mkIntList β€” encode List<ByteArray> / List<Int>.
    • mkOutputRef β€” encode a Plutus OutputReference (Constr(0, [Bytes(txHash), Int(index)])).
    • mkAddress / parseAddress β€” convert a bech32 address to/from Plutus Address data.
  • Deserializer.deserializeAmountsFromTx(cborHex): decodes a transaction CBOR and returns every amount (lovelace + native tokens) across all outputs, merged by unit with quantities summed. Returns Asset[].
    const amounts = Deserializer.deserializeAmountsFromTx(txCborHex)
    // [{ unit: 'lovelace', quantity: '2000000' }, { unit: '<policy><assetName>', quantity: '5' }]
    

♻️ Refactor β€” @hydra-sdk/core

  • Address validation moved out of validator.util: AddressUtils.isValidAddress and the new ValidationUtils.isValidTxOutput now hold these helpers (previously in validator.util, a name easily confused with Plutus validator scripts). ValidatorUtils is retained as a deprecated re-export for backward compatibility β€” existing ValidatorUtils.isValidAddress / ValidatorUtils.isValidTxOutput calls keep working, but new code should use AddressUtils.isValidAddress / ValidationUtils.isValidTxOutput.

πŸ”§ Protocol β€” @hydra-sdk/core

  • Protocol parameters upgraded to v11: DEFAULT_PROTOCOL_PARAMETERS.minPoolCost lowered from 340000000 (340 ADA) to 170000000 (170 ADA), matching the Cardano v11 protocol parameter update.
  • Cost models synced with the v11 on-chain cost models: DEFAULT_V1_COST_MODEL_LIST / DEFAULT_V2_COST_MODEL_LIST extended with the additional Plutus builtin cost entries; DEFAULT_V3_COST_MODEL_LIST coefficients updated to the v11 values.

πŸ› Bug Fixes β€” @hydra-sdk/core

  • Resolver.resolveTxHash WASM memory leak: now calls .free() on the intermediate FixedTransaction WASM object before returning, preventing WASM heap growth in long-running processes that hash many transactions.

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.4.0

Version 1.3.2 - June 2026

πŸš€ New Features β€” @hydra-sdk/core

  • DemeterProvider β€” new provider: Blockfrost-compatible provider for Demeter hosted endpoints. Extends BlockfrostProvider and builds the authenticated endpoint URL automatically from the authToken and network fields.
    import { ProviderUtils } from '@hydra-sdk/core'
    
    const provider = new ProviderUtils.DemeterProvider({
      authToken: 'blockfrost102lx3ckhzvkjjh7677g',
      network: 'mainnet', // 'mainnet' | 'preprod' | 'preview'
    })
    
  • BlockfrostProviderConfig.baseURL: new optional field allowing callers to override the default Blockfrost endpoint URL (also used internally by DemeterProvider).
  • DatumUtils.mkList(elements): constructs a PlutusData list from an array of PlutusData elements, completing the datum builder API alongside mkInt, mkBytes, mkConstr, and mkMap.

πŸ› Bug Fixes β€” @hydra-sdk/core

  • metadataObjToMetadatum validation & logic fixes: UTF-8 byte-length validation for strings and bytes against the 64-byte Cardano limit (with descriptive errors), a Number.isInteger() guard for float values, and a dedicated Map branch (previously an empty Map silently lost data).

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.3.2

Version 1.3.1 - March 18, 2026

πŸ› Bug Fixes β€” @hydra-sdk/bridge

  • Greetings Idle head status crash: When headStatus is Idle (head not yet opened), the Greetings message does not include a snapshotUtxo field. Accessing it caused an undefined error and broke the cache seeding path. The handler now guards against the missing field before calling updateSnapshot.

πŸ› οΈ Developer Experience β€” @hydra-sdk/bridge

  • Chalk-coloured verbose logs: All console.log/warn/error calls throughout HydraBridge have been replaced with three module-level helpers (log, warn, err) backed by chalk:
    • Tag [⚑ HydraBridge] is always printed in cyan bold
    • Success events (connected, snapshot seeded) use green
    • Warnings (reconnect attempts, out-of-order snapshots) use yellow
    • Errors and disconnection events use red
    • Low-signal values (txId, slot timestamp) use gray
  • Debug dumps removed: Two leftover console.log('>>> / bridge.ts:...') statements have been deleted.

πŸ“¦ Updated Packages

  • @hydra-sdk/bridge@1.3.1

Version 1.3.0 - March 16, 2026

πŸš€ New Features β€” @hydra-sdk/bridge

  • hydra-node v1.3.0 Compatibility: Greetings message extended with four new optional fields: currentSlot, chainSyncedStatus, env, networkInfo
  • Slot-Zero Timestamp: HydraBridge.slotZeroTimestamp β€” automatically derived from Greetings.currentSlot for slot ↔ time arithmetic inside the Hydra Head
  • submitTx callback API: New Node.js error-first callback method alongside the existing submitTxSync:
    bridge.submitTx(tx, (error, result) => { ... }, { timeout: 30000 })
    
  • /head API fix: HydraHeadInfo type rewritten to match the real hydra-node v1.3.0 /head response structure
  • Auto-reconnect: Three new InitHydraBridgeOptions fields β€” autoReconnect, reconnectInterval (default 3000ms), maxReconnectAttempts (0 = unlimited)

⚑ Performance β€” @hydra-sdk/bridge

  • O(1) balance lookup: Pre-computed balanceCache: Map<address, Map<assetUnit, bigint>> β€” rebuilt once per snapshot, read per request with no I/O
  • O(1) UTxO lookup: Pre-built addressUtxoIndex: Map<address, UTxOObject> β€” queryAddressUTxO() and addressesInHead() no longer scan all UTxOs on each call
  • getAddressBalance(address): New public API for instant balance reads. Returns null on cold start (cache not yet seeded)
  • lastSnapshotNumber: Exposed as public field; cache only advances, never regresses on reconnect or out-of-order delivery
  • Greetings seeds cache: No HTTP round-trip needed on fresh connect β€” snapshotUtxo from the Greetings message seeds the index directly
  • HTTP fallback race fix: Slow HTTP response can no longer overwrite fresher WebSocket snapshot data

⚑ Performance β€” @hydra-sdk/core

  • convertUTxOObjectToUTxOWithOptions: New export accepting { maxDatumCacheSize?: number } β€” datum deserialization cache is now bounded (default 1024) with LRU eviction, preventing unbounded memory growth on large snapshots
  • Converter refactors: reduce β†’ for loops in convertUTxOToUTxOObject and convertTxOutputToWasm; for...in replaces Object.entries() in convertUTxOObjectToUTxO to avoid intermediate array allocations
  • Benchmark script: scripts/bench-converter.ts β€” CLI tool for measuring conversion throughput under configurable workloads

πŸ› Bug Fixes β€” @hydra-sdk/bridge

  • submitTxSync variable shadowing: Inner tx shadowed outer tx parameter β€” always returned the first confirmed transaction instead of the matching one
  • newTx hardcoded description: Was overwriting caller-supplied description with 'Ledger Cddl Format'; now passed through as-is
  • URL builder default port: buildUrl was emitting https://host:443/path when no explicit port was provided; default ports are now stripped

πŸ› οΈ Internal Refactoring

  • awaitHydraMessage utility (src/utils/await-hydra-message.ts): Replaces the repeated manual event-listener + timeout cleanup pattern. submitTxSync, decommit, and initHydraHead all refactored to use it β€” no more fragile multi-exit-path cleanup

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.3.0
  • @hydra-sdk/bridge@1.3.0

Version 1.1.7 - January 30, 2026

πŸš€ New Features

  • Reference Input Support: Added support for Cardano reference inputs in TxBuilder via txInReference() method
  • Reference Script Support: Added support for attaching reference scripts to transaction outputs in TxBuilder via txOutReferenceScript() method
  • CIP-8 Message Signing: Implemented signData() method in EmbeddedWallet for arbitrary data signing (CIP-8)

πŸ› οΈ Technical Improvements

  • Plutus Type Standardization: Standardized Plutus-related types (Datum, Redeemer, ScriptRef) across core and transaction packages for better consistency
  • Provider Enhancements: Updated OgmiosProvider to support structured script reference retrieval

πŸ› Bug Fixes

  • HydraBridge: Fixed noHistory option behavior in WebSocket connector

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.1.7
  • @hydra-sdk/transaction@1.1.7
  • @hydra-sdk/bridge@1.1.7

Version 1.1.6 - January 21, 2026

πŸš€ New Features

  • Hydra Hub Integration: Enhanced HydraBridge with support for connecting to Hydra Hub
  • Plutus Script Utilities: Added comprehensive Plutus script utilities and enhanced applyParamsToScript functionality
  • AI Assistance: Enhanced AI assistance UI and functionality with streaming responses and improved markdown rendering

πŸ› οΈ Technical Improvements

  • Web API Transition: Replaced Node.js Buffer dependency with TextEncoder/TextDecoder for better browser compatibility
  • Conversion Utilities: Enhanced hex and byte conversion utilities with improved performance and error handling
  • Key Management: Improved mnemonic-to-key conversion functionality and key utilities

πŸ§ͺ Testing & CI/CD

  • Expanded Test Coverage: Added comprehensive unit tests for TxBuilder, validator utilities, and metadata processing
  • Modernized Testing Stack: Updated Vitest to version 3.x and added shared TypeScript/ESLint configurations

πŸ“š Documentation Updates

  • Multi-language Support: Added complete Japanese documentation and synchronized English/Vietnamese versions
  • Provider Documentation: Updated documentation for Blockfrost and Ogmios providers

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.1.6
  • @hydra-sdk/transaction@1.1.6
  • @hydra-sdk/bridge@1.1.6

Version 1.1.5 - November 27, 2025

πŸ› οΈ Core Utilities

  • Key Management Utilities: Updated and expanded key management functions (keygen, verification key, Hydra key) in @hydra-sdk/core
    • Added unit tests for key generation functions
    • Standardized and optimized key management API for Hydra and Cardano CLI
  • Blockfrost Integration: Added configuration files and Blockfrost integration for demo applications

πŸ§ͺ Testing & Metadata

  • SDK API Metadata Extraction: Added script to automatically generate SDK API metadata (extract-sdk-api.ts)
  • Test Coverage: Added unit tests for key utilities

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.1.5
  • @hydra-sdk/transaction@1.1.5
  • @hydra-sdk/bridge@1.1.5

Version 1.1.3 - October 29, 2025

πŸ§ͺ Testing & CI/CD Infrastructure

  • GitHub Actions Workflows: Comprehensive CI/CD pipeline cho automated testing
    • Jest Configuration: ThΓͺm Jest config vα»›i coverage reporting vΓ  JUnit support
    • Test Workflow: Automated testing workflow vα»›i detailed reporting vΓ  coverage metrics
    • GitHub Secrets Setup: Documentation vΓ  configuration cho environment variables trong CI/CD
    • Test Commands: ThΓͺm test:ci script cho continuous integration testing

πŸ› οΈ Core Utilities Improvements

  • Metadata Utilities: ThΓͺm utility functions để convert cΓ‘c loαΊ‘i metadata khΓ‘c nhau sang CardanoWASM.TransactionMetadatum
    • Support cho Map, List, String, Number, Boolean metadata types
    • Enhanced type safety cho Plutus datum operations
  • Converter Fixes: Fix vΓ  optimize converter utilities cho UTxO transformation
    • Improved performance cho conversion operations
    • Better error handling vΓ  validation

πŸ—οΈ Package Refactoring

  • Package Rename: Rename hydra-wallet thΓ nh core để Δ‘α»“ng nhαΊ₯t vα»›i package naming convention
  • Import Updates: Refactor imports để sα»­ dα»₯ng Deserializer vΓ  Converter tα»« centralized locations

🧹 Code Quality & Maintenance

  • Debug Logs Cleanup: Remove unnecessary debug logs trong WebsocketConnector
  • Test Improvements: Remove unnecessary logs vΓ  ensure conversion performance trong tests
  • Dependencies Update: Update pnpm lock vα»›i cΓ‘c dependency mα»›i nhαΊ₯t

πŸ“š Documentation Updates

  • CI/CD Documentation: ThΓͺm comprehensive documentation cho GitHub Actions workflows
  • Secrets Management: Setup guide cho GitHub Secrets vΓ  environment variables
  • Testing Guide: Documentation cho Jest configuration vΓ  test workflows

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.1.3
  • @hydra-sdk/transaction@1.1.3
  • @hydra-sdk/bridge@1.1.3

πŸ”§ Developer Experience

  • Automated Testing: CI/CD pipeline tα»± Δ‘α»™ng chαΊ‘y tests trΓͺn mọi PR vΓ  push
  • Coverage Reports: Detailed coverage metrics vΓ  reporting trong GitHub Actions
  • Better Tooling: Improved development workflow vα»›i automated checks

Version 1.1.2 - October 22, 2025

πŸŽ‰ New Features

  • CardanoCliWallet Implementation: New wallet class for Cardano CLI-based key management and transaction handling
    • Key Management: Support for signing keys, verification keys, and address generation
    • Transaction Signing: Direct transaction signing using Cardano CLI wallet format
    • Node.js Integration: Seamless integration with Node.js environments for CLI-based workflows

πŸ› οΈ Technical Improvements

  • Wallet Abstraction: Added CardanoCliWallet class to @hydra-sdk/core for CLI-based wallet operations
  • Enhanced Flexibility: Support for multiple wallet types (Browser extension, CLI, Hardware)
  • Developer Experience: Simplified wallet integration for Node.js applications and automation scripts

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.1.2
  • @hydra-sdk/transaction@1.1.2
  • @hydra-sdk/bridge@1.1.2

πŸ“š Package Updates

  • Apps: Updated dependencies across playground, nodejs-playground, and web applications
  • Documentation: Updated to reflect new CardanoCliWallet functionality

Version 1.1.1 - October 8, 2025

πŸŽ‰ New Features

  • Hydra Concept Documentation: Comprehensive new documentation section covering Hydra Layer 2 concepts and usage
    • Why Hydra?: Complete guide explaining benefits, use cases, and when to use Hydra for your project
    • Commit to Hydra: Detailed documentation on committing UTxOs into Hydra Heads with blueprint transaction support
    • Blueprint Transaction Support: Enhanced TxBuilder with blueprint transaction functionality for Hydra deposits
    • Incremental Commit: Added support for partial deposits with blueprint transactions and change address handling

πŸ› οΈ Technical Improvements

  • TxBuilder Enhancement: Added blueprint transaction support for building transactions compatible with Hydra commit operations
  • HydraApi Extensions: New commit() and partialDeposit() methods in nodejs-playground for Hydra operations
  • Namespace Imports: Migrated from direct function imports to namespace exports (Deserializer, ParserUtils)
  • Package Export Optimization: Updated package exports to use source files for better development experience

πŸ“š Documentation Updates

  • Hydra Concept Section: Complete bilingual documentation (English/Vietnamese) for Hydra Layer 2 concepts
  • Interactive Examples: Added practical Node.js examples for empty commits and blueprint-based commits
  • Navigation Enhancement: New "Hydra Concept" section in documentation sidebar with comprehensive guides
  • Code Examples: Real-world examples for partial commits, blueprint transactions, and change address handling

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.1.1
  • @hydra-sdk/transaction@1.1.1
  • @hydra-sdk/bridge@1.1.1

⚑ Performance & Development Experience

  • Source-based Exports: Package exports now point to source files instead of built files for faster development
  • Enhanced Type Safety: Improved TypeScript definitions for Hydra operations
  • Better Error Handling: Enhanced error logging and debugging for Hydra transactions

Version 1.1.0 - September 26, 2025

πŸŽ‰ New Features

  • Utilities Modernization: Major update to core utilities with enhanced APIs and modern patterns
    • TimeUtils: New unixTimeToEnclosingSlot() and slotToBeginUnixTime() functions replacing deprecated resolveSlotNo()
    • SLOT_CONFIG_NETWORK: Network-specific slot configuration constants (MAINNET, PREPROD, PREVIEW)
    • Serializer/Deserializer: Namespace exports for Serializer.serializeAssetUnit() and Deserializer.deserializeAssetUnit()
    • DatumSchema: Simplified to constants-only API (Basic, Detailed) - removed deprecated methods

πŸ“š Documentation Overhaul (September 26, 2025)

  • Comprehensive Documentation Modernization: Complete rewrite of utilities examples and guides (50-75% size reduction)
  • TimeUtils API Updates: Updated all examples to use new unixTimeToEnclosingSlot() patterns with SLOT_CONFIG_NETWORK
  • API Accuracy Fixes: Corrected DatumSchema documentation to reflect actual implementation (constants only)
  • Transaction Signing Streamline: Reduced transaction signing examples from ~400 to ~150 lines, focusing on 4 core patterns
  • Working with Utilities Modernization: Updated guides with actual patterns from nodejs-playground
  • Serializer/Deserializer Patterns: Modernized all examples to use namespace exports and round-trip workflows
  • Perfect EN/VI Sync: Maintained 100% consistency between English and Vietnamese documentation

πŸ› οΈ Technical Improvements

  • Breaking API Changes: Deprecated legacy utility functions in favor of modern patterns
  • Namespace Exports: Migrated from direct function imports to namespace pattern for better organization
  • Production Patterns: All examples now based on real implementation patterns from nodejs-playground
  • Enhanced Error Handling: Added comprehensive error handling patterns for utilities
  • Performance Optimizations: Streamlined utility functions for better performance

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.1.0
  • @hydra-sdk/transaction@1.1.0
  • @hydra-sdk/bridge@1.1.0

⚠️ Breaking Changes

  • TimeUtils: resolveSlotNo() deprecated - use unixTimeToEnclosingSlot() with SLOT_CONFIG_NETWORK
  • DatumSchema: fromJSON()/toJSON() methods removed - use DatumSchema.Basic/DatumSchema.Detailed constants
  • Serializer Import: Direct serializeAssetUnit import deprecated - use Serializer.serializeAssetUnit

Version 1.0.14 - September 24, 2025

πŸŽ‰ New Features

  • Token Minting & Burning: Implemented comprehensive minting and burning functionality with policy scripts and datum utilities
  • Plutus Schema Support: Added detailed schema support for Plutus datums in DatumSchema with enhanced type safety
  • Policy Management: Added PolicyUtils for creating and managing minting policies with time-based constraints
  • Native Token Operations: Full support for Cardano native token creation, metadata handling, and lifecycle management

πŸ“š Documentation Updates

  • Mint/Burn Guide: Added comprehensive bilingual guide for token minting and burning operations
  • Code Examples: Included practical TypeScript examples for mint-burn-token operations
  • Tutorial Content: Created step-by-step tutorials covering wallet setup, UTxO management, and transaction building
  • Security Guidelines: Added security best practices and warnings for token operations

πŸ› οΈ Technical Improvements

  • DatumUtils Enhancement: Expanded datum utilities with support for complex Plutus data structures
  • Transaction Builder: Enhanced TxBuilder with native asset support and policy script integration
  • WASM Integration: Improved Cardano WASM deserializer for handling complex transaction types
  • Type Safety: Added comprehensive TypeScript types for Plutus scripts and native assets

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.0.14
  • @hydra-sdk/transaction@1.0.14
  • @hydra-sdk/bridge@1.0.14

Version 1.0.13 - September 22, 2025

οΏ½ New Features

  • GitHub Actions Integration: Added comprehensive GitHub Actions workflow for automated building and testing
  • Enhanced Contract Functionality: Implemented era summary retrieval and time-based constraints in unlock processes
  • Network Utilities: Refactored network constants and added slot configuration utilities for improved time handling

πŸ› Bug Fixes

  • Validity Range: Fixed validity range setup in transaction to correctly handle lower/upper bounds and serialization
  • Time Utilities: Added TimeUtils to core for common time conversions and helpers

πŸ“š Documentation Updates - September 23, 2025

  • Vietnamese Documentation: Added complete Vietnamese translation for all documentation pages
  • i18n Support: Implemented internationalization with language switcher (English/Vietnamese)
  • Navigation Updates: Added 'Hydra Bridge' entry to navigation and glossary localization
  • Change Logs Integration: Added 'Change Logs' link to documentation sidebar for better navigation
  • Configuration Guide: Updated configuration examples to optimize polyfills (Buffer only, disable global/process)
  • Documentation Links: Updated logo image paths and documentation links to reflect new SDK URLs
  • License Update: Updated license from MIT to Apache 2.0 across documentation
  • Support Links: Updated support banner link to point to the new funding page

οΏ½ Updated Packages

  • @hydra-sdk/core@1.0.13
  • @hydra-sdk/transaction@1.0.13
  • @hydra-sdk/bridge@1.0.13

Version 1.0.12 - September 18, 2025

πŸŽ‰ New Features

  • GitHub Actions Integration: Added comprehensive GitHub Actions workflow for automated building and testing
  • Enhanced Contract Functionality: Implemented era summary retrieval and time-based constraints in unlock processes
  • Network Utilities: Refactored network constants and added slot configuration utilities for improved time handling
  • Documentation Updates: Updated logo image paths and documentation links to reflect new SDK URLs

πŸ› Bug Fixes

  • Validity Range: Fixed validity range setup in transaction to correctly handle lower/upper bounds and serialization
  • Time Utilities: Added TimeUtils to core for common time conversions and helpers

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.0.13
  • @hydra-sdk/transaction@1.0.13
  • @hydra-sdk/bridge@1.0.13

Version 1.0.12 - September 18, 2025

πŸš€ Major Improvements

  • Transaction Builder: Complete implementation of transaction building and unlocking functionality with Plutus scripts
  • Custom Signing: Implemented custom transaction signing functionality
  • Script Enhancement: Enhanced TxBuilder with script data hash recalculation and updated redeemer builder

⚑ Performance Enhancements

  • Redeemer Handling: Refactored redeemer handling in TxBuilder to use emptyRedeemer utility for improved clarity
  • Execution Units: Added exUnits parameter to buildRedeemer and emptyRedeemer functions for customizable execution units

πŸ› Bug Fixes

  • Transaction Builder Fixes:
    • Updated descriptions for better clarity
    • Fixed redeemer builder with more options and changed default exUnits
    • Removed debug logs for cleaner output
    • Fixed calculate script hash functionality

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.0.12
  • @hydra-sdk/transaction@1.0.12
  • @hydra-sdk/bridge@1.0.12

Version 1.0.11 - September 15, 2025

πŸ“š Documentation & UI

  • Version Badges: Added version badges to package navigation in documentation
  • Code Examples: Updated code blocks in Vue.js example documentation for proper syntax highlighting
  • Full App Examples: Added comprehensive React and Vue.js application examples
  • Links Enhancement: Added links for Full React and Full Vue.js App examples

🧹 Maintenance

  • Dependencies: Removed chalk dependency from pnpm-lock.yaml
  • Package Updates: Updated version numbers and changelogs for multiple packages

πŸ“¦ Updated Packages

  • @hydra-sdk/core@1.0.11
  • @hydra-sdk/transaction@1.0.11
  • @hydra-sdk/bridge@1.0.11

Version 1.0.10 & Earlier Versions

πŸ”§ Core Development Phase

  • Unit Testing: Added comprehensive unit tests and demo code
  • API Implementation: Implemented HexcoreApi and OgmiosApi classes
  • Lock/Unlock Functionality: Added lock and unlock transaction functionality
  • Connection Management: Updated HexcoreConnector to use new API endpoints
  • Repository Migration: Updated all GitHub links to point to Vtechcom organization
  • License: Added MIT License file
  • Documentation: Created initial documentation for Hydra SDK packages

πŸ—οΈ Infrastructure Setup

  • Build Scripts: Added build script for generating documentation
  • Metadata Handling: Updated transaction metadata functionality
  • Node.js Support: Implemented Node.js compatibility
  • WebSocket Connector: Fixed auto connect with websocket connector
  • Auth System: Enhanced auth page with version display and safety notice

πŸ“¦ Package History

  • Multiple iterations of core packages (@hydra-sdk/core, @hydra-sdk/transaction, @hydra-sdk/bridge)
  • Legacy packages migration from @hydrawallet-sdk/* to @hydra-sdk/*
  • Configuration packages (@hydra-sdk/tsconfig, @hydra-sdk/eslint-config)
  • Cardano WASM integration (@hydra-sdk/cardano-wasm)

πŸ”„ Migration Notes

Package Naming Convention

Starting from version 1.0.5, all packages have been migrated from @hydrawallet-sdk/* to @hydra-sdk/* naming convention for better consistency.

For optimal performance, we recommend updating your Vite configuration:

Recommended Setup:

nodePolyfills({
    include: ['buffer'], // βœ… Only include buffer polyfill
    globals: {
        Buffer: true, // βœ… Required for cryptographic operations
        global: false, // βœ… Disabled for better performance
        process: false // βœ… Disabled for better performance
    }
})

Legacy Setup (still supported):

nodePolyfills({
    globals: {
        Buffer: true,
        global: true, // ⚠️ Not recommended but still works
        process: true // ⚠️ Not recommended but still works
    }
})

Breaking Changes

  • v1.1.0: Major TimeUtils API changes - resolveSlotNo() deprecated, use unixTimeToEnclosingSlot() with SLOT_CONFIG_NETWORK
  • v1.1.0: DatumSchema API simplified - removed fromJSON()/toJSON() methods, use constants only
  • v1.1.0: Serializer imports - use namespace exports Serializer.serializeAssetUnit() instead of direct imports
  • v1.0.14: Added mint/burn token functionality with new DatumUtils and PolicyUtils structures
  • v1.0.13: License change from MIT to Apache 2.0 (documentation only)
  • v1.0.12: Updated redeemer builder interface with new exUnits parameter
  • v1.0.11: Changed transaction validity range handling
  • v1.0.10: Repository URLs updated to Vtechcom organization

πŸ“‹ Package Overview

PackageCurrent VersionDescription
@hydra-sdk/core1.4.1Core library for building decentralized applications
@hydra-sdk/transaction1.2.0Transaction building and management utilities
@hydra-sdk/bridge1.3.2Bridge functionality for wallet connections
@hydra-sdk/cardano-wasm1.0.0Cardano WASM bindings and utilities
@hydra-sdk/tsconfig0.0.4Shared TypeScript configuration
@hydra-sdk/eslint-config0.0.4Shared ESLint configuration


Change logs are automatically generated based on Git history and semantic versioning. For detailed commit information, please refer to the GitHub repository.