Documentation

How Chroma reads color

Chroma turns a name into a palette. No wallet, no chain data — just language, reasoned into color the way a brand designer would.

01

The pipeline

A

Input

You drop a token name, ticker, or a one-line theme. That's the only signal Chroma needs.

B

Reason

The agent (Claude Haiku 4.5 via OpenRouter) maps the name's connotations onto a 6-axis color model.

C

Output

A 5-swatch named palette, a mood report, axis scores, and a visual direction — returned as structured JSON.

02

The six axes

Every name is scored 0–100 on six perceptual axes. The scores drive the palette — high energy pushes toward saturated reds and yellows, high trust pulls toward deep cyan and ink, high glow adds luminous accents.

ENERGY
WARMTH
TRUST
EDGE
DEPTH
GLOW
  • Energy — how loud and kinetic the name feels.
  • Warmth — warm (red/yellow) vs cool (cyan/violet) bias.
  • Trust — stability and credibility the name projects.
  • Edge — how sharp, aggressive, or subversive it reads.
  • Depth — richness vs flatness; how much dark anchoring it wants.
  • Glow — luminosity; whether the palette should feel lit from within.
03

What you get back

Palette
5

Named hex swatches, ordered dominant → accent, built to work together.

Mood report
2–3

Sentences describing how the token feels and why these colors.

Direction
4+3

Visual-direction notes (type, texture, motion) and usage suggestions.

04

API

The demo talks to a single endpoint. Send a subject, get a structured reading. Rate-limited per IP for the public demo.

POST /analyze

Request body: { "subject": "SolStorm" }

Response (trimmed):

  • subject — echoed, title-cased
  • tone — short vibe label, e.g. "Hot & Electric"
  • palette[]{ hex, name } × 5
  • mood — the mood report
  • axes — six 0–100 scores
  • direction[], usage[] — guidance arrays
  • remaining — analyses left today on your IP

Model: anthropic/claude-haiku-4.5 through OpenRouter. Output is strict JSON, validated before it reaches you.

Read a color now

$CHROMA · LIVE DEMO

CATBA