Skip to content

arkade-os/rust-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

759 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ark-rs

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.

Crates

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.

Installation

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-export ark-client
  • grpc: re-export ark-grpc
  • sqlite: enable SQLite storage support in ark-client
  • tls-native-roots: use native TLS roots
  • tls-webpki-roots: use webpki TLS roots

Examples and documentation

  • API documentation is published on docs.rs.
  • The ark-client-sample crate shows how to wire the client in a CLI application.
  • The e2e-tests directory contains integration examples against a local Arkade server.

Development

Common commands are defined in the justfile:

just fmt
just clippy
just test

Generate gRPC code after changing proto files:

just gen-grpc

Run 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 down

See just --list for the full set of local development, regtest, WASM, and release helper commands.

Minimum supported Rust version

The SDK supports Rust 1.86.0.

Use the checked-in Cargo-minimal.lock when validating the MSRV:

just msrv-check

License

This project is licensed under the MIT License. See LICENSE.

About

Rust crates designed to simplify building Bitcoin wallets with seamless support for both on-chain and off-chain transactions via the Ark protocol.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages