← Toko Learn
Core concepts

How token score works.

Score is the number behind rarity. Here's how Toko computes it from a token's attributes, how it ranks, and why it sometimes goes “stale”.

Token score~6 min readCreator-leaning

A token's score is a single number derived from its attributes. It's not shown by default and it isn't rarity by itself — it's the input. In a Weighted collection the score decides which tier a token lands in; in a Tiered one it's shown as guidance while you assign by hand; in Uniform it isn't used at all.

Score vs rarity

Score is a measurement; rarity is the policy that may use it. The same score can drive an automatic tier (Weighted), merely advise you (Tiered), or be ignored (Uniform). Whether collectors even see the score is a separate per-collection setting. See the rarity article →

The formula

Every token's final score is two pieces multiplied together:

Final score = Attribute score × Layer multiplier
Attribute score — built from the numbers you map onto the token's attributes (step 1 below).
Layer multiplier — an optional weighting from the generator layers (step 2). It's 1.0 when no generator is linked, so the final score just equals the attribute score.

Step 1 — the attribute score

On the Attributes page you give attribute values a number (“Apply Values”), then pick how those numbers combine into one figure. Three methods:

Same values, three methods
Add Values
sum
10
Multiply
product
30
Highest
max
5
A token with mapped values 3, 5, 2. Add sums them (10), Multiply takes the product (30), Highest takes the single biggest (5). Multiply spreads scores out fastest; Highest rewards one standout trait.

One rule trips people up: a missing or unmapped value is left out of the calculation — it is not treated as zero, unless you explicitly map it to zero. If a token has no mapped values at all, its attribute score is empty, and so is its final score.

Step 2 — the layer multiplier

If the collection is linked to a generator, you can weight whole layers on the Layer Multipliers tab — say, make the “Background” layer matter less than “Body”. Each token's multiplier comes from its own composition and those layer weights, and it scales the attribute score into the final score. No generator linked? Every token's multiplier is 1.0 and this step does nothing.

Not the same as generator weighting

The layer multiplier is about how much a layer contributes to score. It has nothing to do with the generator's part-selection weighting (how often a part appears in the art) — that never feeds score.

Reading the rank

Score on its own is just a number; what matters is a token's rank. Crucially, rank is computed within a single token type — never across the whole collection. A type with five scoring attributes would otherwise always outscore a type with one, and sweep the top tiers.

Ranked per type, not pooled
Character · 3 tokens
#1 / 3Aurelia42
#2 / 3Bram31
#3 / 3Caro18
Item · 3 tokens
#1 / 3Sunblade9
#2 / 3Lantern6
#3 / 3Key4
Sunblade's score (9) is far below Bram's (31), but it's still #1 among Items. The UI always labels the scope, e.g. “Score Rank is within Character · 3 tokens”. In Weighted, tier quotas are filled per type too.

Fresh vs stale

A score is only meaningful if it reflects the token's current inputs, so every token carries a freshness flag. Change something that feeds the score and it flips to stale until it's recomputed:

The freshness loop
Fresh → you change an input → Stale → Refresh / recompute → Fresh
Triggers: editing composition or attribute values (while Draft), changing the value→number mapping, changing layer weights, or switching the calculation method. A bulk Refresh all stale recomputes in one go (and reports any per-token failures).
Stale blocks go-live

A token can't move Review → Live while its score is stale (or while a recompute is running). That's deliberate — it guarantees every live token's tier and score reflect its real, current inputs, not a half-finished edit.

Deterministic and stable

Two guarantees make scores trustworthy. Stability: adding more tokens to a collection never changes an existing token's score — only that token's own inputs can. Determinism: when Weighted assigns tiers it orders tokens by final score, breaking ties by creation time then token id, so a rebalance produces the exact same result every time it's run on the same inputs.

In short

  • Score is an input, not rarity. Weighted uses it to assign tiers; Tiered shows it as guidance; Uniform ignores it.
  • final score = attribute score × layer multiplier (multiplier is 1.0 with no generator).
  • Attribute score combines mapped values by Add, Multiply, or Highest; unmapped values are skipped, not zeroed.
  • Rank is within a token type, never across the whole collection.
  • Stale scores block go-live until recomputed; scores are stable and assignment is deterministic.