Technology moves fast! ⚡ Don't get left behind.🚶 Subscribe to our mailing list to keep up with latest and greatest in open source projects! 🏆

Subscribe to our mailing list


Javascript bitcoin library for node.js and browsers

Subscribe to updates I use bcoin

Statistics on bcoin

Number of watchers on Github 1563
Number of open issues 89
Average time to close an issue 4 months
Main language JavaScript
Average time to merge a PR 15 days
Open pull requests 56+
Closed pull requests 43+
Last commit over 1 year ago
Repo Created almost 5 years ago
Repo Last Updated about 1 year ago
Size 21.6 MB
Organization / Authorbcoin-org
Page Updated
Do you use bcoin? Leave a review!
View open issues (89)
View bcoin activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating bcoin for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


NOTE: The latest release of bcoin contains a non-backward compatible change to the rest API. Please read the changelog's migrating section for more details.

Bcoin is an alternative implementation of the bitcoin protocol, written in node.js.

Although still in a beta state, bcoin is well tested and aware of all known consensus rules. It is currently used in production as the consensus backend and wallet system for


  • Full Node
  • SPV Node
  • Wallet Backend (bip44 derivation)
  • Mining Backend (getblocktemplate support)
  • Layer 2 Backend (lightning)
  • General Purpose Bitcoin Library

Try it in the browser:


$ git clone git://
$ cd bcoin
$ npm install
$ ./bin/bcoin

See the Beginner's Guide for more in-depth installation instructions.


  • API Docs:
  • REST Docs:
  • Docs: docs/


Join us on freenode in the #bcoin channel.


Bcoin does not guarantee you against theft or lost funds due to bugs, mishaps, or your own incompetence. You and you alone are responsible for securing your money.

Contribution and License Agreement

If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work. </legalese>


  • Copyright (c) 2014-2015, Fedor Indutny (MIT License).
  • Copyright (c) 2014-2017, Christopher Jeffrey (MIT License).

See LICENSE for more info.

bcoin open issues Ask a question     (View All Issues)
  • over 2 years Int16Array.of() is not well supported across platforms.
  • over 2 years Force push on master
  • over 2 years Compatibility with bitcore-node
  • over 2 years Wallet design: multi-wallet woes
  • over 2 years Bad k in schnorr.sign
  • over 2 years SPV node fails to sync on testnet
  • over 2 years Use LMDB by default for the wallet
  • over 2 years Prioritization for mining
  • over 2 years Support hardware signing
  • over 2 years React Native support
  • over 2 years wallet: add a new system of locks that allows better zeroing of hd keys.
  • over 2 years Consider flowtype
  • over 2 years Uncaught AssertionError: "undefined" == true
  • over 2 years Create an Examples Folder
  • over 2 years what is BCOIN_API_KEY? or how I can get the BCOIN_API_KEY?
bcoin open pull requests (View All Pulls)
  • Fix minor var errors
  • Adds testnet support
  • Normalize the peer addr tracking
  • testnet support
  • Add `level-js` as a dependency
  • use exposed 'connect' function for pool in 'bin/node'
  • utils: expose assert
  • node: add plugin system. see #92 and #97.
  • Add simple plug-in management
  • Achieve compatibility with bitcore-node
  • moved level-js dependency to dependencies rather than devDependencies
  • browser: bundle browser example with webpack
  • Verify if in electron app
  • docs: replace unsupported option with supported
  • http: disable cors if no-auth
  • bin: handle close when interrupted
  • Bump version number in pkg.js
  • node version
  • Set this.size in Bloom.prototype.fromReader()
  • walletdb: fix scan log
  • Docs
  • Add support for neutrino
  • Db buckets
  • test-tx: add tx tests
  • validator: fix str validation error message
  • script: use tx.checksig
  • tx: use checkInputAsync in verifyInputAsync
  • pool: skip gateway, ip discovery if required
  • pool: --only - disable dns seed discover
  • Outpoint tests
  • change value to hash in clone method
  • Fix pool.hasTX() method
  • Fix browser build, add browser resolution path to package.json
  • if pool doesn't have a mempool, allow tx inv processing during sync
  • Update licenses
  • Fix webpack config incompatibility with uglify-js
  • CI integration
  • Update installation
  • Catch non-errors in rpc importaddress and getaddressesbyaccount
  • (bug-fix) httpWallet getMaster encrypted #335 resolution
  • db: add new backend ffldb
  • Basic Build that works with React native
  • RPC Tests
  • wallet: allow configurable wallet port
  • Implement spvnode.sendTX() and spvnode.relay()
  • Fix wallet bin
  • Updating min node version in docs
  • Uglify plugin new version update
  • Add browser field to package.json
  • refactor indexers into plugin based system
  • Correct scriptVector() return value to {Stack}
  • Fix full node sendTX() bug and omission
  • Shared key updates
  • wdb: fix hasAccount
  • txdb: fix getAccountBalance - do not count spent credits
  • deps in index
bcoin list of languages used
Other projects in JavaScript