Changes

Node Communication:  
- Multi-instance optimizations. This breaks compatibility with older multi-instance versions.  
Node Configuration:  
- Log configuration parser moved to viper and internal go-toml upgraded to go-toml/v2. Configuration now uses a custom Duration struct for proper unmarshalling  
- Configuration parser moved from go-toml to viper, allowing multiple configuration files to be parsed as one and overriding configuration values with environment variables  
Client API:  
- Node.js SDKv2  
- C SDKv2: Removed a output parameter from sign that was never used.  
Patch changes (no effect on compatibility):  
- Fixed a bug in the s3 audit logger location  
- Upgraded to Go 1.22.0 (<https://go.dev/doc/devel/release#go1.22.minor>)  
- Added cosign to pipeline, signing our docker images pushed to the ECR and Nexus registries.  
- Fixed an issue with empty structs in configuration  
- Fixed some memory issues that could appear when running under high load in C and Java SDKs.  
- Fix README example for gitlab.com/Blockdaemon/go-tsm-sdkv2

Versions

Client API: 51.1 (!)
Client Communication: 27.0  
Database: 7.8.0  
Node Communication: 31.0 (!)  
Node Configuration: 18.1 (!)  

Changes

Patch changes (no effect on compatibility):
- Fixed error that caused problems, when running lots of requests using libtsmclient, and dependent SDKs (nodejs, Java JNI/JCE)

Versions

Node Communication: 30.1
Node Configuration: 17.0
Client API: 50.2
Client Communication: 27.0
Database: 7.8.0

Cold Wallet

Introduced cold wallet functionality that combines offline storage security with hot wallet operational flexibility. This hybrid approach provides enhanced protection for high-value assets while maintaining transaction capabilities:

  • Secure offline key storage isolated from network connectivity
  • Complete transaction lifecycle support including initiation, approvals, signing, verification and auditing
  • Broadcast capabilities to publish signed transactions to the blockchain

Cold Wallet CLI

Released a command-line interface tool designed to streamline cold wallet deployment and configuration. The CLI automates the setup process and generates the necessary configuration files for supported operating systems:

  • MacOS deployment support in Docker containerized mode
  • Linux deployment support using systemd service management

Changes:

Node Communication:
- Added BIP-340 signature support to SEPD19S  
Client API:  
- C and Java SDKv2: Added methods for TsmUtils utility methods from the Go SDK.  
- OIDC Access Token Authentication: Added the posibility to use static public key  
- C and Java SDKv2: Added Embedded client with encryptor and configuration with OIDC authentication  
- Java SDKv2: Changed names on SessionConfig creation to align with Go SDK, and changed Embedded Client creation to match Go.  
- Go SDKv2: Generalized EdDSA to other schnorr variants. Renamed all EdDSA methods in SDKv2 to Schnorr and added support for BIP-340 signatures  
Client Communication:  
- EdDSA signatures are now identified as Schnorr signatures  
Patch changes (no effect on compatibility):  
- Added build tag to Go mobile, to fix error introduced in Go 1.20  
- Upgraded to Go 1.21.6 (<https://go.dev/doc/devel/release#go1.21.minor>)  
- When API keys are enabled, create the applications on startup instead of on demand

Versions:

Database: 7.8.0  
Client API: 50.2 (!)  
Client Communication: 27.0 (!)
Node Communication: 30.1  
Node Configuration: 17.0  

Changes

Client API:
- Go SDKv2: OIDC Access token authentication
- Go SDKv2: GenerateECDSAKeyPair() now returns pointer
Patch changes (no effect on compatibility):
- Fixed migration from versions prior to 55.0.0 with BIP-32 hard derived keys in the database
- Android and iOS SDKv2: Added TSM utilities (tsmutils)

Versions

Database: 7.8.0
Node Communication: 30.0
Node Configuration: 17.0
Client API: 48.1 (!)
Client Communication: 26.0

🚀 We're starting the year with some improvements:

  • [All] Ensured all intent objects have protocol or network and client_id in the response schemas.
  • [Ethereum] Added support for the Ethereum Holeš ky network in the Staking Integration API.
  • [Polkadot] Fixed an issue where Polkadot deactivation intent responses were missing the amount and deactivationType fields.
  • [NEAR]
    • Fixed an error message for new customers who have not staked, preventing them from creating any withdrawal intents.
    • Fixed response when requesting customer deactivation on the POST/deactivation-intents endpoint.
    • Fixed invalid network response on GET/withdrawable-amount endpoint.
  • [Cosmos] Fixed the response when a customer has no deactivation and restake intents.
  • [Solana] Fixed the issue where the Customer ID was returned blank for the stake-intent endpoint.

Changes

Patch changes (no effect on compatibility):
- Fixed security issue with DKLS19
- Fix bug in tsmcli preventing it from working with a single MCP node
- Go SDKv1: Un-deprecate keyClient.Delete()

Versions

Database: 7.8.0
Node Communication: 30.0
Node Configuration: 17.0
Client API: 47.0
Client Communication: 26.0

Changes

Patch changes (no effect on compatibility):
	- Update Go from 1.21.3 to 1.21.5, to fix issue when compiling for arm64/linux

Versions

Database: 7.8.0
Node Communication: 30.0
Node Configuration: 17.0
Client API: 47.0
Client Communication: 26.0

Changes

Client API:
- Java SDKv2: Added JNA based Java SDK for SDKv2
- C SDKv2: Changed Session Config to take a map like the Go SDK and added the broadcast API
Patch changes (no effect on compatibility):
- Print log configuration when starting nodes
- Added logging on error for the C SDKv2
- Trailing slash in issuer URL is now removed before validating
- libtsmclient, Node.js SDK, Java SDK now logs sessionID for EdDSA and ECDSA that takes sessionID as input.

Versions

Database: 7.8.0
Node Communication: 30.0
Node Configuration: 17.0
Client API: 47.0 (!)
Client Communication: 26.0

Changes

Node Configuration:
- Port option has been removed from the multiinstance configuration.
Node Communication:
- Multi-instance optimizations. This breaks compatibility with older multi-instance versions.

Versions

Database: 7.8.0
Node Communication: 30.0 (!)
Node Configuration: 17.0 (!)
Client API: 46.0
Client Communication: 26.0