Product name: Cortex
Org / repo: CortexLM/cortex
This repo used to ship as “BASE” / BaseIntelligence/base. Human-facing
docs and GitHub metadata now say Cortex. A large set of wire, deploy, and
crypto identifiers still spell base / BASE_*. Changing those forks the
subnet or breaks measured miner CVMs and live droplets. Do not “fix” them
in a drive-by rename.
| Use | Spelling |
|---|---|
| Product, README, PR titles, comments that mean the project | Cortex |
| This GitHub repository | CortexLM/cortex |
| Typed config crate keys (canonical) | BASE_* |
| Typed config crate aliases (optional) | CORTEX_* (same suffix) |
| Cryptographic domain tags, signing context | base-*-v1 (frozen) |
| Compose project, host paths, GHCR package path | base / /opt/base / ghcr.io/baseintelligence/base/* |
crates/config reads BASE_* as the canonical names. Matching
CORTEX_* names are accepted as aliases (CORTEX_ROLE ≡ BASE_ROLE,
CORTEX_CONFIG ≡ BASE_CONFIG, …).
- If both are set,
BASE_*wins. - Deploy compose, droplet env files, and miner CVM
app-compose.jsonmust keep emittingBASE_*. Those strings are measured (RTMR3 / pin continuity). - Other crates and scripts may still read
BASE_*directly. Do not rename those readers unless you also keep theBASE_*spelling.
Canonical keys today: BASE_ROLE, BASE_NETUID, BASE_CHAIN_ENDPOINT,
BASE_CHAIN_ENDPOINTS, BASE_GATEWAY_ENDPOINT, BASE_DATABASE_URL,
BASE_DATABASE_URL_FILE, BASE_EPOCH_LENGTH, BASE_MIN_SHARE_MASS_BPS,
BASE_ROTATION_EPOCHS, BASE_MIN_PEER_SAMPLE, BASE_MAX_COLLATERAL_AGE_SECS,
BASE_DOMAIN, BASE_CONFIG. Many other BASE_* knobs exist outside
crates/config (gateway owner flag, challenge secrets, deploy paths). Those
are also frozen spellings.
Optional local config file remains base.toml (path from BASE_CONFIG /
CORTEX_CONFIG).
crates/crypto binds signatures to static tags. Examples (not exhaustive):
- signing context:
base-sr25519-v1 base-bundle-v1,base-rawweight-v1,base-dissent-v1,base-root-v1base-attest-v1,base-trustroot-v1- design:
base-design-round-id-v1,base-design-submission-v1,base-design-pair-id-v1
Renaming a tag makes old signatures unverifiable. Leave them.
Leave these as base even in new docs that mention them:
| Kind | Example |
|---|---|
| Droplet checkout | /opt/base |
| Miner CVM secret dir | /run/base/ |
| Validator LKG default | /var/lib/base/last-sealed.bundle |
| Age identity | /etc/base/age-identity.txt |
| Compose project | COMPOSE_PROJECT_NAME=base |
| Sandbox name prefix | base-design- (pinned in DESIGN_CHALLENGE.md) |
| GHCR packages | ghcr.io/baseintelligence/base/<suffix> |
| systemd units | base-real-seal.timer, base-burn-seal.timer |
| Host nicknames | base-staging, base-prod, … |
GHCR still publishes under the historical baseintelligence/base package
path. Image contents are this Cortex tree; the registry path is a pin,
not the product name.
- Live gateway hostname
chain.joinbase.aiis operator DNS, not a GitHub brand string. Do not retarget it from a docs-only PR. - Subnet netuid and on-chain names stay whatever the chain already uses.
Miner-facing documentation still lives in the historical public repos until those orgs publish a CortexLM mirror:
This monorepo’s operator mirror is docs/external-miner/.
Do not rewrite those URLs here unless the public repos actually move.
HuggingFace / GitHub top-model defaults (BaseIntelligence/top-prism-architecture,
BaseIntelligence/prism top-model/) are publish targets configured in
compose. Changing the default without a matching Hub/GitHub move breaks
top-model publish.
design_rating is a live table (see crates/design-db,
crates/design-store-pg). It is unrelated to the removed unused crate
crates/design-rating. Do not drop the table or its accessors as part of
branding work.
docs/evidence/ and docs/spikes/ may still say BASE / BaseIntelligence.
Those paths are non-normative. Do not rewrite them in a cleanup pass
(see AGENTS.md).