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
Lower-level building blocks
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-sdkcardanowall-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 cardanowallcardanowall
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-cliBinary: 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.
Run it
$ git clone https://github.com/cardanowall/label-309-gateway
cd label-309-gateway/deploy && docker compose up -dIdentical, 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.