The CLV1 protocol is now publicRead the spec

Utility 04 / 05

Ship with confidenceEvery build signed

Upload, hash, sign and deliver by channel, with forced updates and blocked builds

Signed releasesEvery build carries a signature

How it works

  1. 01

    Upload the build

    sha256 is computed as it lands, the file is signed

  2. 02

    Publish to a channel

    Stable for everyone, beta for the people you pick

  3. 03

    The app checks

    The SDK accepts only a manifest signed by the app

Everything in it

  • Signed manifestsEd25519, with a key id and a 10 minute life
  • Short-lived linksEach download link lives 5 minutes, bound to the session
  • Forced updatesA minimum version per app
  • Blocked releasesA blocked build no longer opens
  • Unknown buildsA strange hash is refused or only reported, your call
  • Stable and betaOne newest build per channel

In code

update.ts
const clavis = new ClavisClient({ appId, appPublicKey, device, appVersion: "1.1.4", buildHash });

const { app } = await clavis.init();
if (app.update?.required) return showUpdateScreen(app.update.minVersion);

const manifest = await clavis.checkUpdates({ channel: "stable" }); // signature checked
if (manifest) {
  const bytes = await clavis.download(manifest.files[0]); // sha256 checked
}

Which plan has it

Basic
500 MB of release storage
Premium
20 GB of release storage
Compare plans

Read more in Protect Hub

Your softwareYour keys

Next utilitySeller API

How can we help?

Frequently asked

What is ClavisAUH?

A licensing and authentication service for desktop software: license keys, device binding, end-user sign-in and signed responses. All run from one dashboard

Why can't a cracker fake your server?

The SDK only trusts answers signed with your app's private key. That key never leaves our servers, so a fake server can't sign and gets rejected

What ends up in my binary?

Your app id and public key. Nothing secret, because each device makes its own key pair on first run

Does it work offline?

Yes. Every plan gets a signed offline token for 7 days, and your app checks it locally. Premium lets you choose how long. A revoked license can keep working offline for that time, unless Online-Only Mode is on

Which languages are supported?

JavaScript and TypeScript today. C++, C# and Python are next, on the same open protocol

Is Basic really free?

Yes. No time limit, no card. Move to Premium when you need more

Get in touch