Protocol papers
Storage and network papers.
A proof that some bytes are stored is not a proof that the right bytes will be served to a user.
How to read this shelf
Each card opens a study. The study is a reading of a public paper, not the paper and not a description of today's network. Status is a design paper unless the record says historical or failure case.
How to read this page
Research status is named on the page. Primary sources are linked. This is a mechanism and operating note, not investment suitability, legal advice, a security guarantee or an implementation certificate.
Filecoin · 2017 · Design paper
Filecoin: A Decentralized Storage Network
Protocol Labs' July 2017 paper. Storage is an algorithmic market: clients pay miners to store data, miners prove replication and spacetime, and a retrieval market is specified beside the storage market. The historic library's filecoin.pdf is an earlier, different sketch. This is the 2017 document.
Arweave · 2018 · Design paper
Arweave yellow paper
Arweave's protocol paper for permanent storage: miners store a recall block drawn from the history, an endowment is supposed to prepay storage, and the dataset is content-addressed. The yellow paper is the technical document. Marketing pages are not a substitute.
Helium · 2018 · Design paper
Helium: A Decentralized Wireless Network
The Helium paper for a wireless network built from independently owned hotspots. Coverage is the commodity. Proof-of-coverage is the paper's way of checking that a radio is where it says it is and that it can be heard. Later changes of purpose and token are not this document.
Golem · 2016 · Design paper
The Golem Project: crowdfunding white paper
Golem Factory's 2016 paper for a marketplace of spare computer power. Requestors split tasks. Providers run them. A reputation and payment layer is supposed to make the exchange work without a single render farm. The paper is explicit that it was also a crowdfunding document. This page uses the technical design and ignores the sale.
Livepeer · 2017 · Design paper
Livepeer: a decentralised live video streaming network
Petkanics and Tang's design for live video transcoding as a protocol job. Broadcasters send a stream. Transcoders stake and compete to encode the renditions viewers actually need. It is a specific media market, which is why it is more concrete than a general 'decentralised compute' essay.
Basic Attention Token · 2018 · Design paper
Basic Attention Token: Blockchain Based Digital Advertising
Brave's 2018 paper for an advertising unit that pays publishers and users from a measured attention event inside the browser, rather than from a chain of third-party trackers. The browser is load-bearing. The token is the unit of account in the paper's payment flow.
IPFS · 2014 · Design paper
IPFS - Content Addressed, Versioned, P2P File System
Name a file by its hash. Retrieve it from any peer who has the bytes. Version history is a graph of hashes, not a folder on one machine.
Kademlia · 2002 · Design paper
Kademlia: A Peer-to-peer Information System Based on the XOR Metric
Nodes have identifiers. Distance is XOR. Each node keeps contacts in buckets by distance, and a lookup walks toward the target in logarithmic steps.
BIP 31 · 2012 · Design paper
Pong message
BIP 31, Pong message. This document describes a trivial protocol extension that makes it easier for clients to detect dead peer connections.
BIP 47 · 2015 · Design paper
Reusable Payment Codes for Hierarchical Deterministic Wallets
BIP 47, Reusable Payment Codes for Hierarchical Deterministic Wallets. A technique for creating a payment code which can be publicly advertised and associated with a real-life identity without creating the loss of security or privacy inherent to P2PKH address reuse.
BIP 61 · 2014 · Design paper
Reject P2P message
BIP 61, Reject P2P message. A new message type for the Bitcoin peer-to-peer network.
BIP 70 · 2013 · Design paper
Payment Protocol
BIP 70, Payment Protocol. A protocol for communication between a merchant and their customer, enabling both a better customer experience and better security against man-in-the-middle attacks on the payment process.
BIP 111 · 2015 · Design paper
NODE_BLOOM service bit
BIP 111, NODE_BLOOM service bit. This BIP extends BIP 37, Connection Bloom filtering, by defining a service bit to allow peers to advertise that they support bloom filters explicitly.
BIP 123 · 2015 · Design paper
BIP Classification
BIP 123, BIP Classification. This document describes a classification scheme for BIPs.
BIP 130 · 2015 · Design paper
sendheaders message
BIP 130, sendheaders message. Add a new message, "sendheaders", which indicates that a node prefers to receive new block announcements via a "headers" message rather than an "inv".
BIP 133 · 2016 · Design paper
feefilter message
BIP 133, feefilter message. Add a new message, "feefilter", which serves to instruct peers not to send "inv"'s to the node for transactions with fees below the specified fee rate.
BIP 152 · 2016 · Design paper
Compact Block Relay
BIP 152, Compact Block Relay. Compact blocks on the wire as a way to save bandwidth for nodes on the P2P network.
BIP 155 · 2019 · Design paper
addrv2 message
BIP 155, addrv2 message. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [https://tools.ietf.org/html/rfc2119 RFC 2119] .
BIP 158 · 2017 · Design paper
Compact Block Filters for Light Clients
BIP 158, Compact Block Filters for Light Clients. A structure for compact filters on block data, for use in the BIP 157 light client protocol bip-0157.mediawiki .
BIP 159 · 2017 · Design paper
NODE_NETWORK_LIMITED service bit
BIP 159, NODE_NETWORK_LIMITED service bit. Define a service bit that allows pruned peers to signal their limited services.
BIP 322 · 2018 · Design paper
Generic Signed Message Format
BIP 322, Generic Signed Message Format. A standard for interoperable signed messages based on the Bitcoin Script format, either for proving availability of funds, or for committing to a message as the intended recipient of funds sent to the invoice address.
BIP 325 · 2019 · Design paper
Signet
BIP 325, Signet. A new type of test network where signatures are used in addition to proof of work for block progress, enabling much better coordination and robustness (be reliably unreliable), for persistent, longer-term testing scenarios involving multiple independent parties.
BIP 339 · 2020 · Design paper
WTXID-based transaction relay
BIP 339, WTXID-based transaction relay. Two changes to the p2p protocol to support transaction relay based on the BIP 141 wtxid of a transaction, rather than its txid.
BIP 381 · 2021 · Design paper
Non-Segwit Output Script Descriptors
BIP 381, Non-Segwit Output Script Descriptors. This document specifies pk() , pkh() , and sh() output script descriptors.
BIP 384 · 2021 · Design paper
combo() Output Script Descriptors
BIP 384, combo() Output Script Descriptors. This document specifies combo() output script descriptors.
EIP 627 · 2017 · Design paper
Whisper Specification
EIP 627, Whisper Specification. The format of Whisper messages within the ÐΞVp2p Wire Protocol.
EIP 706 · 2017 · Design paper
DEVp2p snappy compression
EIP 706, DEVp2p snappy compression. The base networking protocol (DEVp2p) used by Ethereum currently does not employ any form of compression.
EIP 1193 · 2018 · Design paper
Ethereum Provider JavaScript API
EIP 1193, Ethereum Provider JavaScript API. A common convention in the Ethereum web application ("dapp") ecosystem is for key management software ("wallets") to expose their API via a JavaScript object in the web page.
EIP 2124 · 2019 · Design paper
Fork identifier for chain compatibility checks
EIP 2124, Fork identifier for chain compatibility checks. Currently nodes in the Ethereum network try to find each other by establishing random connections to remote machines "looking" like an Ethereum node (public networks, private networks, test networks, etc), hoping that they found a useful peer (same genesis, same forks).
EIP 2464 · 2020 · Design paper
eth/65: transaction announcements and retrievals
EIP 2464, eth/65: transaction announcements and retrievals. Three additional message types into the eth protocol (releasing a new version, eth/65): NewPooledTransactionHashes (0x08) to announce a set of transactions without their content; GetPooledTransactions (0x09) to request a batch of transactions by their announced hash; and PooledTransactions (0x0a) to reply to a transaction request.
EIP 2481 · 2020 · Design paper
eth/66 request identifier
EIP 2481, eth/66 request identifier. The eth protocol defines various request and response commands that are used to exchange data between Ethereum nodes.
EIP 2696 · 2020 · Design paper
JavaScript `request` method RPC transport
EIP 2696, JavaScript `request` method RPC transport. A standard for remote procedure calls between an Ethereum Provider and an Ethereum Client when both are able to interface with each other via a shared JavaScript object.
EIP 2976 · 2020 · Design paper
Typed Transactions over Gossip
EIP 2976, Typed Transactions over Gossip. Typed Transactions can be sent over devp2p as TransactionType || TransactionPayload.
EIP 6122 · 2022 · Design paper
Forkid checks based on timestamps
EIP 6122, Forkid checks based on timestamps. EIP-2124 proposed a way of identifying nodes on the p2p network based on their chain configuration via the forkid parameter.
EIP 6963 · 2023 · Design paper
Multi Injected Provider Discovery
EIP 6963, Multi Injected Provider Discovery. An alternative discovery mechanism to window.ethereum for EIP-1193 providers which supports discovering multiple injected Wallet Providers in a web page using Javascript's window events.
EIP 7642 · 2024 · Design paper
eth/69 - history expiry and simpler receipts
EIP 7642, eth/69 - history expiry and simpler receipts. This EIP modifies the 'eth' p2p protocol to announce the historical block range served by the node.
ERC 3448 · 2021 · Design paper
MetaProxy Standard
ERC 3448, MetaProxy Standard. By standardizing on a known minimal bytecode proxy implementation with support for immutable metadata, this standard allows users and third party tools (e.g.
ERC 3643 · 2021 · Design paper
T-REX - Token for Regulated EXchanges
ERC 3643, T-REX - Token for Regulated EXchanges. The T-REX token is an institutional grade security token standard.
ERC 5615 · 2023 · Design paper
ERC-1155 Supply Extension
ERC 5615, ERC-1155 Supply Extension. This ERC standardizes an existing mechanism to fetch token supply data from ERC-1155 tokens.
ERC 7818 · 2024 · Design paper
Expirable ERC-20
ERC 7818, Expirable ERC-20. Introduces an extension for ERC-20 tokens, which facilitates the implementation of an expiration mechanism.
BIP 178 · 2018 · Design paper
Version Extended WIF
BIP 178, Version Extended WIF. An extension to the Wallet Import Format (WIF) to specify what kind of bitcoin address the private key corresponds to.
BIP 330 · 2019 · Design paper
Transaction announcements reconciliation
BIP 330, Transaction announcements reconciliation. This document specifies a P2P protocol extension for reconciliation of transaction announcements between 2 nodes , which is a building block for efficient transaction relay protocols (e.g., [https://arxiv.org/pdf/1905.10518.pdf Erlay]).
BIP 331 · 2022 · Design paper
Ancestor Package Relay
BIP 331, Ancestor Package Relay. Peer-to-peer protocol messages enabling nodes to request and relay the unconfirmed ancestor package of a given transaction, and to request and relay transactions in batches.
EIP 7975 · 2025 · Design paper
eth/70 - partial block receipt lists
EIP 7975, eth/70 - partial block receipt lists. This EIP modifies the 'eth' p2p protocol to allow requesting partial block receipt lists.
EIP 8159 · 2026 · Design paper
eth/71 - Block Access List Exchange
EIP 8159, eth/71 - Block Access List Exchange. This EIP modifies the 'eth' p2p protocol to support Block-level Access Lists (BALs).
EIP 8189 · 2026 · Design paper
snap/2 - BAL-Based State Healing
EIP 8189, snap/2 - BAL-Based State Healing. This EIP upgrades the snap protocol from version 1 to version 2, removing GetTrieNodes (0x06) / TrieNodes (0x07) and adding GetBlockAccessLists (0x08) / BlockAccessLists (0x09) to enable BAL-based state healing during snap sync.
