- Rust 94.6%
- PLpgSQL 3.2%
- Shell 1%
- Dockerfile 0.3%
- Nix 0.3%
- Other 0.6%
|
|
||
|---|---|---|
| .cargo | ||
| .config | ||
| .gitlab | ||
| assets | ||
| bark | ||
| bark-cli | ||
| bark-json | ||
| bark-rest | ||
| bark-rest-client | ||
| bip321 | ||
| bitcoin-ext | ||
| CHANGELOG | ||
| cln-rpc | ||
| contrib | ||
| CONTRIBUTING | ||
| docs | ||
| fuzz | ||
| lib | ||
| nix | ||
| server | ||
| server-log | ||
| server-rpc | ||
| testing | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| ark_demo.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| LICENSE | ||
| README.md | ||
Bark: Ark on bitcoin
Fast, low-cost, self-custodial payments on bitcoin.
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
Get started
- 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!
What if I don't speak Rust?
No Rust, no problem!
barkd is an Ark wallet that runs as a daemon and exposes a REST API over HTTP. It's well suited for power users and great for automation—think web shops, Telegram/Discord bots, and similar use cases. The barkd-clients repository provides clients in TypeScript and C#.
uniffi-bindings are the better choice if you're building a native desktop or mobile application. The bindings are available in the bark-ffi repository. These are still experimental, but stabilizing quickly.
Why Ark?
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 →
How does Ark work?
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.
Minimum supported Rust version (MSRV)
Most of our crates do not yet specify a MSRV, but we will commit to one once we make an official release.
The ark-lib crate (and by extension the bark-bitcoin-ext crate) have a MSRV of v1.74.0.
Contributing
Thinking of opening a pull request? See our contribution guide for dependencies, style guidelines, and code hygiene expectations.
Security
Please report any vulnerability or any bug that could potentially affect the
security of users' funds by e-mail to security@second.tech.
You may use the following PGP keys to encrypt your e-mail:
8CC974D9CFD034DCEED213B02A57E0A610D7F19C(Steven Roose)011E7F59B45397C4654D81298F44B2DD98E18528(Erik De Smedt)
Both keys can be found on the keys.openpgp.org keyserver.
Questions or issues
If you run into any issues at all, let us know:
Security policy and responsible disclosure
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.
License
Released under the MIT license-see the LICENSE file for details.

