Marketplace module (blvm-marketplace)
Optional module discovery, registry, and payment integration for blvm-node. Most operators use [modules].registry_url bootstrap (GitHub Releases + modules.json) without loading this module.
Overview
blvm-marketplace can:
- Serve or proxy module registry metadata (legacy:
[modules.blvm-marketplace] registry_urlfallback when top-level[modules].registry_urlis unset) - Handle paid module installs and revenue split logic when payment features are enabled
- Respond to
fetch_moduleinter-module calls whenloadmodulemarketplace auto-fetch is enabled (opt-in, off by default)
Repository: BTCDecoded/blvm-marketplace
Requirements
blvm-nodewith the module system enabled.- Payment flows require compile-time
bip70-http/ payment processor wiring on the node (blvmdefault features; omitted from portable Windows/aarch64 release builds). - Not required for standard registry bootstrap of pinned modules — use Installing modules instead.
Loading
Optional pin (only if you use marketplace discovery/payments):
[modules]
registry_url = "https://raw.githubusercontent.com/BTCDecoded/blvm/main/registry/modules.json"
blvm-marketplace = "0.1.*"
Legacy registry URL placement (still supported when [modules].registry_url is omitted):
[modules.blvm-marketplace]
registry_url = "https://example.com/modules.json"
Prefer [modules].registry_url for bootstrap — see Configuration reference.
loadmodule and marketplace auto-fetch
By default, loadmodule "some-module" only loads modules already on disk under [modules].modules_dir. If the module is missing locally, RPC returns an error — marketplace auto-fetch is disabled.
When marketplace auto-fetch is enabled ([modules].marketplace_fetch_enabled = true, default false), the node may call blvm-marketplace via inter-module IPC (fetch_module) before retrying local discovery. Requires blvm-marketplace loaded.
Operator default: pin modules in blvm.toml, use registry bootstrap at startup, or blvm load <name> after placing binaries manually — do not rely on remote auto-fetch over RPC unless you explicitly enable and trust it.