Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Bitview and the Bitcoin Research Kit

MIT LicensedBitviewBRKSupported by OpenSatsDiscord

This monorepo contains two layers:

  • Bitcoin Research Kit (BRK): reusable Rust primitives for reading Bitcoin Core data, RPC, mempool tracking, storage, domain types, and the on-chain price oracle.
  • Bitview: the self-hostable application that composes BRK with a typed indexer and analytics plugin graph, query layer, REST server, website, and generated clients.

Together they turn a Bitcoin Core node into a local Bitcoin data platform for chain exploration, mempool data, and on-chain research. The official free hosted instance is bitview.space.

Bitcoin Core ──> BRK reader, RPC, and mempool ──> Bitview plugins
│
v
Query + REST server
│ │ │
v v v
Website Clients MCP

See Architecture for the component and data-flow details.

Repository map

PathPurpose
crates/brk and crates/brk_*BRK umbrella crate and reusable Bitcoin primitives
crates/bitview_plugin_*Official indexing and analytics plugins
crates/bitview*Plugin contract, runtime, composition, query/server stack, daemon, code generation, and Rust clients
crates/{vecdb,rawdb,byteview,fjall,lsm-tree}Storage and data infrastructure
examples/custom_pluginRunnable external-plugin and custom-composition example
modules/bitview-clientJavaScript/TypeScript client
packages/bitview_clientPython client
website* and experimentsBrowser applications and research visualizations
docs, benches, docker, and scriptsProject documentation, measurements, packaging, and maintenance tooling

Each publishable crate or client owns its detailed usage documentation. The main README is only the map and common entrypoint.

Use Bitview

The hosted website, API, and MCP endpoint require no account or authentication:

curl https://bitview.space/api/mempool/price
curl https://bitview.space/api/series/count

The series catalog is discovered at runtime rather than documented as a hard-coded count. Use /api/series/search?q=<concept> to find identifiers.

Self-host Bitview

rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd

The default composition requires Linux or macOS, a Bitcoin Core node with RPC and readable blk*.dat files, about 290 GiB for Bitview plus Bitcoin Core storage and growth headroom, and 16 GB of RAM recommended for a full sync. The website and API listen on localhost:3110.

Bitview uses sparse files, so logical size is much larger than allocated disk space. Use du -sh ~/.bitview to measure actual usage.

See the bitviewd guide for installation, configuration, initial sync, storage, and custom compositions.

Build with BRK

Use the umbrella crate for BRK primitives without the full Bitview application:

[dependencies]
brk = { version = "0.11", features = ["reader", "rpc", "types"] }

See the brk crate guide for its feature map. For a new Bitview metric or composition, start with the custom plugin example and the bitview_plugin contract.

Develop

The repository pins its Rust toolchain in rust-toolchain.toml.

cargo check --workspace
cargo test --workspace

Documentation

Support and community

BRK is supported by OpenSats from December 2024 through June 2027.

Discord · X · Issues · Support

Bitcoin donation QR code

bc1pkqvzn3pepug695xtvwmpm0sjd6n9j55v792cwfruzkqzrf2jn47s3hq0ts

License

MIT

Releases

Packages

Used by

Contributors

Languages