Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

SDK reference

Three SDKs ship with Phase-8 (Node/TS is deferred to Phase 9 per ADR-001 / D-6).

Rust — edssa-core

The native engine crate. Anything you can do at the CE binary layer, you can do directly from Rust.

cargo add edssa-core
#![allow(unused)]
fn main() {
use edssa_core::{verify_token, ActiveEdssaState, encode_sub_id};

fn check(token: &[u8; 64], state: &ActiveEdssaState<64>) -> bool {
    verify_token(token, state).accepted
}
}
  • Source: code/edssa-core/.
  • Feature flags: the enterprise umbrella (default-on) gates the oracle, orbit, relay, swarm, and weaver modules (plus their re-exports, e.g. MedianOf3). CE consumers should set default-features = false; the CE-visible surface (verify_token, construct_token, ActiveEdssaState, EdssaCore, EdssaRouter, RatchetState, encode_sub_id / decode_sub_id, SUB_ID_SLOTS, SUB_ID_MAX) stays available.
  • Stability: the engine API (verify_token, construct_token, ActiveEdssaState, EdssaCore, EdssaRouter) is the patent surface. Other modules are evolving and may change between minor versions.

Go — github.com/edssa-io/edssa-go

cgo binding over edssa-core-ffi (Phase-8 batch 4 substrate). The Go SDK statically links the C ABI, so consumers don’t ship the edssa-core-ffi shared library separately.

import "github.com/edssa-io/edssa-go"

state, err := edssa.NewStateFromSeed(seed, edssa.Balanced)
if err != nil { ... }
defer state.Close()

ok := state.Verify(token)

Python — pip install edssa

PyO3 wrapper. Same engine, same wire format.

import edssa

state = edssa.State.from_seed(seed, preset="balanced")
ok    = state.verify(token)

Node / TypeScript

Deferred to Phase 9 (ADR-001 / D-6).

Choosing between SDKs

Use caseBest fit
Rust microservice / Tokio runtimeedssa-core directly (no SDK shim)
Go service, gRPC interceptoredssa-go
Python web API (FastAPI / Django / Flask)edssa-py
Polyglot service meshRun the CE binary as a sidecar; let the SDKs handle minting only

The CE binary is the integration story for non-Rust services that don’t want a build-time SDK dep — drop the sidecar in, point your service at it, and your service stays language-agnostic.