Skip to content

GideonBature/bark

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5,251 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bark: Ark on bitcoin

Bark: Ark on bitcoin

Fast, low-cost, self-custodial payments on bitcoin.


Docs · Issues · Website · Blog · YouTube

Release License PRs welcome Community


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

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.

An example of an Ark transaction tree from a refresh 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.

About

MIRROR

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 94.7%
  • PLpgSQL 3.1%
  • Shell 1.0%
  • Dockerfile 0.3%
  • Nix 0.3%
  • Python 0.3%
  • Just 0.3%