Skip to content

Rogzy-DB/BIP-visualizator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BIP Visualizator

A visual exploration tool for Bitcoin Improvement Proposals (BIPs). Understand how BIPs evolve over time, their relationships, governance dynamics, and their impact on the Bitcoin protocol.

BIP Visualizator Preview

Features

BIP Explorer

  • Interactive Graph Visualization - D3.js force-directed graph showing BIP relationships
  • Timeline Navigation - Slide through time (2011-2026) to see BIP evolution
  • Category Filters - Filter by layer: Consensus, Peer Services, API/RPC, Applications, Process
  • Advanced Filtering - Filter by status, layer, and author (sorted by contribution count)
  • Search - Real-time search by BIP number, title, status, or layer
  • Color-Coded Status - BIP cards have subtle background colors indicating their status
  • 188 BIPs Included - Full dataset from the official bitcoin/bips repository, enriched with bips.dev metadata

Detail Pages

  • Technical abstract and ELI5 (Explain Like I'm 5) explanations
  • Author information with links
  • Related BIPs (requires/enables) with clickable links
  • Status and activation dates
  • Governance activity card (commits, contributors per BIP)

Governance Dashboard

  • Power Concentration Metrics - Gini coefficient of commit authorship, top-3 merge share
  • Review Quality Tracking - Zero-review merge rates over time
  • Governance Events Timeline - Key moments (UASF, SegWit, Taproot) with linked BIPs
  • Era Summary - Bitcoin development eras from Satoshi to Modern
  • Yearly BIP Creation Chart - Bar chart of BIP creation over time

Quick Start

Option 1: Local Server (Recommended)

For the complete dataset with all 188 BIPs:

# Using Python
python -m http.server 8000

# Using Node.js
npx serve

# Then open http://localhost:8000

Option 2: Direct Browser (Limited)

Simply open index.html in your browser. Falls back to embedded data with 8 key BIPs if server is not available.

# Windows
start index.html

# macOS
open index.html

# Linux
xdg-open index.html

Option 3: Fetch Latest Data

To update BIP and governance data from upstream sources:

# Fetch all BIPs from bitcoin/bips
node scripts/fetch-bips.js
node scripts/parse-bips.js

# Enrich with data from bips.dev (GitHub links, comments, licenses)
node scripts/fetch-bips-dev.js
node scripts/merge-bips-dev.js

# Add any new BIPs that exist in bips.dev but not locally
node scripts/add-missing-bips.js

# Governance data pipeline
node scripts/curate-governance-findings.js
GITHUB_TOKEN=ghp_xxx node scripts/fetch-governance-github.js
node scripts/merge-governance-data.js

Project Structure

BIP-visualizator/
├── index.html                 # Main visualization page
├── README.md                  # This file
├── LICENSE                    # MIT License
├── data/
│   ├── bips/
│   │   ├── index.json         # BIP index (188 BIPs)
│   │   └── bip-XXXX/          # Individual BIP folders
│   │       ├── bip.yml        # Metadata (status, authors, relations)
│   │       └── en.md          # Content (abstract, ELI5, links)
│   └── bips-dev-raw/          # Enrichment data from bips.dev
│       └── index.json         # Cached enrichment data
├── scripts/
│   ├── fetch-bips.js              # Fetch BIPs from bitcoin/bips GitHub
│   ├── parse-bips.js              # Parse mediawiki to yml/md
│   ├── fetch-bips-dev.js          # Fetch enrichment from bips.dev
│   ├── merge-bips-dev.js          # Merge enrichment into database
│   ├── add-missing-bips.js        # Add new BIPs from bips.dev
│   ├── curate-governance-findings.js  # Extract governance metrics
│   ├── fetch-governance-github.js     # Per-BIP GitHub commit data
│   └── merge-governance-data.js       # Merge governance into single file
├── data/
│   ├── bips/                  # 188 BIP folders (bip.yml + en.md)
│   ├── bips-dev-raw/          # Cached bips.dev enrichment data
│   └── governance/            # Governance research data
│       ├── findings.json      # Curated governance findings
│       └── governance.json    # Merged governance data for frontend
├── docs/
│   ├── ARCHITECTURE.md        # Technical architecture
│   ├── CONTRIBUTING.md        # Contribution guidelines
│   └── DATA-GUIDE.md          # Data format documentation
└── src/
    ├── bip-detail.html        # BIP detail page
    ├── css/
    │   ├── style.css          # Main styles (dark theme)
    │   └── detail.css         # Detail page styles
    └── js/
        ├── app.js             # Main application
        ├── bips-data.js       # Embedded BIP data (fallback)
        ├── data-loader.js     # Data loading utilities
        ├── detail.js          # Detail page logic
        ├── filters.js         # Category filter component
        ├── governance-loader.js   # Governance data access layer
        ├── governance.js          # Governance dashboard UI
        ├── graph.js           # D3.js graph visualization
        └── timeline.js        # Timeline slider component

Data Schema

bip.yml (Metadata)

bip: 32
title: "Hierarchical Deterministic Wallets"
layer: "Applications"              # Applications | Consensus (soft fork) | Peer Services
type: "Informational"              # Informational | Standards Track | Process
status: "Final"                    # Draft | Proposed | Final | Active | Withdrawn | Rejected | Replaced
authors:
  - name: "Pieter Wuille"
    email: "pieter.wuille@gmail.com"
created: "2012-02-11"
activated: null                    # Date when activated (for consensus changes)
withdrawn: null
license: "BSD-2-Clause"
github: "https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki"
comments_uri: "https://github.com/bitcoin/bips/wiki/Comments:BIP-0032"
comments_summary: "No comments yet."
relations:
  requires: []                     # BIPs this one depends on
  replaces: []                     # BIPs this one supersedes
  superseded_by: []                # BIPs that replace this one
  enables: [39, 44, 84]            # BIPs that depend on this one (auto-computed)
tags:
  - "wallet"
  - "key-derivation"

en.md (Content)

# Abstract
Technical description of the BIP...

# ELI5
Simple explanation for beginners...

# Motivation
Why this BIP was proposed...

# Links
- [Official BIP](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)

Status Colors

BIP cards in the list have subtle background colors based on their status:

Status Background Description
Final/Active Light Green Accepted and implemented
Proposed Light Yellow Ready for community review
Draft Light Gray Initial proposal
Withdrawn/Deferred Light Slate Abandoned or postponed
Rejected/Replaced Light Red Not accepted or superseded

Hovering over a BIP card shows the full status name as a tooltip.

Tech Stack

  • Frontend: Vanilla HTML/CSS/JavaScript (no frameworks)
  • Graph: D3.js v7 for force-directed relationship graph
  • Charts: Chart.js for governance bar charts
  • Data Parsing: js-yaml for YAML
  • Markdown: marked for rendering
  • Styling: CSS custom properties (dark theme)

Browser Support

  • Chrome/Edge 80+
  • Firefox 75+
  • Safari 13+

Contributing

Adding ELI5 Explanations

The most valuable contribution is writing simple explanations for BIPs:

  1. Pick a BIP without an ELI5
  2. Edit data/bips/bip-XXXX/en.md
  3. Add a clear, jargon-free explanation under # ELI5
  4. Submit a PR

Translations

Content supports multiple languages:

  • en.md - English (default)
  • fr.md - French
  • es.md - Spanish
  • etc.

Data Sources

Learn More

Visit Plan B Academy for more Bitcoin education.

License

MIT License - See LICENSE for details.

Credits

Created with <3 by Rogzy and Claude

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors