Public list of co-branded partner themes that the 1AM wallet (chrome extension and mobile) renders in Settings → Team Settings → Partner Team.
The wallet fetches registry.json from this repo at startup, caches the
result for one hour, and surfaces each entry as a selectable partner theme
in the picker. Adding a new partner is a one-PR change here — no wallet
release required for palette / metadata updates.
Logos are NOT loaded from this registry. Each partner ships a compiled SVG component in the wallet codebase, looked up by
logoId. New partners require both a registry PR here AND a wallet release that adds their brand-mark component. This is a deliberate security trade-off (no inline SVG injection from a remote JSON).
Every palette (both light and dark) must define all six fields, each as
a #RRGGBB or #RGB hex color. The wallet rejects entries with missing,
non-string, or non-hex values.
| Field | Purpose |
|---|---|
accent |
Primary brand color — buttons, badges, focus rings |
accentSoft |
Tinted-background variant of accent (low-emphasis) |
canvas |
App background (the outermost surface) |
surface |
Card / panel background |
surfaceAlt |
Secondary card surface (hover, nested rows) |
header |
Top chrome / nav strip |
Partner identities are typically locked: both light and dark palettes
should usually be the same dark expression so the brand stays consistent
regardless of the user's wallet light/dark mode toggle (mirrors the 1AM
mobile picker, which renders partners as canonical dark).
idmust match^[a-z0-9-]+$and be unique across the partner list.- All string fields are required and non-empty (after trimming).
baseThememust be one of:classic,midnight,ember.fontPackmust be one of:classic,modern,expressive,sci-fi,clean. Defaults toclassicwhen omitted.- Both
palettes.lightandpalettes.darkmust be present and complete. - Entries failing any check are silently dropped at the wallet — submit a clean entry to ensure your partner appears in the picker.
- Open a PR adding a new object to the
partnersarray inregistry.json. - Coordinate a wallet release that adds your brand-mark SVG component to
entrypoints/components/PartnerLogo.tsx(extension) and the mobile equivalent. The component must be referenced by yourlogoId. - Wallet caches refresh hourly; users see your partner theme automatically on the next sync after both the JSON and the logo land.
The wallet fetches this URL:
https://raw.githubusercontent.com/webisoftSoftware/1AM-partner-theme-registery/main/registry.json
…with this fallback chain:
- Fresh cache (≤ 1 hour old) → use cached entries.
- Live fetch from this repo → cache + use response.
- Stale cache → use cached entries.
- Bundled fallback in the wallet binary → use that.
So even if this repo is unreachable, the wallet still surfaces whatever partners shipped in the last release.
{ "version": 1, "partners": [ { "id": "ascend", // unique slug; must match logoId "name": "Ascend Markets", // display name in picker "author": "Ascend Markets × 1AM", // sub-line in picker "tagline": "Ascend Markets × 1AM co-brand", // one-line description "shortLabel": "ASCEND", // wordmark in header chrome "logoId": "ascend", // resolves to a wallet SVG component "baseTheme": "ember", // base for derived semantic vars; "classic" | "midnight" | "ember" "fontPack": "classic", // "classic" | "modern" | "expressive" | "sci-fi" | "clean" "palettes": { "light": { /* 6 hex colors — see below */ }, "dark": { /* 6 hex colors — see below */ } } } ] }