⛓️ ONCHAIN

Public Key

NetworkPrefixLength(Genesis) Example
Mainnet04130 symbols.
Testnet304130 symbols.
0266 symbols.
0366 symbols.
Signet04130 symbols.
Testnet4?66 symbols.
Drawbacks
Direct public key exposure
Big data ≈ more expensive
Unhashed Public Key is the original method of receiving Onchain transaction, which at that time does not involve address encoding.

Public Key Hash [Legacy]

NetworkPrefixLength(Genesis) Example
Mainnet126 ~ 34 symbols.
Testnet3m34 symbols.
n34 symbols.
Signetm34 symbols.
n34 symbols.
Testnet4m34 symbols.
n34 symbols.
ImprovementsDrawbacks
No direct public key exposureMixing uppercase & lowecase
Less data than pubkey ≈ less cost
Public Key Hash addresses are typically 34 or 33 characters in length and they are encoded in Base58 format. Creating a public key hash address involves hashing a public key through hash functions SHA-256 and RIPEMD-160.

BIP13 Script Hash [Script/Nested SegWit]

NetworkPrefixLength(Genesis) Example
Mainnet334 symbols.
Testnet3235 symbols.
Signet235 symbols.
Testnet4235 symbols.
ImprovementsDrawbacks
Invented complex spending conditionMixing uppercase & lowecase
Script Hash addresses are exactly 34 characters in length, and they are encoded in Base58 format. Script Hash addresses share a lot of similarities with Legacy address. The main difference is that the address is created by hashing a redeem script instead of hashing a public key.
A redeem script can be thought of as coded instructions specifying how bitcoin received to the Script address can be spent in the future. The most common uses for Script address have been to create Nested SegWit addresses & multisig wallets.

BIP173 Witness Public Key Hash [SegWit]

NetworkPrefixLength(Genesis) Example
Mainnetbc1q42 symbols.
Testnet3tb1q42 symbols.
Signettb1q42 symbols.
Regtestbcrt1q44 symbols.
Testnet4tb1q42 symbols.
Improvements
No longer case-mixed
Discounted transaction size
Witness Public Key Hash addresses are exactly 42 characters in length, and they are encoded in Bech32 format. WPKH is the SegWit variant of Legacy address which was introduced to bitcoin upon the SegWit hard fork in August 2017.

BIP173 Witness Script Hash [SegWit Script]

NetworkPrefixLength(Genesis) Example
Mainnetbc1q62 symbols.
Testnet3tb1q62 symbols.
Signettb1q62 symbols.
Testnet4tb1q62 symbols?
Improvements
No longer case-mixed
Discounted transaction size
Enabled Lightning Network
Supports complex spending condition
Witness Script Hash addresses are exactly 62 characters in length, and they are encoded in Bech32 format. WSH is the SegWit variant of Script address.

BIP350 Taproot [Taproot]

NetworkPrefixLength(Genesis) Example
Mainnetbc1p62 symbols.
Testnet3tb1p62 symbols.
Signettb1p62 symbols.
Testnet4tb1p62 symbols.
Taproot addresses are exactly 62 characters in length, and they are encoded in Bech32m format (slightly modified version of Bech32). While SegWit and SegWit Script are known as SegWit V0, Taproot is considered SegWit V1. Taproot address was made available by the Taproot soft-fork in November 2021.
Improvements
Lighter & more private multisig
More customizable spending condition
Simple Taproot Channel
FROST
Taproot Swap
Swaproot
Ark & Mercury

Confidential Address

ImprovementsDrawbacksAdoption Tracker
Concealing address balanceBigger tx sizeLiquid
Confidential Address allows spender & receiver to transact without anyone else being able to view the amount transacted. Although amounts are confidential by default, the cryptography used still retains the ability for nodes to validate that the transaction does not inflate the supply of the asset being transacted.
Only the receiver alone can decrypt the amount sent in a transaction. However, the receiver has the option to share the private blinding key for a particular transaction to any third party.
Documentation
Adam Back's post
Liquid Features and Benefits
Guide to Confidential Transactions
Elements Code Tutorial : Confidential Transactions
Confidential Transaction Whitepaper
An Investigation to Confidential Transaction

