SIGNIA is coming to Solana.
A structure-level on-chain system for compiling real-world structures into verifiable forms.
SIGNIA is a structure compiler: it reads an existing real-world structure (a Git repository, dataset, spec, API schema, workflow, or config), derives a typed model, then emits canonical artifacts:
- Schema: the normalized structure model (what the thing is)
- Manifest: deterministic inputs, versions, and build metadata (what was used)
- Proof: hashes and Merkle roots that make the output verifiable
The goal is not to copy execution logic on-chain. The goal is to make structure composable and auditable for on-chain systems.
Most “bring Web2 to chain” attempts focus on content or execution. SIGNIA focuses on structure.
That unlocks:
- Verifiable structure registries (publish schema hashes on Solana)
- Composable on-chain tooling that can understand off-chain objects
- Deterministic artifact pipelines for reproducible builds
- Ecosystem plugins that turn different inputs into the same canonical IR
- Deterministic: same input → same bytes (canonical JSON, normalized paths/text)
- Typed IR: plugins produce a stable intermediate representation
- Verifiable outputs: stable hashing + Merkle proofs
- Pluggable: new input types can be added as sandboxed plugins
- On-chain registry: publish and resolve schema versions on Solana
crates/
signia-core/ # canonical IR, pipeline, determinism, hashing, proofs
signia-plugins/ # plugin runtime + built-in plugins (repo/dataset/spec/api/workflow/config)
signia-store/ # local persistence (sqlite) + object store (fs/s3) + proof verification
signia-api/ # HTTP API (compile/verify/artifacts/plugins/registry)
signia-cli/ # CLI (compile/verify/publish/fetch/plugins/doctor)
signia-solana-client/ # Rust client helpers for the on-chain registry
programs/
signia-registry/ # Anchor program: on-chain schema registry
sdk/
ts/ # TypeScript SDK for API + registry helpers
python/ # Python SDK for API + utils
console/
web/ # Next.js web console (compile/verify/registry/interface)
interface/ # "Interface" service (project assistant over docs/schemas/examples)
schemas/
v1/ # JSON schemas for schema/manifest/proof
examples/ # end-to-end examples with expected outputs
tests/ # integration + e2e tests
scripts/ # bootstrap/build/lint/test helpers
infra/ # docker/k8s/terraform
.devcontainer/ # devcontainer config
- Rust (stable), Cargo
- Node.js 20+
- pnpm 9+
- Docker (optional, recommended for quick boot)
./scripts/bootstrap.sh./scripts/build_all.sh./scripts/test_all.shdocker compose up -d --build- API:
http://localhost:8080 - Console:
http://localhost:3000 - Interface service:
http://localhost:8090
To stop:
docker compose down -v# Example: compile a local file (dataset, spec, workflow, config, etc.)
./target/release/signia compile ./examples/dataset/sample.csv --out ./out./target/release/signia verify ./out/schema.json ./out/proof.json./target/release/signia publish --devnet ./out/manifest.jsonNote: publishing requires a Solana keypair and configured RPC URL.
Start signia-api (local example):
cargo run -p signia-apiThen:
POST /v1/compile→ returns schema/manifest/proofPOST /v1/verify→ verifies schema + proofGET /v1/artifacts/{hash}→ fetch by content hashGET /v1/plugins→ list supported types + versionsPOST /v1/registry/publish→ publish schema hash to SolanaGET /v1/registry/resolve→ resolve latest/version
OpenAPI spec: docs/api/openapi.yaml
The Solana program maintains a registry of published schema hashes with version pointers.
- Program:
programs/signia-registry/ - Tests:
programs/signia-registry/tests/*.ts
Typical flow:
- Initialize registry
- Register a schema (hash + metadata)
- Publish a version pointer
- Resolve latest for a given namespace/type
cd sdk/ts
pnpm install
pnpm buildUse it to:
- call the SIGNIA HTTP API
- compute canonical hashes (client-side)
- interact with the registry program
cd sdk/python
python -m pip install -e .Use it to:
- call the SIGNIA HTTP API
- verify proofs locally
- canonicalize JSON and compute hashes
The web console is a Next.js app used for:
- compiling inputs via the API
- viewing schema/manifest/proof
- verifying outputs
- browsing published registry entries
cd console/web
pnpm install
pnpm devThe interface service powers an on-site assistant trained on:
- docs
- schemas
- examples
- frequently asked questions
It provides a project-centric Q&A and deployment guidance layer, designed for embedding into the website console.
cd console/interface
pnpm install
pnpm devSIGNIA is built around reproducibility:
- Canonical JSON serialization (stable key ordering)
- Path normalization
- Text normalization
- Stable hashing (BLAKE3)
- Merkle proof construction & verification
See:
docs/determinism/*docs/schemas/*
- Vulnerability reporting: see
SECURITY.md - Threat model:
docs/security/security/threat-model.md - Supply-chain hardening:
docs/security/security/supply-chain.md
See CONTRIBUTING.md.
Apache-2.0. See LICENSE.
SIGNIA is under active development. APIs, schemas, and on-chain interfaces may change before a stable release.
