Changelog

What's new in KeyGrant.

Changes to the SDKs, the CLI, the API, the customer portal, the dashboard and the website. Filter by what you use, or follow it in a reader with the Atom feed.

4 November 2026

New

Upgrade a key from one license model to another

A license model sold as an upgrade can now move a customer's key from one of your models to another, taking that model's entitlements and devices. An edition upgrade can also raise the key's devices.

  • API

27 October 2026

Fixed

Subscriptions keep working while a renewal is on its way

A subscription license now keeps validating for 3 days after its period ends while KeyGrant waits to hear it renewed, so a late renewal notice or a short outage never locks out a customer who just paid. A cancelled subscription, or one whose renewal failed, still stops on its own grace.

  • API

24 October 2026

New

Buyers of several keys give each one to a colleague

In your customer portal, the buyer of several keys opens Keys you bought and gives each key to the person who will use it. KeyGrant emails the key to them unless you send your own key emails, and a new license.reassigned webhook tells your systems.

  • API
  • Customer portal

21 October 2026

New

Sell through Paddle as well as Stripe

Link a Paddle account in Settings > Payments by pasting an API key, live or sandbox. A completed Paddle checkout issues the license key, refunds covering the whole payment or a chargeback take it back, a chargeback Paddle wins back returns it, and renewals and cancellations follow the subscription. The checkout lookup takes a Paddle transaction id, and the customer portal's Manage billing opens Paddle's portal.

  • API
  • Customer portal

20 October 2026

New

Customers restore their license in your app with an emailed code

Turn on Key pickup for a product and your app can restore a customer's license with a code sent to the email they bought with, no key to type, as App Store builds need. Call restoreByEmail(email, code) after pickUp(email).

  • Electron SDK 0.9.0
  • .NET SDK 0.8.0
  • Rust SDK 0.8.0
  • Swift SDK 0.8.0
  • C++ SDK 0.8.0
  • CLI 0.5.3
  • API

17 October 2026

16 October 2026

New

Metered licenses: sell a set number of uses

Sell a feature a set number of times. A license model can count uses of an export or a render, per key or per billing period, and the app spends them with use(meter, n). Online a spend is exact; offline it comes from a small allowance, so an outage never locks out a paying customer.

  • Electron SDK 0.8.0
  • .NET SDK 0.7.0
  • Rust SDK 0.7.0
  • Swift SDK 0.7.0
  • C++ SDK 0.7.0
  • CLI 0.4.0
  • API

14 October 2026

New

Lock a license key to its buyer's email

A license model can now ask for the buyer's email, or for a six-digit code sent to it, before a key activates on a new device. Devices that already hold a seat are never asked. Pass { email, code } to activate.

  • Electron SDK 0.7.0
  • .NET SDK 0.6.0
  • Rust SDK 0.6.0
  • Swift SDK 0.6.0
  • C++ SDK 0.6.0
  • API
New

Deliver a license as a signed file

A license model can send its key as a signed file buyers drop onto your app, or as an offline license file that works with no connection at all. Buyers can download the file again from the customer portal, and keygrant licenses file fetches it from the CLI.

  • Electron SDK 0.6.0
  • .NET SDK 0.5.0
  • Rust SDK 0.5.0
  • Swift SDK 0.5.0
  • C++ SDK 0.5.0
  • CLI 0.3.0
  • API
  • Customer portal