Migrating to 1.0.0
Release 2026-10-15 moves context-module, device-signer-kit-ethereum and the BOM / version catalog
(sdk-bom, sdk-version-catalog) to 1.0.0. It contains breaking changes. This page lists what to
change in your application.
device-management-kit and signer-utils only receive fixes (0.0.5) and need no code change, except
for the ProductId change below. Keep all modules on the same BOM version.
Ethereum Signer
Cancelled operations return EthereumErrors.CancelByUser
When the user rejects a signature or an address check on the device, the failure reason is now
EthereumErrors.CancelByUser instead of ConditionNotSatisfied.
is DeviceActionResult.Failure -> when (result.reason) {
EthereumErrors.CancelByUser -> showCancelledByUser() // was: ConditionNotSatisfied
else -> showError(result.reason)
}Already signed transactions are accepted
signTransaction no longer rejects a transaction that already carries a signature: the signature is
dropped and the transaction is signed again. No change is needed unless you worked around the rejection.
Context Module
Transaction checks use the shared ClearSigningContext.TransactionCheck
EthereumClearSigningContext.TransactionCheck is removed. Match on ClearSigningContext.TransactionCheck
instead, as for Solana.
Solana context request
SolanaContextRequest.txCheckSupportedis removed.SolanaContextRequestnow carriestransactionCheckFromandtransactionCheckRawTxto request a transaction check.SolanaContextLoadercan then returnClearSigningContext.TransactionCheck.resolveSolanaContextLoader()now returns a non-nullSolanaContextLoader: remove any null handling.
Device Management Kit (Android USB)
ProductId is now a data class instead of a value class. Code that relied on value-class semantics
(for example unwrapping it as its underlying value) must construct and read it as a regular class.
iOS
The generated Koin modules are no longer exported to the Objective-C / Swift framework. Remove any reference to them from your Swift code.
The Device Management Kit, the signers and the Context Module are shipped in a single
LedgerDeviceManagementKit XCFramework. If your project still links LedgerDMK or SignerEth, replace
them with LedgerDeviceManagementKit and import LedgerDeviceManagementKit.