# Polygon wearable intake valuation — rubric v1, active 100× GTIX denomination

This rubric sets GTIX **shop-credit offers**, not cash valuations or guaranteed resale prices. GTIX has no external price peg. Every design in the official Polygon wearable catalog is assessed, including blocked designs. Sparse evidence earns a small salvage offer rather than an invented market value. A blockchain-verified trade still does not prove that the wallets have different beneficial owners.

## Evidence and scope

Snapshot: 9 September 2026, 15:50:23 UTC. The official marketplace returned **10,736 designs across 5,574 collections**, plus **5,685 completed sales** from the preceding 90 days. All item identifiers, collection approval flags, completion flags, ERC721 support, creators, rarity and item supply were checked against Polygon at the recorded snapshot block.

**9,337 designs pass eligibility checks. 1,399 are blocked**: 666 have a collection approval flag of false; 1,223 have an empty on-chain item content hash; those sets overlap by 490 designs. A missing content hash is treated conservatively as incomplete evidence, not a claim that the wearable is fraudulent. Catalog presence alone is insufficient to approve a payout. Unminted but otherwise eligible designs can be assessed; a seller must actually own a minted NFT before trading.

The snapshot contains 1,019 secondary sales across only 644 designs; the remaining 4,666 sales are primary mints. Volume, mint count and favorites alone are not reliable evidence of independent demand. Prices and activity outside this marketplace are not covered.

Raw snapshots, on-chain observations and receipt checks are preserved in `pricing/evidence/`. The compressed files and derived plans are hashed. Every design's inputs, score, price, tier and reasons are in [the complete CSV](/full-catalog-rubric.csv). The CSV is a dated valuation assessment, not a live quote.

## Mandatory eligibility gates

- Exact chain 137, official catalog collection address, item ID and DCL wearable URN.
- Collection must be completed, currently approved by Decentraland and support ERC721. The canonical creator is read from the contract.
- Item must have a nonempty on-chain content hash, matching rarity and valid minted/max-supply figures.
- A trade must prove membership in the current published pricing root. The contract checks collection approval, completion and creator again at settlement.
- Pauses, targeted blocks, expiry, ownership, NFT approval and spending limits override the score. Blocked designs receive no positive-price leaf or payout.

## The 100-point rubric

All component factors are clamped to 0–1. Scoring is defined in `pricing/catalog-rubric.mjs`; the active denomination scales its monetary outputs by 100 through `pricing/redenomination.mjs`. The formulas below show the active denomination. Counts below refer to filtered secondary sales unless explicitly labeled otherwise.

| Component | Weight | Calculation |
|---|---:|---|
| Demand | 25 | 60% × distinct buyers / 10 + 40% × 30-day sales / 8 |
| Liquidity | 20 | 50% × active trading days / 8 + 30% × share of sales in last 30 days + 20% × 10 × sales / minted supply |
| Paid-price support | 15 | log(1 + lower-quartile paid MANA) / log(101); full weight at 100 MANA |
| Trading distribution | 15 | 50% × distinct sellers / 8 + 50% × (1 − top-buyer transaction share) / 0.8 |
| Supply | 10 | 70% × minted fraction + 30% × log(1 + 100,000 / maximum supply) / log(100,001) |
| Durability | 10 | 40% × design age / 365 days + 60% × active trading days / 6 |
| Favorites | 5 | log(1 + favorites) / log(101); capped at 100 favorites |

Rarity affects only the small supply component. Favorites cannot qualify a design for a premium. Primary paid sales, distinct primary buyers, available mint supply, recent sale age and free-mint availability are recorded. Primary asks, collection branding and nominal rarity are never treated as guaranteed resale proceeds. Current holder concentration and actual in-world wear frequency are unavailable in these sources: they are explicitly marked unavailable and earn no assumed premium.

## Filtering and receipt verification

Only positive-price secondary `order` and `bid` sales within the fixed 90-day window are considered for demand premiums. Exclude self-sales, creator/beneficiary counterparties, addresses appearing on both sides of trading, repeatedly traded token IDs, repeated transaction hashes and more than one observation per unordered buyer/seller pair per calendar week. Exclude prices below one quarter or above four times the initial median; report the excluded counts.

Every sale supporting a premium must pass a receipt check: successful transaction, at least 128 confirmations, matching NFT transfer from the reported seller to buyer, exact MANA debit from that buyer and matching block timestamp. Unsupported escrow or aggregate payment patterns are excluded conservatively. Of 34 candidate sales in this snapshot, 33 passed. MANA prices are used only as a bounded rubric feature; they are not converted into a GTIX cash peg.

These rules reduce obvious wash-trading signals. Coordinated wallets can still evade them, which is why the contract separately enforces hard spending budgets. Actual holder distribution, independent-wallet identity, and off-platform liquidity are not proven.

## Price tiers

| Tier | Evidence requirement | First-copy base offer |
|---|---|---:|
| Blocked | Fails authenticity, content or evidence gates | 0 GTIX |
| Salvage | Does not meet all emerging/established requirements | 1 GTIX |
| Emerging | At least 2 filtered sales, 2 buyers, 2 sellers and 2 trading days; at least 1 sale in 30 days; top buyer ≤50%; every retained sale receipt-verified | max(5, floor(25 × score/100)) GTIX |
| Established | At least 8 filtered sales, 5 buyers, 3 sellers and 3 trading days; at least 2 sales in 30 days; top buyer ≤35%; interquartile price spread / median ≤1; every retained sale receipt-verified | max(50, floor(500 × (score/100)²)) GTIX, capped at 500 |

