All Projects → onyb → littlebit

onyb / littlebit

Licence: GPL-3.0 license
A Bitcoin library from scratch; in Python and Rust. 📦⛓️

Programming Languages

python
139335 projects - #7 most used programming language
rust
11053 projects
shell
77523 projects

LittleBit

Build Status codecov python rust

LittleBit is an educational library of Bitcoin primitives, with implementations in Python and Rust.

Objectives:
  • Help the reader understand how Bitcoin really works at a fundamental level.
  • Focus on readability in the Python implementation; on correctness, and performance in the Rust implementation.
  • Zero (ish) dependency on third-party packages.

DISCLAIMER: This software comes sans warranty. Do NOT use this code for anything other than educational purposes. I beg you.

Progress report

Legend: 🍏 Done   🍋 In Progress   🍅 TODO   🐍 Python   🦀 Rust

Internal links to code inside the repository are indicated like this. External links look like this.

Component Status
Elliptic Curve Cryptography (ECC)
Finite Field 🐍🍏
🦀🍏
Elliptic Curve 🐍🍏
🦀🍅
secp256k1 🐍🍏
🦀🍅
Signatures 🐍🍏
🦀🍅
Serialization
SEC Format 🐍🍏
🦀🍅
DER Format 🐍🍏
🦀🍅
Base58 🐍🍏
🦀🍅
Bitcoin Address Format 🐍🍏
🦀🍅
Wallet Import Format (WIF) 🐍🍏
🦀🍅
Transactions

Note: This table is not complete.

Contributing

This is an educational project. You can help out by:

  • 🔬 Auditing the codebase, asking questions, reporting bugs (please create issues).
  • 💯 Improving coverage of unit tests.
  • λ   Adding (clever) type annotations, especially with the Rust part.
  • 💬 Adding code comments and explanations.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].