---
title: "Keychains — The Living Charm"
description: "Luck, the three rarity rolls, polish, the keeper bond, christening, and wearing your charm — the complete rulebook for a Keychain's life."
category: "keychains"
keywords: ["luck", "odds", "polish", "streak", "PriceRank", "finish", "chain", "christen", "bond", "equip", "attestation"]
last_updated: "2026-10-11"
---

# The Living Charm

A Keychain's look is its own. Its colors, its finish, and the metal of its chain are rolled at the crank and fixed forever. What your PD life buys is **luck**: better odds on those rolls, at the moment you crank.

**How:** Crank the machine at Le Depanneur ☯. Your PriceStreak and PriceRank set your luck for that crank, and the machine shows your live odds before you turn it.

<svg viewBox="0 0 720 240" role="img" aria-labelledby="charm-anatomy-title" style="width:100%;height:auto;display:block;margin:14px 0">
<title id="charm-anatomy-title">A Keychain, annotated: the ring on the tag row, the chain whose metal is the charm's own roll, the charm body whose finish is its own roll, and the luck your streak and rank buy at the crank.</title>
<g font-family="'Courier New', Courier, monospace" font-size="13" font-weight="bold">
<text x="200" y="36" fill="currentColor" text-anchor="middle" font-size="13">⊂ ring ⊃</text>
<text x="260" y="36" fill="currentColor" text-anchor="middle" font-size="15">①&#xFE0E;</text>
<text x="200" y="64" fill="currentColor" text-anchor="middle" font-size="13">|</text>
<text x="200" y="86" fill="currentColor" text-anchor="middle" font-size="13">o</text>
<text x="200" y="108" fill="currentColor" text-anchor="middle" font-size="13">o</text>
<text x="260" y="96" fill="currentColor" text-anchor="middle" font-size="15">②&#xFE0E;</text>
<text x="200" y="130" fill="currentColor" text-anchor="middle" font-size="13">o</text>
<rect x="160" y="146" width="80" height="70" fill="var(--stat-bg)" stroke="currentColor" stroke-width="1.5"/>
<text x="200" y="176" fill="currentColor" text-anchor="middle" font-size="14">[·_·]</text>
<text x="200" y="198" fill="currentColor" text-anchor="middle" font-size="11" font-weight="normal">glitter</text>
<text x="260" y="186" fill="currentColor" text-anchor="middle" font-size="15">③&#xFE0E;</text>
<rect x="380" y="60" width="300" height="130" fill="none" stroke="currentColor" stroke-width="1.5" stroke-dasharray="5 4"/>
<text x="530" y="90" fill="currentColor" text-anchor="middle" font-size="13">LUCK</text>
<text x="530" y="116" fill="currentColor" text-anchor="middle" font-size="12" font-weight="normal">streak + rank at the crank</text>
<text x="530" y="138" fill="currentColor" text-anchor="middle" font-size="12" font-weight="normal">frozen into the charm</text>
<text x="530" y="172" fill="currentColor" text-anchor="middle" font-size="15">④&#xFE0E;</text>
</g>
</svg>

- **①&#xFE0E; The ring** — every worn charm hangs from the profile's tag row.
- **②&#xFE0E; The chain** — six links on every charm; the metal is the charm's own roll: STEEL, rare CHROME, ultra GOLD.
- **③&#xFE0E; The finish** — the charm's own roll: MATTE, GLOSS, GLITTER, and the ultra pulls GOLD and CHROME.
- **④&#xFE0E; Luck** — your streak and rank at the crank, frozen into the charm as its Luck trait.

## Luck — what your streak buys

At the crank, the app vouches for your current PriceStreak and PriceRank, and the machine works out your **luck tier** on chain. Your tier is the better of the two:

| Luck | PriceStreak | or PriceRank |
|---|---|---|
| 0 | under 7 days | below Regular |
| 1 | 7 days | Regular (tier 3) |
| 2 | 30 days | Respected (tier 6) |
| 3 | 100 days | Legend (tier 9) |

Every charm makes three rarity rolls: its palette, its finish, and its chain metal. Each one lands on a four-rung ladder, and luck moves the odds on all three:

