# Guide: Submitting to the Catalog (Components & Themes) + Staking

ChainRender's catalog — components, apps, and themes — is **open and permissionless**. You don't ask permission to
be listed; you register with a refundable stake, and your entry appears. This guide covers the submission process
and how staking works.

## The philosophy: open entry, earned prominence

**Anyone can submit; not everyone is surfaced equally.** Entry is open to any wallet with a refundable stake. What
you *earn* — through a clean history and community attestations — is *prominence*. No gatekeeper can block you; no
one can be forced to feature you. This keeps the catalog un-censorable while still letting quality rise.

## Submitting a component or app

1. **Build + grade + register** your component (see **[Deploying an App](./deploying.md)**) — it's now a live,
   content-addressed hash.
2. **Register a subname** for it via the staked registrar (see **[Registering a Subname](./registering-a-name.md)**)
   — this is what surfaces it in the catalog.
3. That's it — your entry is Active and discoverable. Prominence grows with a clean history and any attestations.

## Submitting a theme

Themes are submitted to a **ThemeSet** (the ownerless, staking-aware theme registry):

1. **Author + preview** your theme locally (see **[Authoring & Committing a Theme](./authoring-themes.md)**) —
   iterate at zero gas, and it must pass the built-in contrast + legibility invariants.
2. **Seed** the theme CSS on-chain (content-addressed → a theme id).
3. **Submit** the theme to a ThemeSet with a stake, the same open-entry model as components.

## How staking works

The stake is a **refundable anti-spam deposit** — not a fee, not a payment, not a subscription:

- **You post it** when you register/submit.
- **You get it back** after a lock window passes with no upheld flag against your entry (state: *Refunded*). Your
  entry stays; only the deposit returns.
- **It's only forfeited** (*Slashed*) if a **quorum of the immutable attester set** upholds a flag against your
  entry — e.g. spam or abuse. Even then, slashing *demotes* your entry; it never *blocks* the system or censors you.

Why a stake at all? Because open, permissionless entry needs *some* cost to deter spam — but that cost shouldn't be
a paywall or a gatekeeper's discretion. A refundable stake is the honest answer: it costs nothing to an honest
participant (you get it back) and something to a spammer (they risk it, and lose it if flagged).

## Ownerless economics

Every economic parameter — stake size, lock window, slash quorum, the treasury/sink, the reserved-name list — is
**fixed at deployment** in the ownerless registrar. No admin can raise the stake, change the rules, or seize funds.
Every wei is either refundable to you or routed by immutable rules. You're trusting code, not a foundation.

## Related
- **[Registering a Subname](./registering-a-name.md)** · **[Authoring & Committing a Theme](./authoring-themes.md)**
- **[Trust Signals & Lineage](../concepts/trust-signals.md)** — attestations + advisories, the prominence layer.
- **[Contracts → Registries](../contracts/registries.md)**