An item currently mintable for free through the standard primary minter is capped at salvage. Prices from newer trade-based listings have mixed units in the legacy API and are not treated as a verified free-mint signal. Any fallback must lower confidence; missing sales never become fabricated positive evidence.

Current result: **9,325 salvage, 12 emerging, 0 established, 1,399 blocked**. The first-copy offers sum to **9,418 GTIX**. No design is artificially promoted just to produce a more varied price list. The 12 emerging offers range from 6 to 11 GTIX in this snapshot.

## Inventory curve and spending protection

For `n` acquired copies of a design still held by the shop:

`next payout = floor(baseOfferInTokenUnits / (n + 1)²)`

There is no configured duplicate count cap and no positive payout floor. For a 1-GTIX base, the first, second, fifth and tenth copies pay 1, 0.25, 0.04 and 0.01 GTIX. Integer rounding is at 18 decimal places. A zero quote cannot take the NFT.

| Enforced limit | Maximum |
|---|---:|
| Initial global acquisition budget | 200,000 GTIX, cumulative and not refillable in this contract |
| Global daily acquisition spending | 25,000 GTIX per UTC day |
| Per-collection cumulative spending | 5,000 GTIX |
| Per-creator cumulative spending | 10,000 GTIX |
| Per-seller daily spending | 1,000 GTIX per UTC day |
| Per-design cumulative spending | Four times its published base; never over 2,000 GTIX |
| Base offer | 500 GTIX |
| Contract publication window | 7 days; the owner-approved catalog is automatically renewed unchanged |

Counters survive root changes, price changes, pause/unpause and resales. Lowering a published design budget below already-spent amounts stops further intake for that design. Raising it still cannot reset spending or exceed the fixed contract caps. Wallet splitting cannot reset design, collection, creator or global counters; the per-seller limit alone is not Sybil protection.

With unchanged prices and stock only increasing, the catalog's payout is bounded by the sum of its base offers × π²/6, approximately **15,492 GTIX** for this snapshot. The separate sum of design lifetime budgets is **37,672 GTIX**. Neither figure is a perpetual guarantee if the administrator later changes the catalog or base prices; the fixed global 200,000-GTIX cap remains.

## Settlement and custody

Customers approve one NFT to the store, then accept a reviewed exact minimum payout and deadline. The contract verifies delivery to the inventory wallet before paying GTIX; a failed transfer reverts both sides. A tracked NFT cannot be paid for twice. Direct wallet deposits earn no GTIX, cannot manipulate tracked stock, and are deliberately excluded from purchasable inventory. This is an intentional custody policy.

Customers can sell eligible wearables to the pawn shop and buy acquired inventory for a fixed **1,000 GTIX**. Each inventory NFT is approved individually; checkout requests its custody signature automatically and the buyer confirms submission in their wallet. No collection-wide inventory operator approvals are granted. Use the [inventory checkout](https://decentraland-pawn-shop.web.app/mainnet.html#shop-inventory). That price is at least twice the largest permitted intake base; spending budgets never refill on resale. Reconciliation of missing inventory is admin-only and also never restores budgets.

## Refresh and operating procedure

1. Run `node scripts/snapshot-full-catalog.mjs` and `node scripts/snapshot-catalog-chain.mjs` to capture complete new evidence. Investigate mismatches and missing pages; never assume an empty error response means zero demand.
2. Run `node scripts/prepare-catalog-premiums.mjs` to generate candidate premium-sale IDs, run `node scripts/verify-catalog-sales.mjs`, and run `node scripts/build-full-catalog.mjs`. Apply the active 100× denomination through `pricing/redenomination.mjs` before building the renewal root. Review the CSV, changed eligibility, price jumps, concentration and total exposure. Preserve dated previous evidence before replacing snapshots.
3. Rehearse the exact proposed root and prices. A catalog renewal must publish the reviewed root through the existing store's administrator and update the matching website data together; do not deploy another store or reset counters as a refresh shortcut.
4. Verify the new root, evidence timestamp and unaffected cumulative counters on two RPC providers before advertising the refresh. The owner-approved catalog is maintained by a private job that checks every six hours and renews the same root when three days remain. These renewals reaffirm existing shop prices, not new market evidence. Repricing requires a separate owner-approved root. A prolonged maintenance failure can still trigger the contract’s seven-day gate.
5. Block a design or collection, or pause intake, when authenticity, abnormal activity or delivery concerns arise. Future gas sponsorship needs separate request and gas budgets; this price curve does not stop HTTP spam.

The current activation script is for a one-time replacement deployment and allowance migration. It refuses replay of unknown submissions. Publishing changed prices requires newly reviewed evidence and owner approval. The maintenance job only reaffirms the unchanged approved root; running a fresh snapshot alone does not update live offers.

## Primary sources

- [Official marketplace server and API implementation](https://github.com/decentraland/marketplace-server)
- [Completed-sales API](https://docs.decentraland.org/apis/apis/marketplace-server/sales)
- [Official wearable metadata definitions](https://docs.decentraland.org/contributor/content/entity-types/wearables)
- [Official deployed contract addresses](https://github.com/decentraland/contracts/blob/gh-pages/addresses.json)

The API source compares sales timestamps in milliseconds, despite its OpenAPI description saying seconds. The snapshot script verifies and uses the implemented units. Legacy item asking-price fields may mix MANA and USD-pegged units; they are not used as a direct valuation or GTIX conversion.
