10
25
Fork
You've already forked bark
22
  • Rust 93.9%
  • PLpgSQL 3.8%
  • Shell 0.9%
  • Dockerfile 0.5%
  • Nix 0.4%
  • Other 0.5%
Find a file
Peter 919a65e252 Merge branch 'barkd-no-wallet' into 'master'
bark-rest: enable "no wallet" mode
See merge request ark-bitcoin/bark!1484 
2026年01月16日 20:59:52 +00:00
.cargo lib: Add wasm feature 2025年11月24日 09:36:16 -03:00
.woodpecker bark: Correct 'hodl' references to 'hold' 2026年01月07日 11:17:45 +01:00
assets Updated transaction tree diagram 2025年08月19日 14:12:57 +07:00
bark bark: add method to query fingerprint 2026年01月15日 10:28:34 +01:00
bark-cli bark-rest: add endpoint to create wallet 2026年01月15日 10:28:35 +01:00
bark-json bark-rest: add endpoint to create wallet 2026年01月15日 10:28:35 +01:00
bark-rest bark-rest: udpate docs 2026年01月15日 10:28:35 +01:00
bark-rest-client bark-rest: udpate docs 2026年01月15日 10:28:35 +01:00
bitcoin-ext bitcoin_ext Split out submit_package into bitcoin_ext 2026年01月13日 16:58:49 +01:00
CHANGELOG Merge branch 'validate-board' into 'master' 2026年01月15日 14:07:01 +00:00
cln-rpc all: Rename cancelled -> canceled 2025年12月11日 13:51:04 +00:00
contrib prechecks: add check for duplicate migration versions 2026年01月14日 22:46:35 +01:00
CONTRIBUTING Merge branch 'bark-example' into 'master' 2025年11月05日 22:10:42 +01:00
docs docs: Add document explaining offboard swaps 2026年01月12日 00:51:46 -03:00
lib lib: Remove unused import 2026年01月15日 12:02:57 -03:00
nix nix: Add openssl to buildShell for new refinery dependency version 2026年01月11日 17:50:47 -03:00
server Merge branch 'flux-lock-fix' into 'master' 2026年01月16日 20:12:51 +00:00
server-log server: Add FeeEstimator 2026年01月14日 11:03:02 +01:00
server-rpc lib: Make CheckpointedArkoorBuilder support non-checkpoint mode 2026年01月15日 10:21:12 -03:00
testing testing: Fix double_spend_arkoor test 2026年01月16日 13:10:38 -03:00
.dockerignore Create Dockerfile for aspd and bark 2025年01月03日 21:38:24 +01:00
.editorconfig nix: Use tabs for nix file 2024年10月01日 19:35:58 +01:00
.gitattributes bark-rest-client: change barkd rust client crate name 2025年11月28日 16:12:50 +01:00
.gitignore Add DS_Store to gitignore 2025年10月18日 08:01:57 +01:00
.gitlab-ci.yml ci: Do not use REF_SLUG. 2025年11月29日 15:22:45 +01:00
ark_demo.sh Rename asp to server in README files 2025年08月07日 21:47:38 +01:00
Cargo.lock bark-rest: wrap bark and onchain wallet in a struct and make optional 2026年01月15日 10:28:33 +01:00
Cargo.toml Remove unused miniscript dependency 2026年01月11日 17:50:47 -03:00
CHANGELOG.md changelog: Merge into release specific files. 2025年12月24日 15:04:01 +01:00
CONTRIBUTING.md bark: Correct 'hodl' references to 'hold' 2026年01月07日 11:17:45 +01:00
flake.lock nix: Migrate rust-overlay to fenix and move dev-shell file 2025年10月05日 17:03:28 +01:00
flake.nix nix: Add toolchain changes for WASM 2025年11月24日 09:36:16 -03:00
justfile prechecks: add check for duplicate migration versions 2026年01月14日 22:46:35 +01:00
LICENSE Boilerplate done 2024年03月14日 17:59:20 +00:00
README.md Small wording and punctuation adjustments, removed hard line breaks 2025年12月02日 22:32:01 +07:00

bark: Ark on bitcoin

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

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.

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.

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 CC0 1.0 Universal license-see the LICENSE file for details.