Skip to content

Instantly share code, notes, and snippets.

@kdmukai
kdmukai / mnemonic_generation.py
Last active April 15, 2025 15:21
Using coin flips as 11-bit bip39 wordlist indices
def get_mnemonic_from_coin_flip_indices(coin_flips: str, wordlist_language_code: str = SettingsConstants.WORDLIST_LANGUAGE__ENGLISH) -> list[str]:
"""
Interprets a string of 128 or 256 0s and 1s as 11-bit bip39 wordlist indices and
returns the 12- or 24-word mnemonic.
Indices are 0-based (i.e. b'00000000000' == 0000 == "abandon")
Verify with iancoleman.io/bip39 using:
* "Binary" mode
* "Mnemonic Length" = "Use raw entropy"
@kdmukai
kdmukai / welcome.md
Created March 28, 2025 13:11
Summer of Bitcoin welcome letter

Greetings to all the new Summer of Bitcoin future contributors!

As you all probably already know, SeedSigner is a 100% volunteer, completely open source project. There is no company. We have no VC funding. We have no advertising budget. If people share info about SeedSigner with others it's because they love what we've been building.

However, we have a ton in place that rivals what you'd expect to see from a well-funded corporation. Our overall code quality and code organization/structure, our INCREDIBLE UX designed by @easyuxd, our test suite and screenshot generator, github automations, internal code review processes, etc.

Some FOSS projects are more on the YOLO hacker side of things; nerds building complex, hard to use software meant for other super nerds, often with big messy late night code sprints.

Instead, we try to maintain tight professional standards as much as possible (though since we're all just volunteers, often that rigor comes with the tradeoff that we're SLOW).

@kdmukai
kdmukai / README.md
Created January 9, 2025 15:10
SeedSigner OS `ccache` performance scripts

These test scripts demonstrate the step-by-step speed ups that the various ccaches provide.

Scripted test sequence:

  • Start a build w/totally empty cache(s).
  • Rebuild the same target with the now populated cache(s).
  • Change to a new target and get some speedup via the populated cache(s).
  • Rebuild that target to get the full speedup.
  • ...repeat for the remaining two targets.

The first script is for a SeedSigner OS builder that only has the built-in BuildRoot ccache.

@kdmukai
kdmukai / README.md
Last active December 24, 2024 19:27
SeedSigner 0.8.5-rc1 (Release Candidate 1) Release Notes

Release Candidate 0.8.5-rc1

🔥 ¡SeedSigner en español está aquí! 🔥


⚠️ Pre-Release Notice:

This is a Release Candidate (RC) version of SeedSigner. It is meant for TESTING to help us discover bugs, identify translations that can be improved, UI problems, performance issues, etc.

@kdmukai
kdmukai / README.md
Last active May 1, 2025 16:38
Submitting SeedSigner translation changes

Submitting SeedSigner translation changes

Create an account on github.com if you haven't already.


Finish translation changes, download .po file

  • Update and review translations in Transifex.
  • Navigate to this screen in Transifex and click "Download for use":
@kdmukai
kdmukai / README.md
Created December 3, 2024 21:24
pyasic + Loki + vnish management script

ASIC Manager

Installation

Create virtualenv and install python dependencies:

python -m venv envs/asic_manager-env
pip install -r requirements.txt

I'm using python3.11 but any recent-ish python3 should be fine.

@kdmukai
kdmukai / test_secp256k1_embedded.py
Created November 8, 2024 20:01
Testing `embit` secp256k1 python bindings, custom binary execution times
import time
from embit.util import secp256k1
import hashlib
from binascii import hexlify
def secp256k1_example():
"""Usage example for secp256k1 usermodule"""
# randomize context from time to time
# - it helps against sidechannel attacks
@kdmukai
kdmukai / qr_density_calcs.py
Last active November 4, 2024 16:31
Utility to brute force calculate target QR code densities for given QR formats and output display resolutions
"""
Utility to brute force calculate target QR code densities for given QR formats and output
display resolutions.
"""
"""
density | qr size | char capacity | px per module
10 | 33x33 | 114 | 7.15 # L
26 | 33x33 | 154 | 7.15
@kdmukai
kdmukai / README.md
Last active March 21, 2025 06:29
SeedSigner "firmware" isn't what you think it is

SeedSigner "firmware" isn't what you think it is

On Rabbit Hole Recap #320, ODELL said:

"If you are using a SeedSigner in single sig you have to make sure that that device never leaves your sight. If someone gets access to it, they can put malicious firmware on it. [...] And this idea that you're going to share it among communities in single sig is batshit crazy. That is not a good trust model."

This was a few weeks back. Things have gotten spicier since.

My goal here is to LOWER the temperature.

@kdmukai
kdmukai / README.md
Last active August 17, 2024 12:40
SeedSigner v0.8.0 Release Notes

SeedSigner v0.8.0 Release Notes


Quick Highlights:

Addtional legacy signing support:

  • P2PKH (bip44): Legacy format dating back to 2014.
  • P2SH multisig (bip45): Legacy multisig (also 2014).