Open-source, airgapped bitcoin hardware signer for the M5StickV.

Overview

Krux

Krux is an open-source DIY hardware signer for Bitcoin that can sign for multisignature and single-key wallets. It is a low-cost airgapped device built from off-the-shelf parts that communicates with wallet software via QR codes and wipes its memory after every session.


Disclaimer

WARNING: This is currently beta-quality software and has not yet been audited by a third party. Use at your own risk!


Getting Started

Instructions for building and running Krux can now be found on our GitHub Pages site:

https://jreesun.github.io/krux/

Inspired by these similar projects:

Contributing

Issues and pull requests welcome! Let's make this as good as it can be.

Support the Project

If you would like to support the project, BTC is kindly accepted!

19f8HVt8LZKzBv8CuBYnxCqn5sd75V658J

Comments
  • Release 22.08.0

    Release 22.08.0

    In no particular order, this release:

    • Adds support for the Maix Amigo, Maix Bit, and Maix Dock devices
      • This includes an all new UI when using a touchscreen device
    • Updates the simulator to add support for Amigo and PC directly
    • Tons of font work
      • Change font format from dense to custom sparse format, krux font format
      • Add bdftohex.py for converting from a source bdf font format to the new krux font format
      • Add hextokff.py script to convert only used unicode characters (derived from looking in i18n/translations) to new format
      • Add bdftokff.sh shell script to simplify font conversion
      • Update ter*.bdf fonts to include vietnamese and bitcoin glyphs in one source font
      • Fix vietnamese glyphs by accounting for bbox values in bdf when converting to hex
    • Build translations into firmware with new i18n.py bake command and use crc32 hash as slug lookup
    • Adds a new Brazilian Portuguese translation
    • Adds a new i18n framework for adding translations of the website documentation
    • Adds BIP39 passphrase support, asking a user if they want to "add passphrase" after entering a mnemonic
    • Mnemonic generation from dice rolls has been changed:
      • Rolls can be entered much faster and the last N rolls will always be displayed along the top in exactly the way they will ultimately be hashed
      • Now when rolling a D6, no separator is used between rolls prior to hashing to match ColdCard and SeedSigner results
        • We continue to use a - separator for D20 rolls to avoid accidentally reducing state space due to collisions (e.g., rolling 1-17 and 11-7 would result in the same 117 string without a separator
    • Unlocks the ability for a M5StickV to navigate backwards in all input prompts by pressing the power button. Long-pressing the power button will still shutdown the device, but one-press resets have now been disabled.
    • Adds support for rotary encoder input in lieu of prev/next buttons
    • Adds a lot of UX improvements including the ability to escape out of mnemonic loading or creation
    • Updates the docs site to be device agnostic and include screenshots in all supported languages
    • Adds the ability to load or save a .psbt file to an SD card, which should hopefully alleviate the pain with using the M5StickV when you don't have a phone-quality webcam to be able to read its QR codes.
    opened by jreesun 24
  • Maix Amigo IPS and Maix Bit Compatibility

    Maix Amigo IPS and Maix Bit Compatibility

    • Changed boot order to display splash while loading modules.
    • Added several configurations and conditional codes to deal with different displays, cameras, buttons and touchscreen.
    • Menus and keypads draw methods were modified to be compatible with touchscreen mapping.
    • Selected items are now outlined.
    • Changed font and alignment logic to use font width and height instead of font_size.
    • Added a touchscreen.py file with driver and API to access Amigos touchscreen.
    • QR animations are now time based to avoid different periods for different devices.
    opened by odudex 15
  • Compact SeedQR export

    Compact SeedQR export

    This PR contains Compact SeedQR export, partially attending #172, as well some UX suggestions like:

    • SeedQR in "transcribe" mode, with grids as guides
    • Auto-Go when entering seed as text and numbers, closing #176
    • Erase words was regressed and replaced by a prompt on word confirmation
    • Shutdown prompt, closing #175
    • Print QR prompt as standard yes/no
    opened by odudex 13
  •  Tests adapted to new code, touch improved

    Tests adapted to new code, touch improved

    Tests and main code adjustments. Did more tests on touch/I2C, saw some rare exceptions and "gagging" were yet occurring, so I studied IC specs and improved the driver by setting appropriated registers and methods. Added a script that joins .bdf to .dkz font conversion in a single step

    opened by odudex 12
  • "Cannot sign" PSBTs from Blue and Electrum

    Warned by a Telegram user, I verified signing PSBTs transactions from wallets generated by zpubs, like in Blue and Electrum mobile, is not working. This error is being raised:

    sigs_added = self.psbt.sign_with(self.wallet.key.root)
            if sigs_added == 0:
                raise ValueError("cannot sign")
    

    PSBTs from Sparrow, with wallets created with xpub containing fingerprint and derivation still works fine.

    opened by odudex 9
  • Proposal for simplifying repetitive tasks of the development, test, lint, format, build and flash processes

    Proposal for simplifying repetitive tasks of the development, test, lint, format, build and flash processes

    When reading the official documentation over and over again (initially, with the intention of translation), I noticed that some tasks (development, build, lint, update, test, etc) require, on an extended time scale, a considerable amount of repetition of the commands.

    I think this could be simplified, through a Makefile.

    I didn't open a PR to not affect some improvements being made by @jreesun and @odudex , but I share a gist that, apparently, simplified the tasks.

    Some of the simplified tasks:

    • make update: replacing git pull origin main && git submodule update --init --recursive
    • make install: replacing poetry install and some optional dependencies (in this sense, a proposal to modify pyproject.toml to)
    • make test: replacing poetry run pytest --cache-clear --cov src/krux --cov-report html ./tests
    • make test/verbose: replacing poetry run pytest --cache-clear --cov src/krux --cov-report html --show-capture all --capture tee-sys -r A ./tests
    • make build/sign: replace some tasks to installing from the source:
      • vagrant up
      • vagrant ssh -c 'cd /vagrant; ./krux generate-keypair'
      • vagrant ssh -c 'cd /vagrant; ./krux pem-to-pubkey pubkey.pem'
      • copy the hex pubkey
      • replace in src/krux/metada.py file
    • make build/maixpy_m5stickV: replace vagrant ssh -c 'cd /vagrant; ./krux build maixpy_m5stickv'
    • make build/maixpy_amigo_ips: replace vagrant ssh -c 'cd /vagrant; ./krux build maixpy_amigo_ips'
    • make simulator: run and logs simulation process

    To see all options, type make help

    I also prupose a change on simulator/run-all-sequences.sh, with the characteristic of reducing the console output and allowing the writing of log files during simulation.

    opened by qlrd 8
  • xpubs, legacy addreses and BlueWallet

    xpubs, legacy addreses and BlueWallet

    After a few code tweaks I succeeded in making Krux export singlesig wallets to Blue and Sparrow wallets as well sign and export PSBTs back to them. Video However, there still an issue with Blue: If I use a zpub everything works fine, but if I import the xpub in it, it will automatically create a weird legacy wallet with m/84'/0'/0' (native segwit) derivation. Since xpub are commonly used for legacy, and if I understood the Krux code, it is incompatible with legacy addresses, Krux shouldn't offer xpus, only zpubs. What do you think? (I'm new to all of this)

    opened by odudex 7
  • CMake Error when building the firmware

    CMake Error when building the firmware

    Thanks for this great project.

    I am trying to build the firmware on a freshly installed Ubuntu system. But CMake throws an error in Step 15/15 after vagrant ssh -c 'cd /vagrant; ./krux build-firmware':

    -- builtin py dir: /src/MaixPy/projects/maixpy_m5stickv/builtin_py
    -- [register component: micropython ], path:/src/MaixPy/components/micropython
    CMake Error at /src/MaixPy/tools/cmake/compile.cmake:82 (message):
      Can not find port/src/speech/maix_asr/libmaix_asr.a or
      /src/MaixPy/components/micropython/port/src/speech/maix_asr/libmaix_asr.a
    Call Stack (most recent call first):
      /src/MaixPy/components/micropython/CMakeLists.txt:564 (register_component)
    

    Any idea what I'm missing here?

    opened by bavarianledger 6
  • Add SYS_EXC_INFO for micropython to handle exceptions

    Add SYS_EXC_INFO for micropython to handle exceptions

    logging.py uses sys.exc_info() in exception handling, for that MICROPY_PY_SYS_EXC_INFO needs to be enabled on micropython port, otherwise system may crash.

    opened by odudex 5
  • MaixPy should be a submodule

    MaixPy should be a submodule

    Copying code in makes code review hard as now the reviewer also has check where that copied code came from and if it was modified. #39 sounds like this issue might be resolved by removal of the code but anyway, for a Bitcoin wallet code auditability is key.

    opened by Giszmo 5
  • Maix Amigo support

    Maix Amigo support

    Hi! Great project! Do you think it might be possible to make krux compatible with Maix Amigo? It is a pretty cheap devboard that has a large screen with touch, camera and SD card slot. MCU is the same as in M5StickV - K210. https://www.seeedstudio.com/Sipeed-Maix-Amigo-p-4689.html

    opened by stepansnigirev 5
  • Single-sig wallet import from Blue and Nunchuk fails

    Single-sig wallet import from Blue and Nunchuk fails

    In Blue Wallet: Krux is able to import Blue's pure xpub wallet export. But fails to sign PSBTs, as there's no fingerprint to check against on Blue's descriptor. In Nunchuk: Single-sig wallet export don't use JSON, and exports as a "1 of 1" signatures wallet.

    There's a proposed fix for both issues here: And a warning for Blue's wallet import here

    opened by odudex 0
  • Remove dice roll count restrictions

    Remove dice roll count restrictions

    After selecting Via D6 or Via D20, add a follow-up prompt asking if the user wants to generate a 12-word or 24-word mnemonic.

    Then let the user enter as many rolls as they want.

    If they enter less than 50 or 99 rolls (or 30/60 for the D20) and select Go, display the "Are you sure? Y/N" prompt with a message like "It is strongly recommended to use at least X rolls" preceding it.

    Do SeedSigner or ColdCard let users create 12-word mnemonics from dice input? If so, it would be good to know what their upper limits are so we can be consistent with them.

    enhancement 
    opened by jreesun 1
  • Test and enable GRBL cnc implementation

    Test and enable GRBL cnc implementation

    We need a brave person with a CNC machine (powered by a GRBL controller) who would be willing to test the GRBLPrinter implementation here: https://github.com/selfcustody/krux/blob/develop/src/krux/printers/cnc.py#L326-L376

    It uses the same underlying GCodeGenerator base class that the FilePrinter uses (which we know to operate correctly); it's just a matter of confirming that the GRBL-specific serial communication logic functions as expected--or not, in which case changes to make it function correctly would be greatly appreciated!

    enhancement help wanted good first issue 
    opened by jreesun 0
  • Move away from board configs in favor of module-specific settings

    Move away from board configs in favor of module-specific settings

    Building on top of #159 and #160, it would be better to remove the board.config["krux"] pattern and instead have the modules themselves define settings that they reference to make decisions, where the default value of a setting could be based on the board.config["type"] or similar non-Krux-specific properties.

    This would:

    1. Let us clean up board configs in MaixPy so we can remove the krux key and once again match upstream MaixPy's versions
    2. Keep board-specific logic very close to where it matters, in the module that uses it
    3. Allow users to override particular settings as they see fit and have them persist on microSD

    This would also resolve https://github.com/selfcustody/krux/issues/147 nicely.

    Using that as an example, if display.py had a DisplaySettings class with an inverted_coordinates property, the default value could be initially set based on if board.config["type"] == 'amigo_tft'. The calling code could then say if settings.display.inverted_coordinates: <do stuff>, and users could go into their Settings to override this if they wanted.

    enhancement good first issue 
    opened by jreesun 7
  • Support hot-plugging microSD cards for better UX

    Support hot-plugging microSD cards for better UX

    Krux can only detect a microSD card at boot which makes the PSBT signing flow awkward and cumbersome if you're reading and writing the files to the card. It would be better if you could remove and insert a card at any point during runtime.

    To solve this, I think we should update our MaixPy fork to no longer mount an SD card on startup in maixpy_main.c, but rather add support for the Micropython machine.SDCard module which should, in theory, let us mount (and re-mount) an SD card from our "userspace" Krux python code.

    See here for how we could do it: https://github.com/loboris/MicroPython_K210_LoBo/blob/master/k210-freertos/mpy_support/standard_lib/uos/vfs_sdcard.c

    bug help wanted 
    opened by jreesun 0
  • Add support for more microSD cards

    Add support for more microSD cards

    The number of microSD cards supported by the MaixPy firmware is limited. To remedy this, we should first try updating selfcustody/MaixPy with the latest code from Sipeed and if no improvements on this front have been made, consider adding better support of our own.

    enhancement help wanted 
    opened by jreesun 1
Releases(v22.08.2)
  • v22.08.2(Sep 13, 2022)

    This patch release reverts the zpub QR code format, once again including key origin derivation info which is necessary for BlueWallet to use when preparing PSBTs for signing with single-key wallets.

    It is recommended to update to this version if you are using a single-key "Imported Watch-only" wallet with BlueWallet and are seeing a "cannot sign" error message in Krux when trying to send an outgoing transaction. If so, please do the following:

    1. Upgrade Krux to this new release
    2. Delete the affected wallet in BlueWallet (funds are safu as long as you have your mnemonic)
    3. Create a new wallet in BlueWallet by importing from the new zpub QR code that Krux now displays.
    4. Open the wallet in BlueWallet and pull down to fetch the old wallet's transaction history.
    5. Create a new outgoing transaction and scan the QR code with Krux.
    6. Krux should display the tx information and allow you to sign.
    7. Display the signed QR back to BlueWallet.
    8. Broadcast!
    Source code(tar.gz)
    Source code(zip)
    krux-v22.08.2.zip(44.02 MB)
    krux-v22.08.2.zip.sha256.txt(65 bytes)
    krux-v22.08.2.zip.sig(70 bytes)
  • v22.08.1(Aug 11, 2022)

  • v22.08.0(Aug 10, 2022)

    Update: Please use Version 22.08.1 which includes an important fix for a bug that would have prevented Amigos from performing airgapped upgrades to the next release.

    This latest version of Krux is brought to you by @odudex, who tirelessly worked for months to get Krux working on three new devices: the Maix Amigo, Maix Bit, and Maix Dock. Thank you for all your hard work!

    Many other improvements to Krux were made along the way which will be listed below.

    Enjoy!

    Installing

    For instructions on how to install this release, please follow the Getting Started guide on https://selfcustody.github.io/krux/.

    To perform an airgapped upgrade (with a microSD card) from a previous signed release, please follow the directions here: https://selfcustody.github.io/krux/getting-started/installing/#upgrade-via-microsd-card

    Changes

    ¡Three Amigos!

    Krux now supports three new devices: Maix Amigo, Maix Bit, and Maix Dock. The Amigo is an all-in-one device with a touchscreen display, while the Dock and Bit are more DIY-focused kits where some assembly is required.

    New touchscreen UI + UX enhancements

    Along with being usable on multiple devices now, Krux also has native touchscreen support and many refinements to its UI to make better use of the screen space it has. More work has gone into improving UX including the ability to escape out of the mnemonic loading or creation screens at any point.

    Built-in translations + Portuguese

    Krux now includes translations in the firmware due to using a more space-efficient font format. With this change, the rendering issues with Vietnamese characters have also been fixed. A new Portuguese translation has been added.

    Amigo support added to Krux Simulator

    The Krux Simulator, which lets you simulate on your PC what it would be like to run Krux on a device, was updated to support the Amigo. There is also now a PC option if you want to run Krux "natively" on your PC (NOTE: This is a toy for fun and is not recommended for real usage).

    CompactSeedQR support

    Support for scanning SeedSigner’s newer "CompactSeedQR" QR codes

    BIP39 passphrases

    Support has been added for BIP39 passphrases. After loading a mnemonic, you will be asked if you want to "Add a passphrase?" to it.

    Export signed PSBTs to microSD

    You can now save a signed PSBT to microSD which should help users having trouble getting their webcams to read the tiny QR codes on the M5StickV. Furthermore, Krux supports loading a PSBT from microSD as well if you want to forgo QR codes entirely.

    Better mnemonic generation

    The flow for entering rolls has been streamlined to allow more rapid input, with your string of rolls now being visible along the top of the screen as you go. We also introduced a change to how the D6 roll string is built, no longer including "-" between rolls prior to hashing to have consistency with ColdCard and SeedSigner.

    Note: We continue to use a "-" separator between D20 rolls to avoid reducing state space due to collisions (e.g., rolling 1-17 and 11-7 would result in the same 117 string without a separator, and would thus have the same hash)

    Back button and rotary encoders

    All devices, even the M5StickV, support moving backward in the UI now. The left-side power button on the M5StickV no longer does one-press resets and instead acts as a third input button. Note: You can still shutdown the device by holding it down for 5 seconds.

    Support for using a rotary encoder as the previous and next buttons has also been added. Check out @odudex’s open source case design with instructions on how to use one with the Dock: https://github.com/odudex/DockEncoderCase

    Just to note, he also has a case design for the Bit:

    https://github.com/odudex/MaixBitCase

    Updated website + i18n future

    The Github Pages site has been updated with new documentation and screenshots for the Amigo.

    A new internationalization (i18n) framework has been added by @qlrd that will allow the website to be easily translated to other languages so we can eventually have documentation for every language that Krux supports!

    @qlrd is also working on a graphical installer we hope to start making use of in the future when it’s ready. Keep tabs on it here: https://github.com/qlrd/krux-installer

    Source code(tar.gz)
    Source code(zip)
    krux-v22.08.0.zip(44.02 MB)
    krux-v22.08.0.zip.sha256.txt(65 bytes)
    krux-v22.08.0.zip.sig(70 bytes)
  • v22.03.0(Mar 31, 2022)

    Finally, after much TODO, the first official release of Krux is out!

    Krux will be following a calendar version release schedule similar to Ubuntu, hence the first release is version (20)22.03.0. If any glaring security issues or important bugfixes come up, they will make their way into point releases such as 22.03.1, 22.03.2, etc. All new work will go toward major releases which will get a new year and month combo.

    Thank you to everyone who contributed their time and effort toward this release. It's been very cool to see people take an interest in the project! Also, a special thank you is due to @stepansnigirev for creating the embit library that Krux leans so heavily on.

    Installing

    For instructions on how to install this release, please follow the Getting Started guide on https://selfcustody.github.io/krux/.

    Changelog

    • add weak link to uio by @stepansnigirev in https://github.com/selfcustody/krux/pull/13
    • Support UR types and arbitrary wallet vendors by @jreesun in https://github.com/selfcustody/krux/pull/14
    • Add support for Sparrow + Electrum, bitstring mnemonics, various fixes by @jreesun in https://github.com/selfcustody/krux/pull/16
    • Added note regarding VirtualBox / group vboxusers by @bavarianledger in https://github.com/selfcustody/krux/pull/20
    • Add I18n support by @jreesun in https://github.com/selfcustody/krux/pull/23
    • Add support for single-key wallets (#22) by @jreesun in https://github.com/selfcustody/krux/pull/30
    • Add pylint and refactor code to pass it by @jreesun in https://github.com/selfcustody/krux/pull/35
    • Update de-DE.json by @SatFrog in https://github.com/selfcustody/krux/pull/36
    • Add unicode support and satcomma notation (#32, #37) by @jreesun in https://github.com/selfcustody/krux/pull/40
    • Create fr-FR.json by @johngtrs in https://github.com/selfcustody/krux/pull/41
    • Display and print QR of found receive address (#42) by @jreesun in https://github.com/selfcustody/krux/pull/45
    • spanish translation for Krux by @bluejayws in https://github.com/selfcustody/krux/pull/53
    • Settings submenu by @jreesun in https://github.com/selfcustody/krux/pull/54
    • Add word_wrap to text drawing functions by @jreesun in https://github.com/selfcustody/krux/pull/55
    • Change Check Address to Scan Address (#56) by @jreesun in https://github.com/selfcustody/krux/pull/58
    • Add vendor dir and move submodules into it by @jreesun in https://github.com/selfcustody/krux/pull/59
    • Add more unicode coverage to default font by @jreesun in https://github.com/selfcustody/krux/pull/63
    • Vietnamese translation by @annb-ctu in https://github.com/selfcustody/krux/pull/64
    • Bake software into firmware; allow airgapped OTA upgrades via microSD by @jreesun in https://github.com/selfcustody/krux/pull/65
    • Add workflows for testing, building, and deploying gh-pages by @jreesun in https://github.com/selfcustody/krux/pull/67
    • Build the kendryte toolchain from source by @jreesun in https://github.com/selfcustody/krux/pull/71
    • Add 'New Mnemonic' option to create from D6 or D20 rolls by @jreesun in https://github.com/selfcustody/krux/pull/68
    • fixed function declaration mismatch by @odudex in https://github.com/selfcustody/krux/pull/72
    • Update README.md by @jreesun in https://github.com/selfcustody/krux/pull/84
    • Tests by @jreesun in https://github.com/selfcustody/krux/pull/74
    • New splash by @jreesun in https://github.com/selfcustody/krux/pull/89
    • Perform translations at runtime; add persistent settings by @jreesun in https://github.com/selfcustody/krux/pull/90
    • Format all python code with black by @jreesun in https://github.com/selfcustody/krux/pull/91
    • Smart typing and word search speed-up by @jreesun in https://github.com/selfcustody/krux/pull/95
    • Switch to codecov by @jreesun in https://github.com/selfcustody/krux/pull/97
    • Add SYS_EXC_INFO for micropython to handle exceptions by @odudex in https://github.com/selfcustody/krux/pull/96
    • Separate xpub text from QR and simplify key expression logic by @jreesun in https://github.com/selfcustody/krux/pull/98
    • Add MaixPy as submodule by @jreesun in https://github.com/selfcustody/krux/pull/102
    • Add dev instructions to README, update dependencies by @jreesun in https://github.com/selfcustody/krux/pull/105
    • Add message signing feature and tweak firmware sig verification by @jreesun in https://github.com/selfcustody/krux/pull/106
    • Adjust font scripts to account for >8px width fonts by @jreesun in https://github.com/selfcustody/krux/pull/110
    • New documentation for v1 by @jreesun in https://github.com/selfcustody/krux/pull/112
    • Add simulator by @jreesun in https://github.com/selfcustody/krux/pull/113
    • Release 22.03.0 by @jreesun in https://github.com/selfcustody/krux/pull/115
    • Hotfixes for release 22.03.0 by @jreesun in https://github.com/selfcustody/krux/pull/116

    New Contributors

    • @stepansnigirev made their first contribution in https://github.com/selfcustody/krux/pull/13
    • @bavarianledger made their first contribution in https://github.com/selfcustody/krux/pull/20
    • @SatFrog made their first contribution in https://github.com/selfcustody/krux/pull/36
    • @johngtrs made their first contribution in https://github.com/selfcustody/krux/pull/41
    • @bluejayws made their first contribution in https://github.com/selfcustody/krux/pull/53
    • @annb-ctu made their first contribution in https://github.com/selfcustody/krux/pull/64
    • @odudex made their first contribution in https://github.com/selfcustody/krux/pull/72

    Full Changelog: https://github.com/selfcustody/krux/commits/v22.03.0

    Source code(tar.gz)
    Source code(zip)
    krux-v22.03.0.zip(31.36 MB)
    krux-v22.03.0.zip.sha256.txt(65 bytes)
    krux-v22.03.0.zip.sig(70 bytes)
Owner
Jeff
19f8HVt8LZKzBv8CuBYnxCqn5sd75V658J
Jeff
Bitcoin Core integration/staging tree

Bitcoin is an experimental digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Bitcoin Core is the name of open source software which enables the use of this currency.

Bitcoin 67.6k Jan 4, 2023
A high-performance distributed Bitcoin mining pool server.

Viabtc Mining Server ViaBTC Mining Server is a high-performance distributed Bitcoin mining pool server. We have made a lot of optimizations for Bitcoi

ViaBTC 96 Nov 22, 2022
Dogecoin is a cryptocurrency like Bitcoin

Dogecoin is a cryptocurrency like Bitcoin, although it does not use SHA256 as its proof of work (POW). Taking development cues from Tenebrix and Litecoin, Dogecoin currently employs a simplified variant of scrypt.

Dogecoin 14.2k Jan 3, 2023
Bitcoin Point of Sale

LNPoS Hardware https://shop.pimoroni.com/products/m5stack-faces-kit-pocket-computer-with-keyboard-game-calculator Installation Install Arduino IDE: ht

Arc 132 Dec 4, 2022
Bitcoin and Altcoins Publickey subtracter

keysubtracter Bitcoin and Altcoins Publickey subtracter Generate multiple but different "copies" of a publickey, Actually Added and substracted public

Luis Alberto 23 Dec 27, 2022
Bitcoin Core integration/staging tree

Bitcoin Core integration/staging tree https://bitcoincore.org For an immediately usable, binary version of the Bitcoin Core software, see https://bitc

Bitcoin Core 47 Dec 22, 2022
Brute Force Bitcoin Private keys, Public keys

Rotor-Cuda This is a modified version of KeyHunt v1.7 by kanhavishva. A lot of gratitude to all the developers whose codes has been used here. Feature

LostCoins 87 Sep 24, 2022
Onix is a decentralized blockchain project built on Bitcoin's UTXO model

What is Onix? Onix is a decentralized blockchain project built on Bitcoin's UTXO model, with support for Ethereum Virtual Machine based smart contract

Onix CryptoCurrency Development 4 Dec 16, 2021
mako - full bitcoin implementation in C

mako - full bitcoin implementation in C

Christopher Jeffrey (JJ) 540 Jan 5, 2023
Small collection of tools written in C for ECC and bitcoin

ecctools Small collection of tools written in C for ECC and bitcoin Why this programs are written in C language? Well i like C language because compil

Luis Alberto 26 Dec 7, 2022
An open source, portable, easy to use, readable and flexible SSL library

README for Mbed TLS Mbed TLS is a C library that implements cryptographic primitives, X.509 certificate manipulation and the SSL/TLS and DTLS protocol

Arm Mbed 3.9k Jan 7, 2023
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Google 12.9k Jan 9, 2023
MIRACL Cryptographic SDK: Multiprecision Integer and Rational Arithmetic Cryptographic Library is a C software library that is widely regarded by developers as the gold standard open source SDK for elliptic curve cryptography (ECC).

MIRACL What is MIRACL? Multiprecision Integer and Rational Arithmetic Cryptographic Library – the MIRACL Crypto SDK – is a C software library that is

MIRACL 524 Jan 2, 2023
XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner

XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and RandomX benchmark. Official binaries are available for Windows, Linux, macOS and FreeBSD.

null 7.3k Jan 9, 2023
OSS-Sydr-Fuzz - OSS-Fuzz fork for hybrid fuzzing (fuzzer+DSE) open source software.

OSS-Sydr-Fuzz: Hybrid Fuzzing for Open Source Software This repository is a fork of OSS-Fuzz project. OSS-Sydr-Fuzz contains open source software targ

Ivannikov Institute for System Programming of the Russian Academy of Sciences 46 Dec 27, 2022
Passbolt - Open source password manager for teams

Passbolt - Open source password manager for teams

Passbolt 10 Oct 29, 2022
Upbit(업비트) Cryptocurrency Exchange Open API Client of Multi-Programming Language Support

Upbit Client Documents Support Upbit Client Upbit(업비트) Cryptocurrency Exchange API Client Description Upbit(업비트) Cryptocurrency Exchange Open API Clie

Yu Jhin 47 Dec 11, 2022
LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code.

LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code.

OpenBSD LibreSSL Portable 1.2k Jan 5, 2023
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.6k Jan 8, 2023
Open-source and open-hardware scientific RPN calculator

OpenRPNCalc Open-source and open-hardware scientific RPN calculator Introduction OpenRPNCalc is a scientific calculator based on STM32 microcontroller

Anton Poluektov 152 Dec 23, 2022