Label 309 · Open source

The Label 309 ecosystem

One open standard, and a full set of reference implementations. The machine-readable specification, SDKs in TypeScript, Python, and Rust, and a command-line tool are all published in the open — Apache-2.0 for code, CC-BY-4.0 for the specification. Use them as-is, or build your own implementation: Label 309 is a standard, and anyone is free to implement it.

label-309

The standard

The complete, machine-readable specification corpus: the prose standard, the CDDL grammar, the algorithm registries, JSON Schemas, and the conformance vectors every implementation is checked against.

Reference SDKs

The same standard, implemented three times — for the browser and Node, for Python, and for Rust.

TypeScript

Browser and Node SDK.

A standalone verifier, a gateway-agnostic HTTP client, and fetch helpers. Installing the SDK pulls in the closed-catalogue crypto primitives and the wire-format library it builds on, so you get the whole stack from one dependency.

Install

$ npm install @cardanowall/sdk-ts

@cardanowall/sdk-ts

Python

Python SDK.

A byte-identical parity twin of the TypeScript SDK, checked against the same canonical-CBOR test vectors. Verify records, encode the wire format, and build sealed Proof of Existence from Python.

Install

$ pip install cardanowall-sdk

cardanowall-sdk

Rust

Rust SDK.

A byte-parity twin of the TypeScript and Python SDKs — blocking and secure-by-default, for native applications and services. Full API documentation is published on docs.rs.

Install

$ cargo add cardanowall

cardanowall

cardanowall-cli

Command line

A gateway-agnostic, raw-seed-first command-line tool built on the Rust SDK. Verify records, work with an inbox, build and check Merkle proofs, sign, and submit — straight from the terminal or a CI pipeline.

Install

$ cargo install cardanowall-cli

Binary: cardanowall

Gateway-agnostic, raw-seed-first.

Commands

  • verify
  • inbox-list
  • inbox-decrypt
  • inbox-sync
  • merkle-verify
  • merkle-build
  • sign
  • submit

label-309-gateway

Run your own gateway

Verifying needs no server, but publishing does: it puts a transaction on Cardano, and something has to pay the fee. The gateway is that piece — the complete, self-hostable publish backend, one Rust binary plus Postgres. It holds the funded Cardano wallet that anchors records (and an Arweave wallet for sealed files), builds and submits the transaction, and serves the records back. Run it privately for your own apps, or operate one as a paid service for others; the SDKs and CLI just point their base URL at it.

ghcr.io/cardanowall/label-309-gateway

Run it

$ git clone https://github.com/cardanowall/label-309-gateway
cd label-309-gateway/deploy && docker compose up -d

Identical, by construction

The TypeScript, Python, and Rust SDKs are byte-identical against the same canonical-CBOR test vectors. A record encoded by one is bit-for-bit the record encoded by the others — so verification never depends on which implementation produced it.

Build your own

Label 309 is issuer-agnostic and standalone-verifiable: nothing about it depends on these tools or on any one vendor. The specification is complete and public, so anyone can write a fresh implementation — in any language, for any platform — and interoperate with everything already shipped. It's a standard, not a product.