---
# @generated by sylphx-gen 0.1.0 from contracts@9f583d0fafbf9813b0da162eef18cd95767f9a68d1de3edf29cf2143c78b11fb. Do not edit.
title: "sylphx money licence_keys"
description: "The sylphx money licence_keys commands of Sylphx Money: every verb, with its argument, its flags and a run line."
type: reference
product: payments
summary: "Every sylphx money licence_keys command: its argument, its flags and a run line."
updated: 2026-09-28
nav: false
---

The `licence_keys` commands of Sylphx Money, as the CLI spells them: the same
calls as [the `licence_keys` API page](/docs/api/licence_keys), typed for the
shell. [Install, sign in and the grammar](/docs/cli) are on the CLI index.

## generate

Generates a licence key: Money creates the Ed25519 key, seals it, and never returns the private half. Needs the approval-class scope, which the developer role does not hold.

**`NAME`** — the resource's name; a bare id is enough below the linked
project.

**CLI**

```bash
sylphx money licence-keys generate orgs/acme/projects/shop/envs/production
```

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/licence_keys:generate` · scope `billing:licence_keys.approve` · effect `write` · [Request, response and examples](/docs/api/licence_keys/generate)

**Flags**

| Flag | Type | What it does |
| --- | --- | --- |
| `--licence-key-id` | `string` | The key's id; `^[a-z]([a-z0-9_-]{0,61}[a-z0-9])?$`. Empty: Money assigns one. |
| `--spec` | `json` | Shown to operators. |

## import

Imports an existing Ed25519 key (PKCS8), for a key already pinned in shipped clients. Refused unless the expected public key is the imported key's public half.

**`NAME`** — the resource's name; a bare id is enough below the linked
project.

**CLI**

```bash
sylphx money licence-keys import orgs/acme/projects/shop/envs/production
```

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/licence_keys:import` · scope `billing:licence_keys.approve` · effect `write` · [Request, response and examples](/docs/api/licence_keys/import)

**Flags**

| Flag | Type | What it does |
| --- | --- | --- |
| `--licence-key-id` | `string` | The key's id; as on GenerateLicenceKeyRequest. Required. Required. |
| `--private-key-pkcs8` | `string` | The Ed25519 private key as PKCS8 DER in standard base64. Write-only: sealed on import, never returned. Required. The value is never returned. |
| `--expected-public-key` | `string` | The public key shipped clients pin, raw base64url without padding. The import is refused unless it is the public half of the imported key. Required. |
| `--spec` | `json` | Shown to operators. |

## retire

Retires a licence key: it stops signing new terms and stays exported for verification.

**`NAME`** — the resource's name; a bare id is enough below the linked
project.

**CLI**

```bash
sylphx money licence-keys retire orgs/acme/projects/shop/envs/production/licence_keys/licence-key
```

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/licence_keys/licence-key:retire` · scope `billing:licence_keys.approve` · effect `write` · [Request, response and examples](/docs/api/licence_keys/retire)

## get

Gets a licence key (its public half, never the private).

**`NAME`** — the resource's name; a bare id is enough below the linked
project.

**CLI**

```bash
sylphx money licence-keys get orgs/acme/projects/shop/envs/production/licence_keys/licence-key
```

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/licence_keys/licence-key` · scope `billing:read` · effect `read` · [Request, response and examples](/docs/api/licence_keys/get)

## list

Lists licence keys, newest first.

**`PARENT`** — optional: the CLI fills it from the linked project or the
key's scope when it is left out.

**CLI**

```bash
sylphx money licence-keys list orgs/acme/projects/shop/envs/production
```

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/licence_keys` · scope `billing:read` · effect `read` · [Request, response and examples](/docs/api/licence_keys/list)

**Flags**

| Flag | Type | What it does |
| --- | --- | --- |
| `--page-size` | `int` | At most this many; default 50, clamped to 1000. |
| `--page-token` | `string` | `next_page_token` of the previous page. |
