Docs ·
Issues ·
Website ·
Blog ·
YouTube
Bark is an implementation of the Ark protocol on bitcoin, led by Second. The Ark protocol is a bitcoin layer 2 for making fast, low-cost, self-custodial payments at scale. Ark uses a client-server model to enable users to transact off-chain while still being able to "exit" their balances on-chain at any time.
The project consists of:
- The Ark wallet: bark
- The Ark server: captaind
- A set of libraries containing all protocol primitives
Warning
This repository contains experimental code. Using it with real bitcoin is reckless and can result in loss of funds.
- Updating bark or captaind may corrupt your wallet—we prioritize development velocity over backward compatibility.
- Known bugs and vulnerabilities can still lead to loss of funds.
- Make your first Ark transactions: Step-by-step guide to set up a CLI wallet, get sats from our faucet, and buy some treats from our test store.
- Compile from source
- Set up an Ark server: For patient folks looking to do more in-depth testing!
As bitcoin adoption grows, on-chain fees spike during busy periods, making everyday transactions impractical. While Lightning has been revolutionary for bitcoin scaling, it's beginning to show its limitations—channel management and liquidity requirements create complexity for developers and users.
Ark offers a complementary scaling solution that simplifies bitcoin self-custody:
🏃♂️ Smooth onboarding: No channels to open, no on-chain setup required—create a wallet and start transacting
🤌 Simplified UX: Send and receive without managing channels, liquidity, or routing
🌐 Universal payments: Send Ark, Lightning, and on-chain payments from a single off-chain balance
🔌 Easier integration: Client-server architecture reduces complexity compared to P2P protocols
💸 Lower costs: Instant payments at a fraction of on-chain fees
🔒 Self-custodial: Users maintain full control of their funds at all times
Perfect for users who want self-custody without the hassle, and developers who want to build bitcoin apps without the complexity.
Learn more about Ark's benefits →
The Ark protocol enables multiple users to share control of a single bitcoin UTXO through a tree of pre-signed, off-chain transactions. This allows instant, off-chain payments while maintaining self-custody—users can always withdraw their bitcoin either cooperatively with the Ark server or unilaterally on-chain.
For a detailed technical explanation, see our protocol documentation.
A transaction tree showing how Ark enables multiple users to share control of a single UTXO through pre-signed transactions.
Thinking of opening a pull request? See our contribution guide for dependencies, style guidelines, and code hygiene expectations.
If you run into any issues at all, let us know:
The Ark protocol code is experimental and must not be used in production.
If you happen to find a vulnerability we invite you to file a public issue.
Released under the CC0 1.0 Universal license—see the LICENSE file for details.