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”.
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 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:
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:
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.
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.
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:
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.