Read the code's own words.
Spectra's documentation lives beside its source, so it changes in the same commit as the behaviour it describes. Start with a build, then read the design documents in the repository.
Build it
A Rust toolchain is all the CLI needs; the iOS app also needs Xcode.
Get the source
rust-toolchain.toml pins the toolchain, so cargo fetches the right one on first use.
$ git clone https://github.com/lacklusteradmin/spectra.gitRun the command line
The CLI is the front end with no platform under it: the same Rust core as the app, in a terminal.
$ cargo run -p spectra_cli -- --helpBuild the iPhone app
Open the project and build. A build phase compiles the Rust core and generates the Swift bindings for you.
$ open swift/Spectra.xcodeprojDesign documents
Each opens on GitHub.
Overview ↗
What Spectra is for, what it deliberately is not, and how its front ends share one core.
docs/ARCHITECTURE.mdArchitecture ↗
Ownership boundaries: the core decides, Swift and the CLI render and forward.
docs/CHAIN-SUPPORT.mdChain support ↗
Every network's phrase formats, derivation profiles, key imports, tokens, staking and exclusions.
docs/FFI-BOUNDARY.mdFFI boundary ↗
How the Rust core reaches Swift through UniFFI, and the Swift 6 concurrency rules at the seam.
docs/IOS-UI.mdiOS UI ↗
Liquid Glass, typography, colour, spacing and corner radii — the rules every screen follows.
docs/OPEN-ITEMS.mdOpen items ↗
The work that remains and the known limitations, stated plainly rather than discovered later.
tests/README.mdTests ↗
CLI acceptance suites that drive the real binary offline, and the independent SDK generators.
docs/audits/Audit evidence ↗
Dated, reproducible records behind endpoint, token, staking and chain-support decisions.
AGENTS.mdContributing rules ↗
How changes are made here, starting with Rule 0: simpler and more correct beats preserved.
Verification
make verify runs the four gates a change must pass. CI runs all but the iOS tests, which need Xcode and a simulator.
| Target | What it runs |
|---|---|
make lint | rustfmt and clippy at -D warnings, plus scans that refuse unused exports, unwritten FFI fields and hard-coded chain names in the app |
make test | cargo test --workspace — the core's rules, tested without a platform |
make test-cli | The real spectra binary end to end, offline, in a throwaway data directory |
make test-ios | xcodebuild test on an iPhone simulator |
make check-ui | Design-token and icon-normalization checks, run by hand |