Frequently Asked Questions
General
What is Bark?
What is Bark?
- The Ark wallet: bark
- The Ark server: captaind
- A set of libraries containing all protocol primitives
Is Bark production-ready?
Is Bark production-ready?
- 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
What are the minimum system requirements?
What are the minimum system requirements?
- Any modern operating system (Linux, macOS, Windows)
- Minimal disk space for wallet data
- Internet connection to communicate with Ark server
- Linux server (Ubuntu/Debian recommended)
- PostgreSQL database
- Bitcoin Core node (bitcoind)
- Core Lightning node with hold plugin
- At least 4GB RAM recommended
- SSD storage for database and blockchain data
What is the difference between Ark and Lightning?
What is the difference between Ark and Lightning?
- No channels to open or manage
- No liquidity requirements
- Simpler onboarding experience
- Client-server architecture reduces complexity
- Universal payments (Ark, Lightning, on-chain) from one balance
- Fully peer-to-peer (no server dependency)
- Mature ecosystem with wide adoption
- Lower fees for frequent small payments
Technical
What is a VTXO?
What is a VTXO?
- Onboarding to the Ark (on-chain deposit)
- Receiving Ark payments
- Round participation (refresh/maintenance)
- Cooperatively with the server (instant, off-chain)
- Unilaterally on-chain (exit without server cooperation)
What is hArk?
What is hArk?
- All leaves have an unlock hash attached
- Leaf transactions are no longer signed during the interactive process
- Enables more efficient VTXO trees
How does the mailbox system work?
How does the mailbox system work?
- Sender posts VTXOs to your mailbox address on the Ark server
- You subscribe to your mailbox to receive notifications
- You retrieve and validate VTXOs from the mailbox
- VTXOs are added to your wallet balance
What are rounds and why are they needed?
What are rounds and why are they needed?
- Collects user requests (refreshes, maintenance, payments)
- Creates a new shared UTXO tree
- Distributes VTXOs to participants
- Refresh expiring VTXOs (every VTXO has a timeout)
- Consolidate and optimize the UTXO tree
- Enable batched payments for better efficiency
What is the Minimum Supported Rust Version (MSRV)?
What is the Minimum Supported Rust Version (MSRV)?
ark-lib crate (and by extension the bark-bitcoin-ext crate) have a MSRV of v1.74.0.For development, we recommend using Rust 1.82 or later.Development
How do I set up a development environment?
How do I set up a development environment?
- Rust toolchain
- just task runner
- bitcoind and lightningd
- PostgreSQL tools
How do I run tests?
How do I run tests?
just task runner:cargo test directly - they require environment variables set by just.See the Testing Guide for more details.What coding conventions should I follow?
What coding conventions should I follow?
- Tabs for indentation (not spaces)
- No strict rustfmt - format for readability
- No blind clippy fixes - they can introduce bugs
- Follow bitcoin patterns and naming conventions
- Imports at the top of modules
- Match surrounding code style
- Prefix commits with subsystem (bark:, server:, lib:, etc.)
- Write descriptive messages focusing on “why” not “what”
- Make commits individually compile
- Squash fixups into original commits
How do I update database migrations?
How do I update database migrations?
Where can I get help?
Where can I get help?
- Community forum - Ask questions and discuss
- Issue tracker - Report bugs
- Documentation - Technical guides and API reference
- YouTube - Video tutorials and demos
Usage
Can I use Bark on mainnet?
Can I use Bark on mainnet?
- Signet faucet for test funds
- Test store to try payments
What wallets or languages can I use with Bark?
What wallets or languages can I use with Bark?
- Native
barkCLI wallet bark-walletlibrary for custom integrations
- barkd REST API with clients in TypeScript and C# (barkd-clients)
- uniffi-bindings for native mobile/desktop apps (bark-ffi) - experimental but stabilizing
How do I compile Bark from source?
How do I compile Bark from source?
- Rust 1.82 or later
- System dependencies (see Contributing Guide)
What Lightning features does Bark support?
What Lightning features does Bark support?
- Send Lightning invoices (BOLT 11)
- Send to Lightning offers (BOLT 12)
- Send to Lightning addresses
- Receive Lightning payments (generates invoices)
How do I report a security issue?
How do I report a security issue?
Resources
Where can I learn more about Ark?
Where can I learn more about Ark?
- Bark Documentation - Complete technical docs
- Second Website - Project overview and benefits
- Second Blog - Updates and deep dives
- YouTube Channel - Video content
- Protocol Documentation - How Ark works
- hArk Paper - Latest protocol evolution
How is the project licensed?
How is the project licensed?
- Use it for any purpose
- Modify and distribute it
- Use it in proprietary software
- No attribution required (though appreciated)