Enter Atomun - the Java Bitcoin utility library collection.
This library implements Mnemonic transformations to address human data backup / transfer using word sequences.
This library will follow the guidelines set forth in Semantic Versioning 2.0
Public APIs not marked with @Beta are considered under the purview of the versioning rules.
@Beta items follow the attached documentation to the annotation, shortly put:
Do not rely on this to exist in the future as it is not "API-frozen". It may change functionality or be removed in any future release.
This library is covered under the Apache 2.0 license as indicated in the LICENSE file.
The repository is managed using the Gitflow workflow. Note that any published feature/* branches are subject to history modification, so beware working off of those.
Non-annotated tags will be added in the form vMAJOR.MINOR.MICRO-dev to denote the start of a new feature. This will guide the next release to be versioned as vMAJOR.MINOR.MICRO. Without this, the next expected version would be a MICRO-change.
Signed and annotated tags will be added in the form vMAJOR.MINOR.MICRO to denote releases.
Maven Group ID: us.eharning.atomun Name: atomun-mnemonic
Signed SNAPSHOT artifacts are pushed per-commit by Travis-CI to the Maven Central SNAPSHOT archive.
Signed release artifacts will be pushed directly to Maven Central.
Releases will be signed by the following privately held GPG key. It doesn't get published to Travis-CI.
pub 2048R/F8908096 2014-10-29 Key fingerprint = B6CC 560D F1C0 991E 08AA 555A ED63 F369 F890 8096 uid Thomas Harning Jr (CODE SIGNING KEY) <email@example.com>
See also http://www.eharning.us/gpg/
Snapshots will be signed by a key held by Travis-CI in their encrypted data stores. I figured it would be better to sign the snapshots than not have them signed at all, even if the specific key is less protected.
pub 2048R/EF39E8D8 2015-03-10 Key fingerprint = FCA2 D4CC 9294 38B7 5B91 8D9E 6BF2 A2D1 EF39 E8D8 uid Thomas Harning Jr (AUTOMATED CI CODESIGNER) <firstname.lastname@example.org>
Tags will be signed by the following privately held hardware-based GPG key.
pub 3072R/B1DBAD54 2011-04-19 Key fingerprint = 2F0A FF2E A8A0 1485 C95B 8650 F0A4 C0F7 B1DB AD54 uid Thomas Harning Jr <email@example.com>
This library implements the "Legacy Electrum" algorithm from Electrum, prior to the newer BIP0039-derived algorithm in use. It uses a dictionary of 1625 words to create a mnemonic strictly derived from the indices in the sorted dictionary.
Based on the draft BIP with English and Japanese dictionaries along with the relevant unit tests for each.
Technically there is no recorded name for this algorithm, it is just known that this has replaced the prior mnemonic implementation in Electrum.
The algorithm is derived based on inspection of the Electrum source code.
- Guava 19.0
- crinch-bits 0.7.2
- Spock Framework
- org.ajoberstar gradle defaults
- many included things, such as license plugin
Thanks to the Electrum team for preparing the original implementation that I used the algorithm and dictionary from.
Thanks to the Trezor team for preparing the baseline (python implementation of BIP0039)PythonBIP0039 and maintaining test cases.
Thanks to the BitcoinJ team for preparing an implementation of (BIP0039)BitcoinJBIP0039 that I used for inspiration.