mmgen-py (OP)
|
|
April 11, 2014, 08:01:18 PM Last edit: November 24, 2016, 03:54:25 AM by mmgen-py Merited by ABCbits (9), NotATether (5) |
|
MMGen = Multi-Mode GENerator, a complete online/offline Bitcoin wallet solution for the command lineMMGen is a Bitcoin cold-storage system implemented as a suite of lightweight Python command-line scripts that work together with the reference Bitcoin Core daemon (bitcoind) to create a complete system for storing, tracking, sending and receiving Bitcoins. The MMGen system is completely self-contained, requiring no external server. No third party will know which addresses you're tracking. Like all deterministic wallets, MMGen can generate a virtually unlimited number of address/key pairs from a single seed. Since the seed never changes, your wallet needs to be backed up only once.At the heart of the MMGen system is the seed, the "master key" providing access to all your Bitcoins. The seed can be stored in five different ways: 1. as a wallet, encrypted with the crack-resistant scrypt function; 2. as a one-line unencrypted seed file; 3. as an Electrum-like mnemonic of 12, 18 or 24 words; 4. as a brainwallet password; or 5. as an "incognito wallet" consisting of random-looking data (72 bytes by default) suitable for hiding in a file or on a disk partition. Furthermore, all these methods can be combined. If you forget your mnemonic, for example, you can regenerate it and your keys from a saved wallet or seed file. Correspondingly, a lost wallet can be regenerated from a mnemonic or seed or a lost seed from a wallet or mnemonic. All of MMGen's wallet formats are short, plain ASCII text files suitable for printing on paper or even writing out by hand. This makes MMGen an ideal paper wallet system. Just choose the wallet format that best suits your security needs and print or write it out. MMGen runs on Linux and Windows. For more information, see the MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
July 14, 2014, 04:34:10 PM Last edit: May 02, 2015, 05:30:49 AM by mmgen-py |
|
New feature: export wallet to incognito formatIncognito wallet is 56, 64 or 72 bytes of apparently random data. Allows user to hide wallet data in a pre-existing file or on a disk partition (preferably filled in advance with random data). Can be used to hide wallet securely in unencrypted cloud storage or on paper, without revealing the nature of the data. Data may be written at a user-specified offset into the file or partition, in which case user must remember the offset. Each export operation uses a new random init vector to create different data each time. This allows the user to hide wallets at different locations on the Net without detection. User must remember hash preset in addition to passphrase (though trial and error can be used if it's forgotten). Fully integrated with address generation and tx signing operations. MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
July 17, 2014, 06:10:08 PM Last edit: July 18, 2014, 06:07:06 PM by mmgen-py |
|
New mmgen-tool utility with the following commands: General operations: hexdump - encode binary data in formatted hexadecimal form unhexdump - decode formatted hexadecimal data Bitcoin operations: strtob58 - convert a string to base 58 hextob58 - convert a hexadecimal number to base 58 b58tohex - convert a base 58 number to hexadecimal b58randenc - generate a random 32-byte number and convert it to base 58 randwif - generate a random private key in WIF format randpair - generate a random private key/address pair wif2addr - generate a Bitcoin address from a key in WIF format Mnemonic operations ("electrum" and "tirosh" wordlists): mn_rand128 - generate random 128-bit mnemonic mn_rand192 - generate random 192-bit mnemonic mn_rand256 - generate random 256-bit mnemonic mn_stats - show stats for mnemonic wordlist mn_printlist - print mnemonic wordlist MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
August 01, 2014, 06:57:34 PM Last edit: August 02, 2014, 11:31:51 AM by mmgen-py |
|
New commands for the mmgen-tool utility: Bitcoin address/key operations (compressed public keys supported): addr2hexaddr - convert Bitcoin address from base58 to hex format b58randenc - generate a random 32-byte number and convert it to base 58 b58tohex - convert a base 58 number to hexadecimal hex2wif - convert a private key from hex to WIF format hexaddr2addr - convert Bitcoin address from hex to base58 format hextob58 - convert a hexadecimal number to base 58 privhex2addr - generate Bitcoin address from private key in hex format pubkey2addr - convert Bitcoin public key to address pubkey2hexaddr - convert Bitcoin public key to address in hex format randpair - generate a random private key/address pair randwif - generate a random private key in WIF format strtob58 - convert a string to base 58 wif2addr - generate a Bitcoin address from a key in WIF format wif2hex - convert a private key from WIF to hex format Wallet/TX operations (bitcoind must be running): getbalance - like 'bitcoind getbalance' but shows confirmed/unconfirmed, spendable/unspendable balances for individual MMGen wallets listaddresses - list MMGen addresses and their balances viewtx - show raw/signed MMGen transaction in human-readable form General utilities: bytespec - convert a byte specifier such as '1GB' into a plain integer hexdump - encode data into formatted hexadecimal form (file or stdin) hexlify - display string in hexadecimal format hexreverse - reverse bytes of a hexadecimal string rand2file - write 'n' bytes of random data to specified file randhex - print 'n' bytes (default 32) of random data in hex format sha256x2 - compute a double sha256 hash of data unhexdump - decode formatted hexadecimal data (file or stdin) File encryption: encrypt - encrypt a file decrypt - decrypt a file MMGen encryption suite: * Key: Scrypt (user-configurable hash parameters, 32-byte salt) * Enc: AES256_CTR, 16-byte rand IV, sha256 hash + 32-byte nonce + data * The encrypted file is indistinguishable from random data MMGen-specific operations: check_addrfile - compute checksum and address list for MMGen address file find_incog_data - Use an Incog ID to find hidden incognito wallet data id6 - generate 6-character MMGen ID checksum for file (or stdin) id8 - generate 8-character MMGen ID checksum for file (or stdin) Mnemonic operations (choose "electrum" (default), "tirosh" or "all" wordlists): mn_rand128 - generate random 128-bit mnemonic mn_rand192 - generate random 192-bit mnemonic mn_rand256 - generate random 256-bit mnemonic mn_stats - show stats for mnemonic wordlist mn_printlist - print mnemonic wordlist MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
August 01, 2014, 08:38:50 PM Last edit: August 02, 2014, 11:33:17 AM by mmgen-py |
|
Announcing MMGen version 0.7.7New features since the project's debut on April 11th, 2014:General:- Option for online signing with individual keys, making MMGen a convenient tool for small, day-to-day Bitcoin transactions too
- Multiple transaction signing in one operation
- Incognito wallets for hiding wallet data in insecure locations
- Option to skip blockchain rescan for new addresses
An mmgen-tool utility with commands too numerous to mention. For a full list, see the previous post. Some highlights:- a full suite of Bitcoin address/key manipulation utilities with compressed public key support
- file encryption tool with strong encryption
- random-data-to-file tool with optional added user entropy
- search tool for hidden incognito data
- wallet-tracking commands getbalance and listaddresses
Unique feature: The user may now supply additional entropy in all cases where random data is needed. This user entropy (typed symbols + keystroke intervals) is hashed into a key with Scrypt and used to encrypt all random data acquired from the OS during the command run. MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
August 20, 2014, 04:58:31 PM Last edit: May 02, 2015, 05:33:46 AM by mmgen-py |
|
Announcing MMGen version 0.7.8New features:- Updated incognito format now includes a checksum for password verification. The legacy format continues to be supported with '--old-incog-fmt' option
- mmgen-txsign: '--mmgen-keys-from-file' option (supersedes '--all-keys-from-file' option) allows online signing of transactions with both MMGen and non-MMGen inputs.
- mmgen-addrimport: '--keyaddr-file' option allows using key-address file (optionally encrypted) as an address source.
MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
January 02, 2015, 09:44:17 PM |
|
Announcing MMGen version 0.7.9New feature:- An automated, pexpect-based test suite, 'test/test.py', that tests the MMGen scripts in a variety of use cases. The test suite is Linux-only due to dependencies required by the pexpect module.
MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
RGBKey
|
|
January 03, 2015, 07:23:33 AM |
|
Very nice looking program, I'll have to try it out later.
|
|
|
|
mmgen-py (OP)
|
|
January 03, 2015, 02:12:31 PM |
|
Very nice looking program, I'll have to try it out later.
Thanks! Please get back to me when you do.
|
|
|
|
mmgen-py (OP)
|
|
April 01, 2015, 11:16:27 AM |
|
Announcing MMGen version 0.8.0Bugfix release. Users are strongly advised to upgrade. MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
May 01, 2015, 07:21:30 PM Last edit: May 15, 2015, 07:35:24 AM by mmgen-py |
|
Announcing MMGen version 0.8.1New features:- New utility, mmgen-walletconv, converts to and from all MMGen wallet formats.
- All wallet-related scripts now use the new object-oriented wallet library seed.py and share a simpler, more logical command-line interface.
- More thoroughly tested than ever, thanks to a greatly expanded test suite, test/test.py.
- A subset of the test suite now runs under Windows; some user interaction required.
- mmgen-pywallet functional again.
MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
October 25, 2015, 01:25:55 PM Last edit: November 04, 2015, 12:00:24 PM by mmgen-py |
|
Announcing MMGen version 0.8.2This is a minor code cleanup and bugfix release. Upgrade recommended, testers welcome! MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
February 28, 2016, 02:00:18 PM |
|
Announcing MMGen version 0.8.3New features/improvements:- New native Bitcoin RPC library.
- Support for cookie-based RPC authentication (new in Bitcoin Core v0.12.0).
- Batch mode available when listing and importing addresses.
- mmgen-tool listaddresses: 'addrs' argument allows you to specify an address or range of addresses.
NOTE: if MMGen is already installed on your system, you must remove your existing installation by hand before installing this new version. On Linux, this means deleting everything under the directory '/usr/local/lib/python2.7/dist-packages/mmgen/'. Also, if you did a 'git pull' instead of a fresh clone, you must delete the 'build' directory in the repository root before installing. The 'mmgen-pywallet' utility has been removed. It's no longer needed, as the 'bitcoin-cli dumpwallet' command (available since Core v0.9.0) provides equivalent functionality. The Windows port isn't being actively maintained at the moment. Use at your own risk, and report any problems on this forum. To make sure everything's installed and working properly, run 'test/test.py -s' in the repository root. MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
June 25, 2016, 03:34:18 PM Last edit: June 27, 2016, 06:37:48 PM by mmgen-py |
|
Announcing MMGen version 0.8.4New features/improvements:- Dynamic transaction fees!
Fee is calculated using Bitcoin Core’s 'estimatefee' RPC call and can be overridden interactively by the user. MMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
mmgen-py (OP)
|
|
June 28, 2016, 11:27:01 AM |
|
Announcing MMGenLive, a fully functional Linux system on a USB stick with the MMGen online/offline Bitcoin wallet, Bitcoin Core and related programs preinstalled!MMGenLive gives you, out of the box:- A completely installed, upgradeable and configurable Ubuntu Linux system
- Full disk encryption (entire filesystem is read/write)
- The latest Bitcoin Core
- The MMGen wallet system and documentation
MMGenLive can be used both as an online or offline wallet.Everything’s ready to go. Just download and copy to a USB stick. No installation required!For Linux users who wish to “roll their own”, an automated build script is also available. As the MMGen Windows port isn’t being actively maintained, MMGenLive is now the recommended way for non-Linux users to use the MMGen wallet system. MMGenLive project page: https://github.com/mmgen/MMGenLiveMMGen project page: https://github.com/mmgen/mmgenSupport the MMGen project: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
|
|
|
|
morantis
|
|
June 28, 2016, 12:34:31 PM |
|
two questions, almost three
1. Does the set of scripts work with just one version of bitcoind or all and is that daemon/client included in the download
2. What functionality does this provide versus simply working with bitcoind itself or a third party API
I am not being mean, just did not have the time to FULLY read everything and it seemed that as a command line tool this was right up there with the standard daemon with some additional encryption/decryption tools. It should be pretty easy to make this into a GUI although you seem to have a vast number of functions and organization would be time consuming, but really the GUI would just be shelling out the command line functions and parsing the return data. if you want, i could throw together a fast windows GUI for you based on the little bit i had time to read, although i do not code for limux
|
|
|
|
mmgen-py (OP)
|
|
June 28, 2016, 02:22:23 PM Last edit: June 28, 2016, 05:42:17 PM by mmgen-py |
|
1. Does the set of scripts work with just one version of bitcoind or all and is that daemon/client included in the download
The live image includes the most recent version of Bitcoin Core, but the scripts will work with any version of bitcoind >= 0.10.0 (when watch-only support was introduced). 2. What functionality does this provide versus simply working with bitcoind itself or a third party API
Lots of functionality beyond bitcoind itself. Download the live USB image and try it out! That will answer a lot of your questions. It should be pretty easy to make this into a GUI although you seem to have a vast number of functions and organization would be time consuming,
I've thought about a GUI. I think it should be cross-platform, though, and integrated on a lower level, not just parsing the output of the scripts.
|
|
|
|
BitcoinNewsMagazine
Legendary
Offline
Activity: 1806
Merit: 1164
|
|
June 28, 2016, 04:18:44 PM |
|
You still need an online and offline computer for your solution. Armory and Electrum have been providing this type of cold storage for years, and it is not convenient to use. Hardware wallets like Ledger and Trezor have pretty much made this type of cold storage obsolete.
Trezor costs $99 and new Ledger Nano S is $66 and either provides all the security for your bitcoin you will ever need. And they both work with your phone.
|
|
|
|
mmgen-py (OP)
|
|
June 28, 2016, 05:49:06 PM |
|
Trezor costs $99 and new Ledger Nano S is $66 and either provides all the security for your bitcoin you will ever need. And they both work with your phone.
MMGen is intended for power users and provides more options, functionality and security than hardware wallets. It connects with the outside world only via Bitcoin Core. For many of us, the words "phone" and "security" are mutually exclusive. In addition, MMGen costs only $0.
|
|
|
|
BitcoinNewsMagazine
Legendary
Offline
Activity: 1806
Merit: 1164
|
|
June 28, 2016, 06:04:09 PM |
|
Trezor costs $99 and new Ledger Nano S is $66 and either provides all the security for your bitcoin you will ever need. And they both work with your phone.
MMGen is intended for power users and provides more options, functionality and security than hardware wallets. It connects with the outside world only via Bitcoin Core. For many of us, the words "phone" and "security" are mutually exclusive. In addition, MMGen costs only $0. If you can prove MMGen is more secure than Trezor have at it. Post your comments at /r/Trezor for slush to respond to.
|
|
|
|
|