Stealth Address

ImprovementsDrawbacksAdoption Tracker
(Foolproof?) static address?Monero
Darkwallet
Stealth Address allows receiver to publish a static address that spender can send funds privately and non-interactively. Spender do not learn what other payments have been made to the Stealth Address, and third-parties learn nothing at all.
Documentation
Peter Todd's post
What Is A Bitcoin Stealth Address?

BIP47 PayNym

ImprovementsDrawbacksAdoption Tracker
(Foolproof?) static addressOffchain communication#538747
Connection transaction
PayNyms are exactly 116 characters in length, and they are encoded in Base58 format. Every PayNym details will always begin with prefix PM8T. V1 & V2 PayNym uses Legacy address but V3 & V4 can use other address variant.
Documentation
Bitcoin Improvement Proposal 47 (v1 & v2)
OBPP RFC 1 (v1)
OBPP RFC 5 (v3 & v4)
Bitcoiner Guide : PayNym
What is A Bitcoin PayNym

BIP352 Silent Address

ImprovementsDrawbacksAdoption Tracker
Foolproof static addressBarely adoptedSilentium
Silent Addresses are exactly 116 characters in length, and they are encoded in modified version of Bech32 format. Every Silent Address will always begin with prefix sp1q. Address output generated is always Taproot address.
Documentation
Bitcoin Improvement Proposal 352
Silent Payment overview explainer
Silent Payment explainer

Whisper Address

ImprovementsDrawbacksAdoption Tracker
Blacklist-resistanceOffchain communication
Whisper addresses are bitcoin addresses that are created by combining ≥ 2 pubkeys to get a new pubkey (the Whisper Address). The only way to get the whisper address's private key is to add together the original private keys
Documentation
Whisper Address repo
Whisper Address website
#SATSx Hackathon by Pleb Lab - Day 2 : Winners Announced!
What Are Bitcoin Whisper Addresses?
🤯 Super Testnet cooks Whisper Addresses for Bitcoin

⚡ LIGHTNING

BOLT11 Invoice

ImprovementsDrawbacks
Faster (unsettled) txNeed sufficient path
Cheaper (pay-per-hop) txReceiver need to be online
More private txContinuous cycle of generating invoice
Some other risks
Invoice is a one-time payment destination natives to Lightning Network. An invoice can have fixed payment amount requested or flexible amount requested in which the spender can pay it with any amount. Lightning invoices are structured as :
lnbc690n1pnyap93pp5xzjehedrxverc9xczn3yz7gukawtjma0j6jvnr6skgu27ck2vxxsdqqcqzzsxqyz5vqsp5f7yysqltwff8xrp24ff72z85pfsj4cr229kkfdtxewtjr2xr665q9qyyssqkejl4nsxvkgvumglh4md6h73nfr4rq3lle3wn68jd52t9lw8kytrdk7ezpmzktrvcz2lps4j4u8wdvdhqn99avxc04ycfp53dl8mmzqpqwetjx
PrefixNetworkAmount
lnbc690n
Lightning NetworkBitcoin Mainnet690 nanoBitcoin = 69 sats
SeparatorTimestamp
1pnyap93
1716421809 = 2023-05-22 23:50:09
Payment Hash
pp5xzjehedrxverc9xczn3yz7gukawtjma0j6jvnr6skgu27ck2vxxs
30a59be5a333323c14d814e241791cb75cb96faf96a4c98f50b238af62ca618d
NoteMinimum CLTV Final ExpiryExpiry Time
dqqcqzzsxqyz5vq
(none)8086400 seconds
Secret
sp5f7yysqltwff8xrp24ff72z85pfsj4cr229kkfdtxewtjr2xr665q
4f884803eb7252730c2aaa53e508f40a612ae06a516d64b566cb9721a8c3d6a8
Feature Bits
9qyyssq
00100100001000000000
Signature
kejl4nsxvkgvumglh4md6h73nfr4rq3lle3wn68jd52t9lw8kytrdk7ezpmzktrvcz2lps4j4u8wdvdhqn99avxc04ycfp53dl8mmzqp
b665face066590ce6d1fbd76dd5fd19a4751823ffe62e9e8f26d14b2fdc7b11636dbd910762b2c6cc095f0c2b2af0ee6b1b704ca5eb0d87d498486916fcfbd8801
Checksum
qwetjx
Documentation
Basis of Lightning Technology
Builder's Guide : Understanding Lightning Invoices
Some of these LNURL decoders

