https://github.com/cardanowall/label-309-ts
TypeScript reference implementation of Label 309: crypto primitives, canonical-CBOR wire format, and an SDK with a standalone verifier.
https://github.com/cardanowall/label-309-ts
blockchain cardano cbor cip-309 proof-of-existence sdk timestamping typescript verifier
Last synced: 4 days ago
JSON representation
TypeScript reference implementation of Label 309: crypto primitives, canonical-CBOR wire format, and an SDK with a standalone verifier.
- Host: GitHub
- URL: https://github.com/cardanowall/label-309-ts
- Owner: cardanowall
- License: apache-2.0
- Created: 2026-06-01T20:06:26.000Z (14 days ago)
- Default Branch: main
- Last Pushed: 2026-06-06T17:27:55.000Z (9 days ago)
- Last Synced: 2026-06-06T19:13:28.929Z (9 days ago)
- Topics: blockchain, cardano, cbor, cip-309, proof-of-existence, sdk, timestamping, typescript, verifier
- Language: TypeScript
- Homepage: https://label309.org
- Size: 771 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Label 309 TypeScript SDKs
TypeScript reference implementation of [**Label 309**](https://github.com/cardanowall/label-309) —
an open standard for **Proof of Existence (PoE)** anchored on the Cardano
blockchain. Hash content, publish the digest on-chain under metadata label 309,
and let anyone prove "this content existed on or before block time T" without
trusting any server, domain, or issuer identity.
This repository is a small pnpm workspace of three packages that build on one
another:
| Package | What it is |
| --- | --- |
| [`@cardanowall/crypto-core`](packages/crypto-core) | Closed-catalogue cryptographic primitives: hash, KDF, signature, KEM, AEAD, CBOR, COSE, sealed-PoE, Merkle, diceware. |
| [`@cardanowall/poe-standard`](packages/poe-standard) | The Label 309 record schema, canonical-CBOR encoder, structural validator, and error-code catalogue — the wire-format library. |
| [`@cardanowall/sdk-ts`](packages/sdk-ts) | The high-level SDK: a standalone verifier (three roles), a gateway-agnostic HTTP client, off-host signing, and seed-derived identity helpers. Runs in the browser, Node.js, Deno, and Bun. |
`sdk-ts` depends on `poe-standard`, which depends on `crypto-core`; the three
ship together so the closure resolves as one published unit.
## Install
```sh
npm install @cardanowall/sdk-ts
```
`@cardanowall/poe-standard` and `@cardanowall/crypto-core` are pulled in
automatically as dependencies; install them directly only if you want the
lower-level surface on its own.
## Quickstart
Verify any Label 309 transaction from chain metadata alone — no issuer server in
the trust path:
```ts
import { verifyTx } from '@cardanowall/sdk-ts/verifier';
const report = await verifyTx({
txHash: '<64-hex Cardano transaction hash>',
// Supply a gateway/provider for chain metadata; the verifier itself trusts
// no vendor — it routes through a public explorer you choose.
});
console.log(report.verdict); // 'valid' | 'invalid' | ...
```
See [`packages/sdk-ts/README.md`](packages/sdk-ts/README.md) for the full
surface: publishing against any gateway, off-host signing, recipient
decryption, and seed-derived identities.
## Develop
```sh
pnpm install
pnpm -r build # build all three packages (tsup)
pnpm exec vitest run # full test suite (unit + KAT + integration + nxdomain)
pnpm -r typecheck
```
The test suite includes the cross-implementation **conformance vectors** and a
synthetic **mainnet corpus**; these same vectors are replayed by the Python and
Rust SDKs, which is what keeps all three byte-identical.
## The standard and sibling implementations
- [`label-309`](https://github.com/cardanowall/label-309) — the standard: prose spec,
CDDL grammar, JSON schemas, registries, and the canonical conformance vectors.
- [`label-309-py`](https://github.com/cardanowall/label-309-py) — the Python SDK
(byte-parity twin).
- [`label-309-rs`](https://github.com/cardanowall/label-309-rs) — the Rust SDK
(byte-parity twin).
- [`label-309-cli`](https://github.com/cardanowall/label-309-cli) — the
`cardanowall` command-line tool.
## License
[Apache-2.0](LICENSE).