Skip to content

arkade-os/rust-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

687 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"

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-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 arkd environment:

just arkd-setup
just e2e-tests

See just --list for the full set of local development, Arkade server, introspector, 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