BLIP3 Keysend

ImprovementsDrawbacksAdoption Tracker
Faster (unsettled) txNeed sufficient path#538747
Cheaper (pay-per-hop) txReceiver need to be online
More private txNeed route hints (for private node)
Invoice-less UXNo proof of payment
Some privacy concernsSome other risks
Keysend is a type of lightning payment that does not require the receiver to provide an invoice. Instead, the spender includes their selected payment preimage in the TLV onion. Keysend does not require the receiver to provide an invoice but directly to their public key, as long as their node has public channels and has Keysend enabled. Additional route hints is need to navigate through private channel (such as private node behind LSP).
Documentation
Bitcoin Lightning Improvement Proposal 3
Builder's Guide : Send Message with Keysend
Bitcoin Optech : Spontaneous Payment
What is A Keysend Payment
Keysend Payments Explained

LUD16 Lightning Address

ImprovementsDrawbacksAdoption Tracker
Faster (unsettled) txNeed sufficient path#538747
Cheaper (pay-per-hop) txReceiver need online server.
More private txSome other risks
Invoice-less UX
Easily human-readable
"Like an email address, but for your Bitcoin". Lightning Address is human-readable Internet identifier that allows easier transaction experience over the Lightning Network. No scanning of QR codes or pasting invoices necessary.
Documentation
Lightning Address website
LUD16
Getting Started with Lightning Address
What is A Lightning Email Address
Dunder LSP and Lightning Box Provider
Zaplocker: a non-custodial lightning address server
ZEUS PAY self-custodial lightning addresses

BOLT12 Offers

ImprovementsDrawbacksAdoption Tracker
Faster (unsettled) txNeed sufficient path.
Cheaper (pay-per-hop) txReceiver need to be online
Much more private txSome other risks
Static invoice
Does not require server
Offers are static invoice with many more features. Offers provide a more dynamic and reusable alternative to traditional invoices, enabling automatic invoice generation, recurring payments, and improved privacy. Some BOLT12 features, such as recurring invoices and blinded payment paths are already available as experimental options in Core Lightning.
Documentation
Offers: Lightning's Native Experience, Everywhere
Bitcoin Optech : Offers
BOLT12 Has Arrived
What Are Lightning Offers (BOLT 12)
BOLT12 - Natively Enchancing Lightning's UX

🚢 ARK

Witness Public Keys Hash (?)

PrefixLength
ark1q116 symbols
Ark addresses (that i know of) are 116 characters in length and they are encoded in slightly modified version of Bech32 format. If i'm not wrong, Ark Address creation requires 2 public keys from user's own pubkey + ASP's own pubkey. Here's one example of an Ark address :
ark1qgvdtj5ttpuhkldavhq8thtm5auyk0ec4dcmrfdgu0u5hgp9we22vqa7mdkrrulzu48law4zzvzz8k59hul0ayl2urt905we5wf6gee68sfrfj35
Documentation
Ark introduction website
Ark repo
Arkdev Info
What is The Bitcoin Ark Layer

🪐 MERCURY

Witness Public Keys Hash (?)

PrefixLength
ml1q116 symbols
Mercury addresses (that i know of) are 116 characters in length and they are encoded in slightly modified version of Bech32 format. If i'm not wrong, Mercury Address creation requires 2 public keys from user's own pubkey + SE's own pubkey. Here's one example of a Mercury address :
ml1qqp3t4dvnnpams7zf7thydpxnmr05h65na3y2zyugh6l9cvm8wsgvsgz5cr75fuh0dauy2lqa5n84vvgkfpzqjm27f2s0hdk87eqyxgujcdqdeu7nn
Documentation
Mercury Layer repo
Mercury Layer website
What are Bitcoin Statechains