Agent index (llms.txt) — fetch this first, then the page it names.
orama cluster and operator
Cluster-wide settings, namespace creators, and the wallets that operate a cluster. Every command and flag below comes from the orama command tree, so it matches the binary.
Global conventions are on the CLI overview.
orama cluster
Register this cluster on the chain, and remove a tenant namespace
orama cluster
Register the cluster's public name on the chain, retire it, and remove a tenant's namespace as an operator. Who may create namespaces and the cluster's update policy are maintainer commands: see 'orama maint cluster'.
Subcommands: namespace, register-onchain, retire-onchain
orama cluster namespace
Operator actions on a namespace
orama cluster namespace
Subcommands: remove
orama cluster namespace remove
Remove a namespace whose owner can no longer delete it
orama cluster namespace remove <namespace> [flags]
Remove a namespace and everything in it: its cluster on every node, its deployments, its stored content (unless another namespace holds the same), its keys and its grants. The owner deletes a namespace with 'orama namespace delete'. This is for a namespace whose owner cannot: the owner's wallet is lost, or it belonged to a test run's throwaway wallet. Such a namespace keeps its port blocks and processes on three nodes until an operator removes it. It needs the operator grant and a wallet on the operator list. --reason is required and is written to the audit trail with your wallet (namespace.operator_remove). You are asked to type the namespace name unless --force is given.
| Flag | Default | Description |
|---|---|---|
--force | false | Do not ask to type the namespace name |
--reason | — | Why the namespace is removed; recorded in the audit trail [required] |
orama cluster register-onchain
Register this cluster's public name on the Orama chain
orama cluster register-onchain [flags]
Register an optional public row for this cluster on the Orama chain. The row is the operator, the cluster id, the base domain, the public endpoints, and an optional metadata URI. It does not include node addresses, tenants, or any cluster secret, and registering it does not join a node. --node is that chain's REST API. The command reads the account there, builds a SIGN_MODE_DIRECT transaction, asks the RootWallet agent to sign that one transaction, and broadcasts it. Without --node it prints the sign document and does not submit anything. --onion sends the same transaction to a validator onion service through a Tor SOCKS proxy on this machine instead, on a fresh circuit, and never falls back to the clearnet: when Tor or the service is unreachable the command fails and the transaction is not sent. The fee is an explicit amount of norama. There is no default.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--base-domain | — | Public base domain [required] |
--chain-id | — | Chain id [required] |
--endpoint | — | Public endpoint (repeatable) [required] |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--id | — | Cluster id [required] |
--metadata-uri | — | HTTPS metadata URI |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--operator | — | Operator account (orama1...) [required] |
--pubkey | — | Compressed secp256k1 pubkey hex; required when the account has not signed before |
--sequence | 0 | Account sequence, when not read from --node |
orama cluster retire-onchain
Retire this cluster's public row on the Orama chain
orama cluster retire-onchain [flags]
Retire the optional public cluster row. This does not change any node and does not delete the cluster's namespaces. Without --node the command prints the sign document and does not submit it.
| Flag | Default | Description |
|---|---|---|
--account-number | 0 | Account number, when not read from --node |
--chain-id | — | Chain id [required] |
--fee | — | Fee in norama [required] |
--gas | 0 | Gas limit [required] |
--id | — | Cluster id [required] |
--node | — | Chain REST API, for example http://127.0.0.1:31003; the command returns once the transaction is in a block, and fails if the block refuses it |
--onion-network | — | Start a Tor client for this Orama Tor network file (tor-network.json) and submit through it; without --onion a validator onion from the file is picked at random ($ORAMA_ONION_NETWORK) |
--onion-socks | — | Tor SOCKS5 address for --onion, a loopback host:port (default 127.0.0.1:9050, $ORAMA_ONION_SOCKS) |
--onion-tor | tor | The tor binary --onion-network starts |
--onion | — | Submit through this validator onion service (addr.onion[:port]) over Tor instead of --node; never falls back to the clearnet ($ORAMA_CHAIN_ONION) |
--operator | — | Operator account (orama1...) [required] |
--pubkey | — | Compressed secp256k1 pubkey hex of the signing account |
--sequence | 0 | Account sequence, when not read from --node |
orama maint cluster
Choose who may create namespaces on this cluster, and its update policy
orama maint cluster
Who may create a namespace on this cluster, and how many one wallet may own. A new cluster allows only its operators. A cluster that already had a namespace besides the seeded default, a node, or an operator when this was upgraded stays open — any signed-in wallet — until an operator changes it. The per-wallet cap stays 10 until an operator raises or lowers it. Changing a setting or the creator list needs the operator grant and a wallet on the operator list, and is written to the audit trail.
Subcommands: creators, settings
orama maint cluster creators
Wallets that may create namespaces when creation is allowlist
orama maint cluster creators
The allowlist consulted when namespace creation is allowlist. An operator is not on it unless added. An empty list lets nobody create a namespace, and removing the last wallet does not lock operators out.
Subcommands: add, list, remove
orama maint cluster creators add
Let a wallet create namespaces when creation is allowlist
orama maint cluster creators add <wallet>
orama maint cluster creators list
List wallets allowed to create namespaces
orama maint cluster creators list
orama maint cluster creators remove
Take a wallet off the namespace-creator list
orama maint cluster creators remove <wallet>
orama maint cluster settings
Show or change the cluster's settings
orama maint cluster settings
Subcommands: set, show
orama maint cluster settings set
Change namespace creation, the per-wallet cap or the update policy
orama maint cluster settings set <setting> <value>
namespace-creation is operators, allowlist or open.
operators only wallets on the operator list
allowlist only wallets added with orama maint cluster creators add
open any signed-in wallet
max-namespaces-per-wallet is an integer from 1 to 10000. The default is 10.
The cluster's automatic updates (docs/whitepaper/technical-reference/vol1/29-build-signing-and-release.md, "Auto-update"):
auto-update off, notify (the default) or auto. notify reports a newer
release in 'orama status'; auto installs it, one node at a
time, when the cluster is healthy and the hour is in the window
update-channel the release channel to follow: stable (the default) or nightly
update-window start-end hours UTC when auto may install, for example 1-5;
empty for any hour
release-repo the https URL of the release repository; empty (the default)
means no updates are looked uporama maint cluster settings show
Show who may create namespaces, the per-wallet cap and the update policy
orama maint cluster settings show
orama maint operator
Operate the cluster
orama maint operator
Commands for the wallets on the cluster's operator list. Every one of them needs the admin grant and a wallet on that list; a namespace's own admin key is not enough.
Subcommands: add, list, remove, rotate-secrets, rotate-signing-key
orama maint operator add
Let another wallet operate this cluster
orama maint operator add <wallet>
orama maint operator list
List the wallets that operate this cluster
orama maint operator list
orama maint operator remove
Take a wallet off this cluster's operator list
orama maint operator remove <wallet>
orama maint operator rotate-secrets
Re-encrypt stored secrets, optionally under a new encryption root
orama maint operator rotate-secrets [flags]
Rewrite function secrets, push tokens, TURN secrets, deployment environments and agent tokens onto the versioned envelope (enc:v1:<id>:). A deployment's environment is written as enc:v2:<id>:, sealed to its namespace and deployment id, so a copy of the ciphertext in another deployment's row does not open. This is also what turns on bound writes: until it has run, gateways keep writing deployment environments in the envelope an older gateway reads. Without --rotate the IKM does not change: leftover plaintext and the legacy enc: form are rewritten so a captured snapshot of the old format is no longer the live one, and Decrypt can fail closed. With --rotate a new encryption root is generated. Existing ciphertext is re-encrypted under it. A disk that holds only the previous root cannot open the new rows. IPFS-Cluster and the mesh bearer are not touched. Do not run this until every gateway is on a binary that can read enc:v2:. The walker is idempotent; if it is interrupted, run it again.
| Flag | Default | Description |
|---|---|---|
--rotate | false | Generate a new encryption root and re-encrypt under it |
orama maint operator rotate-signing-key
Replace the key this gateway signs tokens with
orama maint operator rotate-signing-key
Generate a new signing key for the gateway, publish it, and start signing with it. Nobody is signed out. The outgoing key keeps verifying the tokens it already signed until they expire on their own, so both keys are accepted for one access-token lifetime and then the old one stops. The key used to be derived from the cluster secret, which meant there was nothing to rotate to: changing it meant changing the cluster secret, which invalidates every token in the cluster at once.