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"Or depend on the crates you need directly:
[dependencies]
ark-core = "0.9"
ark-client = "0.9"
ark-bdk-wallet = "0.9"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 arkd environment:
just arkd-setup
just e2e-testsSee just --list for the full set of local development, Arkade server, introspector, 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.