| Luck | COMMON | UNCOMMON | RARE | ULTRA |
|---|---|---|---|---|
| 0 | 60% | 25% | 11.5% | 3.5% |
| 1 | 57% | 25% | 12% | 6% |
| 2 | 53% | 25% | 13% | 9% |
| 3 | 50% | 25% | 14% | 11% |

Luck takes from COMMON and gives to RARE and ULTRA; UNCOMMON never moves. At the top tier an ULTRA pull is better than three times as likely as at the floor.

What each rung means:

| Roll | COMMON | UNCOMMON | RARE | ULTRA |
|---|---|---|---|---|
| Finish | MATTE | GLOSS | GLITTER | GOLD (60%) or CHROME (40%) |
| Chain metal | STEEL | STEEL | CHROME | GOLD |
| Palette | MALLRAT · BLUEBERRY · BUBBLEGUM · CREAMSICLE | VAPOR · SLIME · CHERRY · SEAFOAM | GRAPE · SKY | ACID · STATIC |

Your coin slot picks which member of a palette rung you get; the [overview](/docs/keychains/overview#every-trait-every-odds) has the exact split.

The machine shows what your luck is buying before you crank: your streak on a bar toward the next tier, your live RARE and ULTRA odds, and the days left to the next tier.

**Luck is frozen at the crank.** It shows on the charm forever as its **Luck** trait (0–3) — provenance, proof the charm came out of someone deep in PD. Luck only changes the odds of the roll. It never repaints a charm afterwards: a luck-3 MATTE charm stays MATTE.

**If the app can't vouch for you,** the machine still turns, at luck 0 — the floor odds. The machine tells you when that happens. It can't be gamed, because luck 0 is the worst tier there is.

## Polish — your life, written on the charm

A charm also carries two traits about its keeper: **PriceStreak** and **PriceRank**. Polish writes your current numbers onto them.

**How:** Le Depanneur ☯ → tap your charm → **POLISH**.

On chain, the full ritual:

1. The app signs a sealed statement of your current PriceStreak and PriceRank, with PD's attestation key, addressed to your wallet and your specific charm.
2. You submit it and pay the gas — pennies. PD pays nothing.
3. The charm's PriceStreak and PriceRank traits update.

Polish never changes the art. A charm polished at a thousand-day streak looks exactly like it did the day it dropped.

The fine print that keeps it honest: each signed statement works **once** (it carries a counter the contract ticks forward), **expires** if you sit on it, is **keeper-only** (nobody can polish your charm, and you can't polish one you don't own), and is **tamper-proof** — edit a single digit and the contract rejects it.

## The bond

A keeper's life can't be bought. When a charm changes hands:

| On a hand-to-hand transfer… | |
|---|---|
| PriceStreak and PriceRank traits | **reset to 0** |
| polish history | **cleared** |
| shape, palette, finish, chain, face, pose, accessory | survive forever |
| Luck | survives forever |
| christened name | survives forever |

The new keeper polishes their own life onto it. The look never changes hands differently from how it dropped: a GOLD chain bought secondhand is still a GOLD chain.

## Christening

Once — and only once, ever — a keeper may name their charm:

- **2 to 12 characters**: capitals A–Z, digits 0–9, and one space between words (never leading, trailing or doubled).
- The name is engraved on a **white tag hanging off the keyring**, in the house type.
- It is **permanent across all future keepers**. Sell MOMO and MOMO stays MOMO.

Choose like it's forever, because it is.

## Wearing it

Wear as many of your Keychains as you like — your chosen **top three** hang as mini charms at the end of your profile tags, or SHUFFLE draws the hanging three fresh from your worn pool on every visit. Nothing is worn by default; the flex is a choice. Tap anyone's worn charm to see the full keychain, chain and all.

## Built to outlive everything

The charm's genes, its luck, and its rolls are frozen at the crank; the art — including the swing and the blink — is drawn by the contract itself, forever, with no server in the loop. If PD's lights went out tomorrow, every Keychain would keep rendering, keep swinging, and keep blinking.
