---
title: "API versions"
description: "How Carina docs version channels map to protocol catalogs and the 0.8 release line."
source: https://carina.nebutra.com/api/versions/
---

# API versions

> How Carina docs version channels map to protocol catalogs and the 0.8 release line.

Carina docs ship **two channels**. Narrative guides are shared; the **method catalog** and version banner track the selected channel.

## Channels

| Channel | Badge | Catalog file | Intent |
| --- | --- | --- | --- |
| `0.8.x` | stable | `/data/rpc-catalog-0.8.x.json` | Docs surface for the **0.8** release line (current product) |
| `next` | preview | `/data/rpc-catalog-next.json` | Tracks monorepo `protocol/jsonrpc/methods.json` at head |

The header **Version** control stores your preference in `localStorage` and sets `data-docs-version` on `<html>`.

## Content tree model

```
apps/docs/
  src/content/docs/          # shared narrative (EN + zh-cn)
  src/data/
    rpc-catalog-0.8.x.json   # stable pin (current release line)
    rpc-catalog-next.json    # head pin
  public/data/               # same trees, fetchable by the browser
```

- **Narrative pages** (guides, concepts) are shared across channels.
- **Protocol registry** is channel-specific JSON, regenerated by `pnpm sync-protocol`.
- **Version-only blocks** can use `data-version-only="next"` (or `0.8.x`) on HTML elements; the version switcher toggles them.

<div data-version-only="next">

    Method catalog and protocol version numbers reflect monorepo head. Prefer `0.8.x` when matching a published release line.

</div>

<div data-version-only="0.8.x">

    Stable channel for the 0.8 release line. Switch to **next** in the header to track unreleased protocol methods.

</div>

## Refreshing catalogs

From `apps/docs`:

```bash title="sync-protocol.sh" frame="none"
pnpm sync-protocol
```

Commit the updated `src/data/rpc-catalog*.json` and `public/data/*` when the registry moves. The generator writes **both** channels from the same `methods.json`; freeze meaning comes from committing on a release branch, not from a separate source file.

## Try it

On [Method catalog](/api/methods/), expand any method for:

- sample JSON / TypeScript / CLI tabs
- **Try it** — edit the JSON-RPC body, copy JSON/CLI, use Mock locally, or send remotely exposed methods through the authenticated WebSocket Gateway at `ws://127.0.0.1:8777/gateway`

## Source of truth

- Protocol registry: `protocol/jsonrpc/methods.json`
- Catalog generation: `apps/docs` → `pnpm sync-protocol`
- Pins: `src/data/rpc-catalog-*.json` and `public/data/`
- Related: [Method catalog](/api/methods/) · [JSON-RPC](/api/json-rpc/) · [API overview](/api/overview/)

## Next

- Open the [stable method catalog](/api/methods/) or the [next catalog](/api/methods/next/); the header **Version** control moves between them while preserving filter and method state.

---
Source: https://carina.nebutra.com/api/versions/
Markdown: https://carina.nebutra.com/api/versions/index.md
