HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
bitcoin
bips
Wikitext2013–2026
bitcoin / bips

bips

Bitcoin Improvement Proposals

104Distinct people
124Mentions
0Explicit recommenders
11KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Bitcoin Improvement Proposals

GitHub

Where it is used

  • Ledger Wallet (Ledger Live) — Ledger Wallet uses the BIP32, BIP39 and BIP44 standards to manage seeds and derivation paths for generating keys and addresses. Source

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year124 dated mentions

Observed mentions: 2013-12-10 19:15:46 UTC to 2026-09-13 15:23:25 UTC.

0510152013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 15 mentions; 0 submissions, 15 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 17 mentions; 0 submissions, 17 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 13 mentions; 0 submissions, 13 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC303
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC1019
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC808
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC909
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC12111
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC1019
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC707
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC15015
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC17017
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC13013
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC606
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC716
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC312
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC413

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
People wishing to submit a BIP should first describe their idea to the bitcoindev@googlegroups.com mailing list to gather feedback on viability and community interest before working on a formal description. Please open a pull request to this repository only when substantial progress on the draft has been made, preferably when the draft is nearing completion. Authors do not assign a number to their own proposal. After a proposal meets the editorial criteria, a BIP Editor will assign a number to it and publish the proposal by merging the pull request to the repository. Please see BIP 3: Updated BIP Process for the full process. The BIPs repository serves as a publication medium and archive. Having a BIP published here indicates that the proposal is in scope and has met other formal criteria for this repository, but does not indicate that it is a good idea, has community consensus, or that it is about to be adopted. The BIP Editors are expected to be liberal with publishing BIPs and to try not to be too involved in decision-making on behalf of the community. Beyond the formal criteria, evaluation of the proposals is left to the audience of the repository. When a proposal is controversial and it cannot be agreed upon whether it should be published, the conservative option will always be preferred: the proposal will be closed. Those proposing and opposing changes should consider that ultimately acceptance and adoption rests with the Bitcoin users (see also: economic majority). Number Layer Title Owner Type Status 1 BIP Purpose and Guidelines Amir Taaki Process Closed 2 BIP process, revised Luke Dashjr Process Closed 3 Updated BIP Process Murch Process Deployed 8 Version bits with lock-in by height Shaolin Fry, Luke Dashjr Informational Complete 9 Version bits with timeout and delay Pieter Wuille, Peter Todd, Greg Maxwell, Rusty Russell Informational Deployed 10 Applications Multi-Sig Transaction Distribution Alan Reiner Informational Closed 11 Applications M-of-N Standard Transactions Gavin Andresen Specification Deployed 12 Consensus (soft fork) OP_EVAL Gavin Andresen Specification Closed 13 Applications Address Format for pay-to-script-hash Gavin Andresen Specification Deployed 14 Peer Services Protocol Version and User Agent Amir Taaki, Patrick Strateman Specification Deployed 15 Applications Aliases Amir Taaki Specification Closed 16 Consensus (soft fork) Pay to Script Hash Gavin Andresen Specification Deployed 17 Consensus (soft fork) OP_CHECKHASHVERIFY (CHV) Luke Dashjr Specification Closed 18 Consensus (soft fork) hashScriptCheck Luke Dashjr Specification Complete 19 Applications M-of-N Standard Transactions (Low SigOp) Luke Dashjr Specification Closed 20 Applications URI Scheme Luke Dashjr Specification Closed 21 Applications URI Scheme Nils Schneider, Matt Corallo Specification Closed 22 API/RPC getblocktemplate - Fundamentals Luke Dashjr Specification Deployed 23 API/RPC getblocktemplate - Pooled Mining Luke Dashjr Specification Deployed 30 Consensus (soft fork) Duplicate transactions Pieter Wuille Specification Deployed 31 Peer Services Pong message Mike Hearn Specification Deployed 32 Applications Hierarchical Deterministic Wallets Pieter Wuille Informational Deployed 33 Peer Services Stratized Nodes Amir Taaki Specification Closed 34 Consensus (soft fork) Block v2, Height in Coinbase Gavin Andresen Specification Deployed 35 Peer Services mempool message Jeff Garzik Specification Deployed 36 Peer Services Custom Services Stefan Thomas Specification Closed 37 Peer Services Connection Bloom filtering Mike Hearn, Matt Corallo Specification Deployed 38 Applications Passphrase-protected private key Mike Caldwell, Aaron Voisine Specification Deployed 39 Applications Mnemonic code for generating deterministic keys Marek Palatinus, Pavol Rusnak, Aaron Voisine, Sean Bowe Specification Deployed 40 API/RPC Stratum wire protocol Marek Palatinus Standard BIP number allocated 41 API/RPC Stratum mining protocol Marek Palatinus Standard BIP number allocated 42 Consensus (soft fork) A finite monetary supply for Bitcoin Pieter Wuille Specification Deployed 43 Applications Purpose Field for Deterministic Wallets Marek Palatinus, Pavol Rusnak Specification Deployed 44 Applications Multi-Account Hierarchy for Deterministic Wallets Marek Palatinus, Pavol Rusnak Specification Deployed 45 Applications Structure for Deterministic P2SH Multisignature Wallets Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia Specification Complete 46 Applications Address Scheme for Timelocked Fidelity Bonds Chris Belcher, Thebora Kompanioni Specification Draft 47 Applications Reusable Payment Codes for Hierarchical Deterministic Wallets Justus Ranvier Specification Deployed 48 Applications Multi-Script Hierarchy for Multi-Sig Wallets Fontaine Specification Deployed 49 Applications Derivation scheme for P2WPKH-nested-in-P2SH based accounts Daniel Weigl Specification Deployed 50 March 2013 Chain Fork Post-Mortem Gavin Andresen Informational Deployed 52 Consensus (hard fork) Durable, Low Energy Bitcoin PoW Michael Dubrovsky, Bogdan Penkovsky Specification Closed 53 Consensus (soft fork) Disallow 64-byte transactions Chris Stewart Specification Draft 54 Consensus (soft fork) Consensus Cleanup Antoine Poinsot, Matt Corallo Specification Complete 60 Peer Services Fixed Length "version" Message (Relay-Transactions Field) Amir Taaki Specification Closed 61 Peer Services Reject P2P message Gavin Andresen Specification Deployed 62 Consensus (soft fork) Dealing with malleability Pieter Wuille Specification Closed 63 Applications Stealth Addresses Peter Todd Standard BIP number allocated 64 Peer Services getutxo message Mike Hearn Specifi
Read the full README on GitHub

