Rust crates for building Bitcoin wallets and applications that use the Arkade protocol.
This repository contains the Arkade Rust SDK: protocol types, transport clients, wallet integration, fee estimation, and development/test utilities.
| Crate | Purpose |
|---|---|
ark-rs |
Convenience crate that re-exports the main SDK crates behind feature flags. |
ark-core |
Core Arkade protocol types and transaction utilities. |
ark-client |
High-level client library for interacting with Arkade servers. |
ark-grpc |
gRPC transport client for Arkade servers. |
ark-rest |
REST transport client for Arkade servers. |
ark-bdk-wallet |
bdk_wallet-based implementation of ark-client wallet traits. |
ark-fees |
CEL-based fee estimation library for Arkade transactions. |
ark-delegator |
REST client for Arkade delegator services. |
ark-script |
Arkade script, taproot, opcode, and key-tweaking helpers. |
ark-introspector-client |
Client for the Arkade introspector service. |
The repository also includes ark-client-sample and e2e-tests, which are not published to crates.io.
Use the convenience crate if you want a single SDK dependency:
[dependencies]
ark-rs = "0.9.3"Or depend on the crates you need directly:
[dependencies]
ark-core = "0.9.3"
ark-client = "0.9.3"
ark-bdk-wallet = "0.9.3"Optional ark-rs features:
client: re-exportark-clientgrpc: re-exportark-grpcsqlite: enable SQLite storage support inark-clienttls-native-roots: use native TLS rootstls-webpki-roots: use webpki TLS roots
- API documentation is published on docs.rs.
- The
ark-client-samplecrate shows how to wire the client in a CLI application. - The
e2e-testsdirectory contains integration examples against a local Arkade server.
Common commands are defined in the justfile:
just fmt
just clippy
just testGenerate gRPC code after changing proto files:
just gen-grpcRun end-to-end tests against a local regtest environment. The stack (Bitcoin
Core + Fulcrum + mempool/esplora + arkd + emulator) is provided by the regtest
git submodule (arkade-regtest)
and driven by its Node CLI; it requires Docker and Node.js:
just regtest-init # initialize the regtest submodule (first time only)
just regtest-start # bring up the stack (arkd runs from a container image)
just e2e-tests # run the e2e suite
just regtest-clean # tear the stack downSee just --list for the full set of local development, regtest, WASM, and release helper commands.
The SDK supports Rust 1.86.0.
Use the checked-in Cargo-minimal.lock when validating the MSRV:
just msrv-checkThis project is licensed under the MIT License. See LICENSE.