Offline Transaction Signing¶
Offline side¶
This is the cold wallet end, the device normally never goes online, like a Offline Signer or an Hardware wallet.
C++ library¶
The library compiled out of the monero source, without further dependencies, specific for the usecase of offline signer and hardware wallets.
Warning
This was the initial design (UML diagram) of the third iteration, is not in sync with the actual development at the moment, as it will be synced when there are (probably) no more changes. Even the reference will be at the most probably behind, how it is not yet automatically synced - which should happen at a later point in time.
The library provides following features:
- Monero Seed generation
- Polyseed generation
- Address and Key generation
- Account and Subaddress managment
- Address verification
- Import outputs
- Export Key Images
- Unsigned Transaction handling (verification and signing)
C ABI¶
Are actually the C ABI extern "C"
statements in the C++ library where the compiler creates an interface which can be used from C but still using the C++ source code. At this point you can use the library in C instead C++ and enables a lot, if not all, languages to use the library, continure reading in Wrappers
- Quickstart for using in C or writing an wrapper.
- Reference
Wrappers¶
With the C ABI provided it can be used by a lot of languages via FFI, a more practical approach is to provide a wrapper so the developer in the language used does not even think about it, but can instead simply use the library in the language own natural way.
Python¶
The Python wrapper uses cffi and can be found here: monero-ots-python
Java¶
The Java wrapper using JNI will be to be found there: monero-ots-java
Dart¶
The Dart/Flutter wrapper will be to be found there: monero-ots-dart