Develop offline transaction signing utility for cold storage - #141
Merged
Lakes41 merged 1 commit intoJul 29, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #65
Description
This PR introduces an offline transaction signing utility that enables developers to securely sign transactions in completely air-gapped environments without requiring any network connectivity.
The existing SDK assumes an active connection to retrieve transaction metadata such as network information, gas configuration, and other chain state before signing. That approach makes it unsuitable for institutions or security-sensitive environments where private keys must never exist on an internet-connected machine.
To address this, I implemented a dedicated
OfflineSignermodule that separates transaction construction and signing from any network interaction. The signer requires all transaction parameters to be supplied explicitly by the caller, ensuring the signing process is fully deterministic and can run entirely offline.What Changed
OfflineSignerimplementation undersrc/security.Validation
The implementation was validated with focused unit and integration tests.
The repository also contains several pre-existing issues unrelated to this work. Minimal fixes were applied only where necessary to restore valid project configuration and allow the new module and tests to be compiled and executed.
Acceptance Criteria
Notes
A live
eth_sendRawTransactionbroadcast was not performed because the development environment used for validation does not have access to a blockchain node. Instead, the generated transactions were validated through serialization, parsing, and signer recovery to confirm that the payloads are correctly constructed and ready for broadcasting on a connected environment.