nbobtc/bitcoind-bundle
Symfony bundle that integrates the nbobtc/bitcoind-php client with Bitcoin Core’s JSON-RPC API, simplifying connection configuration and service injection so Symfony apps can query the daemon for blockchain and wallet operations.
BitcoinRpcClient) so the client library, node provider, or even chain can be swapped without product rework.-txindex, reorg handling, credential exposure, RPC deprecation) so they land on the roadmap as owned workstreams rather than launch-week surprises.Consider it (as a reference, not a dependency) when:
bitcoind, and the need is narrow: config, service wiring, RPC passthrough.nbobtc/bitcoind-php client and re-bind it as a Laravel service provider — the bundle's service definitions are trivial to reproduce.Look elsewhere when:
Bundle expecting the Symfony kernel; it does not fit Laravel's service container. Consume the client library directly or use a maintained Laravel wrapper.Recommendation: Treat as a reference implementation and a teaching artifact for RPC wiring, never as an adoption candidate. Budget for a maintained client library behind a first-party interface, plus node operations as a separately costed workstream.
For executives: This is a small, MIT-licensed Symfony2 bundle that connects a PHP app to a self-hosted Bitcoin node via JSON-RPC. It is free to license and cheap to evaluate, but it carries essentially no ecosystem validation (15 stars, zero dependents), targets a framework that reached end-of-life in 2018, and is not usable in a Laravel codebase. Recommendation: do not make it a production dependency. Approve at most a short spike that uses it as a reference for sizing; the real investment is the node — roughly a terabyte of fast storage, a multi-day sync, and ongoing operations — not the PHP code, which is measured in days. If BTC acceptance is on the roadmap, fund a maintained client behind our own interface and default to a managed node provider, with self-hosting as an explicit, separately costed option.
For engineering: The bundle is ~4 files of DI glue around nbobtc/bitcoind-php — no domain model, no transport abstraction, no maintenance. Do not install it. Instead: (1) vendor or pin the underlying client and accept a fork; (2) define our own narrow BitcoinRpcClient interface covering only the methods we actually call, and implement it against that client — this is the highest-value decision, because it makes the library swappable and the RPC surface auditable, and gives us one place for logging, metrics, timeouts, and retries; (3) bind it as a Laravel singleton with credentials from the secret manager, a health check, and a circuit breaker; (4) keep the provenance in a commit message and nothing else. Before any code, map every intended RPC call against the specific Bitcoin Core version the node runs — getinfo, getaccount*, move, and sendfrom are gone or deprecated, and signrawtransaction is now signrawtransactionwithwallet. Sequence regtest spike → interface + adapter + observability → node ops runbook and testnet rehearsal (including a deliberate reorg and restart) → production read paths with a managed-provider failover. Wallet and write paths, if needed at all, land later and behind a separate review. Assume zero upstream support: budget ~0.1–0.2 FTE for dependency stewardship, and nominate a standing owner for "Core upgrade review" — RPC deprecations, not launch bugs, are what bite teams two years in.
How can I help you explore Laravel packages today?