What Hacker News says

124 sources
I think bit-aligned encodings (i.e. schemes where the output alphabets have a size that is a power of two) are the sweet-spot for encoding schemes due to simplicity of encoding and decoding compared to non-bit-aligned schemes like base84. Base16 is verbose, but each symbol in the alphabet carries exactly 4 bits (hence why a single byte in hex is two symbols). This is nice for encoding bytes. Base64 requires two non-alphanumeric symbols such as + and / or - and _ because A-Za-z0-9 only provides 62 characters. Each output symbol encodes exactly 6 bits of the original input. But when we're encoding whole bytes we sometimes need to use padding (when the input is not a multiple of 3 bytes and that ambiguity is harmful in the context that decoding occurs in). Then there's Base32, which is what currently seems like a sweet spot to me and is what
Read the rest
I'm considering using for identifiers in my own systems. It only requires 32 characters, so can easily take a range of A-Z0-9 or a-z0-9 excluding visually-similar characters. Like Base64 it can also require padding in some settings. I quite like the general scheme used in the Bech32 and Bech32m framing idea, which allows for a human-readable prefix before a `1` and then the base32 data follows. This can be done because `1` is excluded from the Bech32 alphabet. This prefix can be used to differentiate between kinds of identifier, for example: https://github.com/bitcoin/bips/blob/master/bip-0350.mediawi... But to address the article directly, I'm not sure the complexity is worth the gains in the table in https://github.com/jedisct1/zig-base84#encoding, which states that we save ~6.5% of characters, and for 128 input bytes, the resulting Base64 string is 171 characters, while the Base84 string is 161-166 characters. I also dislike that the chosen alphabet breaks text selection; GitHub very carefully picked their current token formats so that the whole token is selected with a double-click: > One other neat thing about _ is it will reliably select the whole token when you double click on it. Other characters we considered are sometimes included in application word separators and thus will stop highlighting at that character. Try out double clicking this-random-text versus this_random_text! https://github.blog/engineering/platform-security/behind-git... For example, compare double-clicking on the article's Base84 alphabet: > ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&'()+,-;=@[]^_`{}~ with the Bech32 Base32 alphabet: > qpzry9x8gf2tvdw0s3jn54khce6mua7l Regardless though we still have the fundamental issue that bytes encoded as Base16, Base32, Base64, or even Base91/Base84 will be _longer_ when encoded. Base32 can encode up to 159 bytes before hitting a filename limit of 255 bytes. I can't remember whether filenames are 16-bit on Windows (UCS-2? UTF-16?), but I speculate on average that maybe you could save a lot of bytes by first ensuring that filenames are UTF-8 before encrypting them, since filenames on a lot of computeres, especially ones running in the west, likely contain a lot of latin characters. You could even switch between encodings to get the best bit-packing in filenames. At the moment it looks like turbocrypt forbids encrypted filenames that are too long: https://github.com/jedisct1/turbocrypt/blob/4905241d271e84a0... I think turbocrypt could switch to using a surrogate file when an encrypted filename exceeds 255 bytes to allow for encrypting any filename permitted by the filesystem, while still preserving the property that the same filename in a different directory has the same encrypted filename. If an encrypted filename is too long to fit on the filesystem, maybe its hash could be stored as the filename instead (which is extremely unlikely to collide). Then we could store the full encrypted filename in a `.name` file in the same directory. We could do similar for directory names that are too long. We could then use a less dense but bit-aligned encoding scheme like Base32 with an all-lowercase alphabet without any punctuation to make filename text selection straightfoward. We would avoid all case sensitivity traps that can occur with things like Base64 and Base84. Let's pick two filename prefixes, say "tcf1" for "turbocrypt filename" and "tch1" for "turbocrypt filename hash". Then we could have a directory layout like this: tch1q9x8gf2tvdw0 # a file whose encrypted filename exceeds 255 bytes; this filename is a hash of the encrypted filename, e.g. SHA-256. tch1q9x8gf2tvdw0.name # a file whose contents are the full encrypted filename of tch1q9x8gf2tvdw0. tcf1tvdhc6mua7l9x8s3qprz # a file whose encrypted filename does not exceed 255 bytes. gocryptfs follows a similar idea for long filenames: https://github.com/rfjakob/gocryptfs-website/blob/master/doc... Once a system to support long filenames is implemented, the size of the alphabet used for encoding the filenames (like Base84) becomes less important; Base16, Base32, Base64, or another bit-aligned encoding scheme could be used. As a very small added bonus, you could even implement a bit-aligned codec such as base16 or base64 using SIMD via a bunch of swizzling, shifting, bitmasking, and AND/XORing, making it very fast should the need arise.
In Base84 deserves a place in file names
First example I thought of is the titanium punch sheets and wordlists for crypto wallet recovery phrases https://shop.ledger.com/products/cryptotag-zeus and https://github.com/bitcoin/bips/blob/master/bip-0039/bip-003... There is also Microsoft Project Silica which I recall seeing in person at their EBC playing back a movie from it https://www.microsoft.com/en-us/research/project/project-sil... Then there is m-disc which uses the DVD+R and BD-R/BDXL standards but writing to a sort of glass rather than to the traditional medium. These are cool as they play back n regular players too. https://www.mdisc.com/
In Ask HN: Are there examples of 3D printing data onto physical surfaces?
I think that’s backwards: most of the stuff you mentioned is using TLS and can switch to post-quantum algorithms with a config change, and do so incrementally with no user-visible impact - e.g. right now I’m already using PQC for many sites and about half of the traffic Cloudflare sees is using PQC: https://radar.cloudflare.com/adoption-and-usage In contrast, cryptocurrencies have to upgrade the entire network all at once or it’s effectively a painful fork. That effort appears to just be getting talked about now, without even starting to discuss timing: https://github.com/bitcoin/bips/pull/1895
In Willow quantum chip demonstrates verifiable quantum advantage on hardware
Some years ago, I saw a wallet called [Spark](https://sparkwallet.io/) that let you generate a QR-code to view in your Apple Wallet and Apple Watch Wallet. It was for receiving over lightning, not sending. I guess with unified [BIP21](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawi...) QR-codes, anyone can already add a RECEIVING wallet code to Apple Wallet today. I don't think Apple want's to be the middle man in receiving Bitcoin payments though because “tainted” coins exist in the C-suite mind, and they would rather not receive and handle those. But Jack Mallers recently told me he wants to integrate Apple Pay into [Strike](https://strike.me), so who knows, something similar will exist soon.
In Apple Could Add Bitcoin to Apple Wallet
Anything you put elsewhere is not more secure, unless you are more secure than Apple's servers, which seems highly unlikely. If you don't have it, it can't get compromised. The user has an iCloud account, you can write to iCloud storage without making them "sign in" to your app. It's their data, they can find it in the folder for your app in their iCloud drive on a Mac. And see https://developer.apple.com/game-center/ for a way to let two users coordinate "play", multiplayer, turn based, achievements, etc., which cover most of the interaction you'd need. For sharing personality test, a person can do their own and their partner's, but for a better take on the partner you and your partner can each take your own test then generate a sharable fun code that captures the "bits" of the answers without repeating the test. As partners, you coul
Read the rest
d tell each other the sharable code as a NFC bump or QR code to scan, or generate one of the word based codes like bitcoin wallet passwords. See BIP39: https://github.com/bitcoin/bips/blob/master/bip-0039. (This passphrase would be short if the test results distill down to a smaller set of outcomes, like 64 questions give 8 results. It would be long if you need all 64 questions' answers to match with.)
In Show HN: I created an app for you to be a more unpredictable romantic partner
Context: Bitcoin miners have just adopted a 50% pay cut for themselves. This pay cut was baked into Bitcoin protocol at the launch of the network (mostly, see "BIP 42" [1]). The OP link gives information about the block in which this pay cut was made. I get that HN comments tend to dismiss Bitcoin. But the fact that for the fourth time this pay cut has happened without a hitch speaks volumes to what makes Bitcoin interesting: It's a rare combination of economic incentives and technology that keeps chugging. Nobody can stop it. And it's extremely resistant to change. It requires no governmental approval. All attempts at subversion or interference have failed. There aren't many systems that come close to that kind of record. [1] https://github.com/bitcoin/bips/blob/master/bip-0042.mediawi...
In Bitcoin Block 840000
No one controls Bitcoin, because it's a protocol. Bitcoin Core is the reference implementation, but there are others, and anyone can create new implementations if they wish. Also, the Bitcoin Core maintainers can't just change something on a whim, because users would then switch to another fork. Maintainers (or miners or other groups) can't force their changes on users, because everyone can decide on their own which version of the software they want to use. The protocol development happens through BIPs (Bitcoin improvement proposals): https://github.com/bitcoin/bips BIPs are discussed for years, before (and if) they are implemented, and basically everyone needs to agree on them, because no one wants to fork the blockchain, which could be devastating.
In SEC charges Kraken for operating as an unregistered securities exchange

Showing the 15 most recent of 124 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.