Skip to content

Introduction

The Base SDK for Dash is a collection of packages that enable applications to parse, construct and interact with the Dash blockchain. This is achieved by leveraging the rust-bitcoin ecosystem to provide a framework that builds upon existing, familiar APIs and contract expectations.

To achieve this, state-independent portions of the consensus engine have been split into composable packages that can be imported as needed.

Crate Description CI Coverage Version
dash-num Hash blobs, 256-bit arithmetic, compact target encoding dash-num dash-num dash-num
dash-p2p-core P2P message types and wire format dash-p2p-core dash-p2p-core Unreleased.
dash-params Chain parameters for mainnet, testnet3, and regtest dash-params dash-params Unreleased.
dash-pkc BLS (legacy + IETF) and secp256k1 operations dash-pkc dash-pkc dash-pkc
dash-pow Proof of work scheme dash-pow dash-pow dash-pow
dash-primitives Blocks, transactions, payloads, governance objects dash-primitives dash-primitives Unreleased.
dash-script Script opcodes, classification, and address derivation dash-script dash-script Unreleased.
dash-types Shared byte and integer newtypes, serde helpers dash-types dash-types dash-types

System Requirements

Some crates rely on instruction set extensions that set hardware minimums for the architectures listed below. Builds for these architectures fail unless the build flags for them are defined or the portable feature is enabled. Builds for other architectures run without hardware acceleration.

Using non-portable builds on hosts that do not meet the above requirements will likely result in abrupt termination due to illegal instructions (SIGILL).

Is the SDK a full node?

The Base SDK is not a full node implementation nor does it intend to be. no_std + alloc restricts I/O and networking making it better suited for resource-constrained, sandboxed or otherwise limited environments. The public contract reflects this, restricted to only stateless or relatively context-independent portions of the overall consensus engine.

For a more batteries-included solution, consider rust-dashcore or the C++ reference implementation, Dash Core over RPC, REST or ZMQ.