# Stat provenance Generated by `node tools/stat-provenance.mjs` at commit `82e4d2b5` (2026-09-26). `CLAUDE.md` rule 3 and `CONCEPT.md` §9.1: **every number the UI shows must map to a public get-method**, and every parameter to `shared/params.json`. This file walks the chain that claim rests on and reports every link that does not close. ``` webapp/src/api/* -> the read-proxy route it fetches read-proxy route -> the chainClient function(s) that route calls chainClient function -> the get-method named in its `provenanceBase` ``` ## What this proves, and what it does not It proves the **supply** side: that each route the webapp fetches resolves to named get-methods. It cannot prove the **demand** side — it cannot see a number a component renders, because rendering is JSX over values whose provenance is not in the identifier. A component that fetches nothing and prints `1.02 TON` is invisible to the chain walk; §5 below is the partial cover for that (literal scan), and a human read is the rest. **Do not read a clean run here as "§9.1 is satisfied".** Read it as "no route serves a number it cannot attribute". ## Summary | | count | |---|---:| | read-proxy routes | 121 | | routes resolving to at least one get-method | 114 | | read-proxy routes with no get-method behind them | **7** | | indexed/tallied routes (other services, no get-method by design) | 33 | | distinct webapp api fetch paths | 84 | | fetch paths with no matching route | **0** | | `params.json` leaf keys | 5559 | | …referenced anywhere in `webapp/src` | 278 | | candidate hardcoded figures in JSX | 0 | ## 1. read-proxy routes with no get-method behind them A route here serves either a constant, an indexed/off-chain tally, or a passthrough. That is **not automatically a violation** — §9.1 governs numbers the UI *shows*, and disclosure (`EvidenceBadge`, `DerivedChip`) is the sanctioned route for an off-chain value. It is a violation when the UI renders one of these as if it were proved. Each needs a read. | Route | Declared in | |---|---| | `GET /health` | `backend/read-proxy/src/server.ts` | | `GET /nft/:file` | `backend/read-proxy/src/server.ts` | | `GET /meta/:line/:file` | `backend/read-proxy/src/server.ts` | | `GET /bootstrap` | `backend/read-proxy/src/server.ts` | | `GET /events` | `backend/read-proxy/src/server.ts` | | `GET /item/:n/address` | `backend/read-proxy/src/server.ts` | | `GET /wallet/:address/seqno` | `backend/read-proxy/src/server.ts` | ## 2. Route → get-method map | Route | Get-method(s) | |---|---| | `GET /feed` | `getNumberData` | | `GET /portfolio/:address` | `getClaimableDividend`, `getDivAcc`, `getNumberData` | | `GET /primes/:prime/ledger` | `getGeneratorData`, `getBuild` | | `GET /attrition` | `getClaimableDividend`, `getDivAcc` | | `GET /status` | `getHead` | | `GET /api/invitees` | `getHead` | | `GET /index/status` | `getPending`, `getSeedT`, `getLotFloor` | | `GET /boards/prime-finders` | `getEraLeader` | | `GET /boards/referrals` | `getHead` | | `GET /boards/mints` | `getHead`, `getLotFloor` | | `GET /lots/:n` | `getBuild` | | `GET /builds/open` | `getBuild` | | `GET /wallets/:address/numbers` | `getNumberData` | | `GET /wallets/:address/claims` | `getNumberData` | | `GET /wallets/:address/contest` | `getNumberData` | | `GET /feed/mints` | `getNumberData`, `getGeneratorData` | | `GET /feed/invited` | `getTreasuryBalances`, `getTreasuryConfig` | | `GET /treasury/ledger` | `getTreasuryBalances`, `getProposal` | | `GET /stake/ledger` | `getPosition`, `getStakeTotals` | | `GET /collections` | `getLaunch`, `getCollectionData` | | `GET /generators/:addr` | `getGeneratorData` | | `GET /constellations` | `getTotals` | | `GET /build/:target` | `getBuild`, `get_nft_data`, `getItemAddress` | | `GET /constellation/:t` | `getItemAddress`, `getConstellationData` | | `GET /vault/discovery/:address` | `getDiscoveryOwed`, `getInviteConfig` | | `GET /invite-config` | `getInviteConfig` | | `GET /vault/discovery/tier/:tier` | `getDiscoveryTier` | | `GET /stake` | `get_wallet_data`, `getTreasuryBalances`, `getDistribution`, `getStakeSolvency`, `getStakeStream`, `getAccNow`, `getStakeTotals`, `getStakeConfig`, `getClaimable` | | `GET /stake/:address` | `getAccNow`, `getStakePositionAddress`, `getPositions`, `getPosition`, `getClaimable` | | `GET /treasury` | `getTreasuryBalances`, `getTreasuryConfig`, `getGov`, `getExecutable` | | `GET /treasury/proposals` | `getGov`, `getProposal`, `getExecutable`, `getVotedCount`, `getTierWeights`, `getVoteMultipliers`, `getTierTerms`, `getPositionAddress` | | `GET /lp/positions/:address` | `getVenue`, `getPositionAddress`, `getPositions`, `getPosition` | | `GET /lp/locked` | `get_jetton_data`, `get_wallet_data`, `getLocked`, `getEvents`, `getLpSinkConfig` | | `GET /lp/wallet/:address` | `get_jetton_data`, `get_wallet_data` | | `GET /trophy/lot/:n` | `getLot` | | `GET /trophy/price/:n` | `getLotPriceFrom`, `getLotLane`, `getNpv`, `getPrimeFloor`, `getLotFloor` | | `GET /trophy/floor/:n` | `getLotFloor` | | `GET /trophy/params` | `getMarketParams+getFracTable+getIncrementLadder+getScoreWeights+getMarketConfig+getPrimeDutchTerms`, `getMarketParams`, `getFracTable`, `getIncrementLadder`, `getScoreWeights`, `getMarketConfig`, `getPrimeDutchTerms` | | `GET /trophy` | `getMarketStats`, `getScoreBreakdown` | | `GET /trophy/score/:n` | `getScoreBreakdown`, `getScoreBreakdownFrom` | | `GET /contracts` | `getProgramPayouts`, `getMintedDay`, `getVesting`, `getTreasuryConfig`, `getStakeConfig`, `getLpSinkConfig`, `getItemAddress`, `getConstellationData`, `get_collection_data`, `get_jetton_data`, `getVaultConfig`, `getVenue` | | `GET /nft/:n/tree.png` | `getHead`, `getLastMintTime`, `getK`, `getKMax`, `getFloorNum+getFloorDen`, `getFloorNum`, `getFloorDen`, `getFloorNum+getFloorDen+getDivAcc+getPrimesCount+getMaxSupply`, `getDivAcc`, `getPrimesCount`, `getMaxSupply` | | `GET /launch` | `getLaunch`, `getLaunched` | | `GET /ledger/counters` | `getHead`, `getLastMintTime`, `getK`, `getKMax` | | `GET /ledger/last-mint-time` | `getLaunch`, `getLaunched`, `getLastMintTime` | | `GET /ledger/floor` | `getHead`, `getLastMintTime`, `getK`, `getKMax` | | `GET /ledger/head` | `getHead`, `getLastMintTime`, `getK`, `getKMax` | | `GET /ledger/k` | `getLaunched`, `getLastMintTime`, `getK`, `getKMax` | | `GET /ledger/kmax` | `getHead`, `getLastMintTime`, `getK`, `getKMax`, `getLaunch`, `getLaunched` | | `GET /ledger/T` | `getFloorNum` | | `GET /ledger/S` | `getFloorDen` | | `GET /ledger/seed-t` | `getSeedT`, `getEraLeader` | | `GET /ledger/era-leader` | `getPending`, `getSwapped`, `getEraLeader` | | `GET /ratchet/pending` | `getPending`, `getSwapped`, `getFlushStatus`, `getFloorCache`, `getStaking` | | `GET /ratchet/swapped` | `getSwapped`, `isKnownPrime`, `getFlushStatus`, `getFloorCache`, `getStaking` | | `GET /ratchet/flush-status` | `getFlushStatus` | | `GET /ratchet/floor-cache` | `getFloorCache` | | `GET /ratchet/staking` | `getStaking` | | `GET /number/:n/prime` | `isKnownPrime` | | `GET /lots/fee-split` | `getResFeeSplit` | | `GET /number/:n/off-head` | `isNumberOffHead` | | `GET /solvency` | `getUnmintedHeld`, `getSolvency`, `getLiabilityBreakdown`, `getStanding` | | `GET /supply` | `get_jetton_data`, `getBurnStats`, `getUnmintedHeld`, `getVaultPayouts`, `getProgramPayouts`, `getBurnWallet`, `getDeferredPayouts`, `get_wallet_data`, `getVaultConfig`, `getSinkBurnStats`, `getNamePriceTon`, `getFloorDen`, `getMaxSupply` | | `GET /sink` | `getNamePriceTon`, `getSinkCounts` | | `GET /primes/wallet/:address` | `get_wallet_data`, `get_wallet_address` | | `GET /vesting` | `getVesting`, `getVestingSchedule` | | `GET /ranks/:address` | `PrimesMinterCard.getStanding`, `getReceiptAddress`, `isProgramClosed`, `getPaid` | | `GET /earn/:address` | `getHead`, `PrimesMinterCard.getStanding+getKMaxFor+getEraLeader`, `getKMaxFor`, `getEraLeader` | | `GET /venue` | `getVenue` | | `GET /market` | `getVenue`, `get_reserves`, `getItemAddress` | | `GET /number/:n` | `getNumberData`, `getTributeTotal`, `getOwed` | | `GET /number/:n/tribute` | `getTributeTotal`, `getNamer`, `getAnnotation`, `getTrophyAnnotation`, `getTrophy` | | `GET /number/:n/name` | `getStorageRunway`, `getNamer`, `getTrophy`, `getAnnotation`, `getTrophyAnnotation` | | `GET /number/:n/runway` | `getStorageRunway` | | `GET /number/:n/trophy` | `getTrophy` | | `GET /wallet/:address/balance` | `getNumberData` | | `GET /numbers` | `getNumberData`, `getStorageRunway`, `getOwed` | | `GET /assets/:n/yield` | `getHead`, `getClaimableDividend`, `getDivAcc`, `getOwed`, `getLaunch`, `getProposal`, `getExecutable`, `getVotedCount`, `getLotPriceFrom(threw 1020 mkt_n_above_cap)`, `getLotPriceFrom(threw 1008 mkt_primorial_not_auctionable)` | | `GET /vault` | `getVaultConfig` | | `GET /vault/rebate/:kind/:n` | `getRebateSchedule`, `getEraSchedule` | | `GET /vault/era/:n` | `getEraSchedule` | ## 3. Webapp fetch → route | Fetched from | Path | Resolves to | |---|---|---| | `assets.ts` | `/assets/` | `getHead`, `getClaimableDividend`, `getDivAcc`, `getOwed`, `getLaunch`, `getProposal`, `getExecutable`, `getVotedCount`, `getLotPriceFrom(threw 1020 mkt_n_above_cap)`, `getLotPriceFrom(threw 1008 mkt_primorial_not_auctionable)` | | `attribution.ts` | `/resolve` | _route exists, no get-method_ | | `bootstrap.ts` | `/bootstrap` | _route exists, no get-method_ | | `bootstrap.ts` | `/events` | _route exists, no get-method_ | | `builds.ts` | `/build/` | `getBuild`, `get_nft_data`, `getItemAddress` | | `claims.ts` | `/lots/won` | _route exists, no get-method_ | | `collections.ts` | `/collections` | `getLaunch`, `getCollectionData` | | `constellations.ts` | `/constellation/` | `getItemAddress`, `getConstellationData` | | `constellations.ts` | `/constellations/by-owner/` | _route exists, no get-method_ | | `constellations.ts` | `/constellations/recent` | _route exists, no get-method_ | | `contracts.ts` | `/contracts` | `getProgramPayouts`, `getMintedDay`, `getVesting`, `getTreasuryConfig`, `getStakeConfig`, `getLpSinkConfig`, `getItemAddress`, `getConstellationData`, `get_collection_data`, `get_jetton_data`, `getVaultConfig`, `getVenue` | | `earn.ts` | `/earn` | _route exists, no get-method_ | | `earn.ts` | `/earn/` | `getHead`, `PrimesMinterCard.getStanding+getKMaxFor+getEraLeader`, `getKMaxFor`, `getEraLeader` | | `earn.ts` | `/voucher` | _route exists, no get-method_ | | `era.ts` | `/ledger/era-leader` | `getPending`, `getSwapped`, `getEraLeader` | | `feed.ts` | `/attrition` | `getClaimableDividend`, `getDivAcc` | | `feed.ts` | `/feed` | `getNumberData` | | `feed.ts` | `/leaderboard/tribute` | _route exists, no get-method_ | | `feed.ts` | `/number/` | `getNumberData`, `getTributeTotal`, `getOwed` | | `generators.ts` | `/generators/` | `getGeneratorData` | | `generators.ts` | `/generators/by-owner/` | _route exists, no get-method_ | | `generators.ts` | `/generators/refusal/` | _route exists, no get-method_ | | `launch.ts` | `/launch` | `getLaunch`, `getLaunched` | | `ledger.ts` | `/contracts` | `getProgramPayouts`, `getMintedDay`, `getVesting`, `getTreasuryConfig`, `getStakeConfig`, `getLpSinkConfig`, `getItemAddress`, `getConstellationData`, `get_collection_data`, `get_jetton_data`, `getVaultConfig`, `getVenue` | | `ledger.ts` | `/ledger/counters` | `getHead`, `getLastMintTime`, `getK`, `getKMax` | | `ledger.ts` | `/ledger/floor` | `getHead`, `getLastMintTime`, `getK`, `getKMax` | | `ledger.ts` | `/ledger/head` | `getHead`, `getLastMintTime`, `getK`, `getKMax` | | `ledger.ts` | `/ledger/k` | `getLaunched`, `getLastMintTime`, `getK`, `getKMax` | | `ledger.ts` | `/ledger/kmax` | `getHead`, `getLastMintTime`, `getK`, `getKMax`, `getLaunch`, `getLaunched` | | `ledger.ts` | `/ledger/last-mint-time` | `getLaunch`, `getLaunched`, `getLastMintTime` | | `ledger.ts` | `/ledger/seed-t` | `getSeedT`, `getEraLeader` | | `lots.ts` | `/trophy` | `getMarketStats`, `getScoreBreakdown` | | `lots.ts` | `/trophy/lot/` | `getLot` | | `lots.ts` | `/trophy/params` | `getMarketParams+getFracTable+getIncrementLadder+getScoreWeights+getMarketConfig+getPrimeDutchTerms`, `getMarketParams`, `getFracTable`, `getIncrementLadder`, `getScoreWeights`, `getMarketConfig`, `getPrimeDutchTerms` | | `lots.ts` | `/trophy/price/` | `getLotPriceFrom`, `getLotLane`, `getNpv`, `getPrimeFloor`, `getLotFloor` | | `lots.ts` | `/trophy/score/` | `getScoreBreakdown`, `getScoreBreakdownFrom` | | `market.ts` | `/market` | `getVenue`, `get_reserves`, `getItemAddress` | | `market.ts` | `/venue` | `getVenue` | | `name.ts` | `/number/` | `getNumberData`, `getTributeTotal`, `getOwed` | | `number.ts` | `/number/` | `getNumberData`, `getTributeTotal`, `getOwed` | | `portfolio.ts` | `/numbers` | `getNumberData`, `getStorageRunway`, `getOwed` | | `portfolio.ts` | `/portfolio/` | `getClaimableDividend`, `getDivAcc`, `getNumberData` | | `portfolio.ts` | `/primes/` | `getGeneratorData`, `getBuild` | | `ranks.ts` | `/ranks/` | `PrimesMinterCard.getStanding`, `getReceiptAddress`, `isProgramClosed`, `getPaid` | | `ratchet.ts` | `/ratchet/floor-cache` | `getFloorCache` | | `ratchet.ts` | `/ratchet/flush-status` | `getFlushStatus` | | `ratchet.ts` | `/ratchet/pending` | `getPending`, `getSwapped`, `getFlushStatus`, `getFloorCache`, `getStaking` | | `ratchet.ts` | `/ratchet/staking` | `getStaking` | | `ratchet.ts` | `/ratchet/swapped` | `getSwapped`, `isKnownPrime`, `getFlushStatus`, `getFloorCache`, `getStaking` | | `ratchet.ts` | `/solvency` | `getUnmintedHeld`, `getSolvency`, `getLiabilityBreakdown`, `getStanding` | | `readIndex.ts` | `/boards/era` | _route exists, no get-method_ | | `readIndex.ts` | `/boards/prime-finders` | `getEraLeader` | | `readIndex.ts` | `/boards/recruiters` | _route exists, no get-method_ | | `readIndex.ts` | `/boards/referrals` | `getHead` | | `readIndex.ts` | `/builds/open` | `getBuild` | | `readIndex.ts` | `/feed/floor` | _route exists, no get-method_ | | `readIndex.ts` | `/index/status` | `getPending`, `getSeedT`, `getLotFloor` | | `readIndex.ts` | `/lots/` | `getBuild` | | `readIndex.ts` | `/lots/open` | _route exists, no get-method_ | | `readIndex.ts` | `/market/cheapest` | _route exists, no get-method_ | | `readIndex.ts` | `/treasury/ledger` | `getTreasuryBalances`, `getProposal` | | `readIndex.ts` | `/wallets/` | _route exists, no get-method_ | | `session.ts` | `/auth/challenge` | _route exists, no get-method_ | | `session.ts` | `/auth/verify` | _route exists, no get-method_ | | `session.ts` | `/welcome` | _route exists, no get-method_ | | `sink.ts` | `/primes/wallet/` | `get_wallet_data`, `get_wallet_address` | | `sink.ts` | `/sink` | `getNamePriceTon`, `getSinkCounts` | | `stake.ts` | `/stake` | `get_wallet_data`, `getTreasuryBalances`, `getDistribution`, `getStakeSolvency`, `getStakeStream`, `getAccNow`, `getStakeTotals`, `getStakeConfig`, `getClaimable` | | `stake.ts` | `/stake/` | `getAccNow`, `getStakePositionAddress`, `getPositions`, `getPosition`, `getClaimable` | | `supply.ts` | `/supply` | `get_jetton_data`, `getBurnStats`, `getUnmintedHeld`, `getVaultPayouts`, `getProgramPayouts`, `getBurnWallet`, `getDeferredPayouts`, `get_wallet_data`, `getVaultConfig`, `getSinkBurnStats`, `getNamePriceTon`, `getFloorDen`, `getMaxSupply` | | `telegramLink.ts` | `/link` | _route exists, no get-method_ | | `telegramLink.ts` | `/link-status` | _route exists, no get-method_ | | `telegramLink.ts` | `/link/start` | _route exists, no get-method_ | | `treasury.ts` | `/lp/locked` | `get_jetton_data`, `get_wallet_data`, `getLocked`, `getEvents`, `getLpSinkConfig` | | `treasury.ts` | `/lp/positions/` | `getVenue`, `getPositionAddress`, `getPositions`, `getPosition` | | `treasury.ts` | `/lp/wallet/` | `get_jetton_data`, `get_wallet_data` | | `treasury.ts` | `/treasury` | `getTreasuryBalances`, `getTreasuryConfig`, `getGov`, `getExecutable` | | `treasury.ts` | `/treasury/proposals` | `getGov`, `getProposal`, `getExecutable`, `getVotedCount`, `getTierWeights`, `getVoteMultipliers`, `getTierTerms`, `getPositionAddress` | | `vault.ts` | `/vault/era/` | `getEraSchedule` | | `vault.ts` | `/vault/rebate/` | `getRebateSchedule`, `getEraSchedule` | | `vesting.ts` | `/vesting` | `getVesting`, `getVestingSchedule` | | `wallet.ts` | `/wallet/` | _route exists, no get-method_ | | `wear.ts` | `/wear` | _route exists, no get-method_ | | `welcome.ts` | `/welcome` | _route exists, no get-method_ | ## 4. `shared/params.json` keys referenced by the webapp 278 of 5559 leaf keys are named somewhere in `webapp/src`. An unreferenced key is not a fault — most parameters are consumed on chain, not shown — but a webapp constant that is *not* here and not a get-method is a rule-3 violation. ``` mint.mint_price_ton mint.tribute_pct mint.referral_pct mint.treasury_pct mint.gas_ops_pct invites.max_count invites.generator_value_ton invites.line_ton_at_max_count tribute.flat_dividend_f tribute.divisor_line_share tribute.divisor_weight_formula rebate.k_min rebate.k_max_cap rebate.ramp_seconds rebate.n0_anchor rebate.k_on_prime_mint rebate.S_MAX rebate.K_CEIL rebate.PRIME_UPLIFT rebate.NEWCOMER_UPLIFT rebate.NEWCOMER_WINDOW rebate.recruit_rank_tiers rebate.recruit_rank_kmax_uplifts rebate.prime_rank_tiers rebate.prime_rank_kmax_uplifts rebate.uplift_stack_rule rebate.prime_uplift_sizing.consumability_in_sim.error rebate.prime_uplift_sizing.grid rebate.prime_uplift_sizing.selected.prime_window rebate.prime_uplift_sizing.documented_proposal.prime_window rebate.invariant_prime_uplift_x_window_lt_kmax.rows rebate.prime_uplift_realized.worst_window.prime rebate.prime_uplift_realized.holds rebate.uplift_stacking.ladders.recruit_rank_tiers rebate.uplift_stacking.ladders.prime_rank_tiers rebate.uplift_stacking.ladders.max_summed_uplift flush.flush_pct flush.flush_cooldown_seconds flush.flush_min_ton flush.FLOOR_GUARD staked_reserve.reserve_fraction_of_pending staked_reserve.harvest_interval_seconds staked_reserve.stake_min_sweep.rows prime_head.model score.weights.LEN_REF score.weights.LEN_W score.weights.TZ_CAP score.weights.SCORE_MAX score.weights.bits score.histogram.window score.histogram.count score.histogram.bands.0.count score.histogram.bands.0.share score.histogram.bands.1-10.count score.histogram.bands.1-10.share score.histogram.bands.11-30.count score.histogram.bands.11-30.share score.histogram.bands.31+.count score.histogram.bands.31+.share score.worked_examples off_head.res_gas_ton off_head.lane_floor_nanoton off_head.lane_floor_identity off_head.res_gas_derivation.rule off_head.res_gas_derivation.inputs.gas_baseline.market.close off_head.res_gas_derivation.inputs.gas_baseline.ledger.mint_won_lot off_head.res_gas_derivation.inputs.mint_price_ton trophy_auction.constants.SCORE_HALVING trophy_auction.constants.PRIME_P0_MULTIPLE trophy_auction.constants.AUCTION_WINDOW_SECONDS trophy_auction.constants.SCORE_MAX trophy_auction.constraints.SCORE_HALVING trophy_auction.constraints.SCORE_MAX trophy_auction.constraints.PRIME_P0_MULTIPLE trophy_auction.constraints.AUCTION_WINDOW_SECONDS trophy_auction.price_map.frac_table trophy_auction.price_map.frac_scale_bits trophy_auction.price_map.mint_price_nanoton trophy_auction.price_map.frac_table_approximation.bound trophy_auction.reserve_floor_identity.mint_price_ton trophy_auction.reserve_floor_identity.res_gas_ton trophy_auction.reserve_floor_identity.holds trophy_auction.openable_lots.window trophy_auction.openable_lots.count trophy_auction.openable_lots.historical_thresholds.20.share trophy_auction.openable_lots.historical_thresholds.30.share trophy_auction.openable_lots.historical_thresholds.40.share trophy_auction.openable_lots.historical_thresholds.50.share trophy_auction.npv_ladder.source trophy_auction.npv_ladder.horizon trophy_auction.npv_ladder.discount_rate_annual trophy_auction.npv_ladder.exponent trophy_auction.npv_ladder.flat_dividend_f trophy_auction.npv_ladder.tribute_pct trophy_auction.npv_ladder.max_prime_in_table trophy_auction.npv_ladder.npv_ton_by_prime.1009 trophy_auction.npv_ladder.npv_ton_by_prime.1279 trophy_auction.npv_ladder.npv_ton_by_prime.1399 trophy_auction.npv_ladder.npv_ton_by_prime.1801 trophy_auction.npv_ladder.npv_ton_by_prime.1973 trophy_auction.npv_ladder.npv_ton_by_prime.1999 trophy_auction.npv_ladder.npv_ton_by_prime.2027 trophy_auction.npv_ladder.npv_ton_by_prime.2311 trophy_auction.npv_ladder.npv_ton_by_prime.3671 trophy_auction.npv_ladder.npv_ton_by_prime.4001 trophy_auction.npv_ladder.npv_ton_by_prime.4271 trophy_auction.npv_ladder.npv_ton_by_prime.4801 trophy_auction.npv_ladder.npv_ton_by_prime.4817 trophy_auction.npv_ladder.npv_ton_by_prime.4999 trophy_auction.npv_ladder.npv_ton_by_prime.9887 trophy_auction.npv_ladder.npv_ton_by_prime.9973 trophy_auction.derivation trophy_auction.gas.measured genesis.prime_dutch_lane.decay_seconds_days genesis.prime_dutch_lane.p0_ton_by_prime.1009 genesis.prime_dutch_lane.p0_ton_by_prime.1279 genesis.prime_dutch_lane.p0_ton_by_prime.1399 genesis.prime_dutch_lane.p0_ton_by_prime.1801 genesis.prime_dutch_lane.p0_ton_by_prime.1973 genesis.prime_dutch_lane.p0_ton_by_prime.1999 genesis.prime_dutch_lane.p0_ton_by_prime.2027 genesis.prime_dutch_lane.p0_ton_by_prime.2311 genesis.prime_dutch_lane.p0_ton_by_prime.3671 genesis.prime_dutch_lane.p0_ton_by_prime.4001 genesis.prime_dutch_lane.p0_ton_by_prime.4271 genesis.prime_dutch_lane.p0_ton_by_prime.4801 genesis.prime_dutch_lane.p0_ton_by_prime.4817 genesis.prime_dutch_lane.p0_ton_by_prime.4999 genesis.prime_dutch_lane.p0_ton_by_prime.9887 genesis.prime_dutch_lane.p0_ton_by_prime.9973 genesis.genesis_donation_ton genesis.era_bounty_schedule.era_bounty_schedule genesis.era_bounty_schedule.remaining_vault_split.tracks.puzzles.primes genesis.era_bounty_schedule.remaining_vault_split.tracks.constellation_discovery.primes genesis.era_bounty_schedule.remaining_vault_split.tracks.prime_quests.primes genesis.era_bounty_schedule.remaining_vault_split.tracks.quests.primes genesis.era_bounty_schedule.remaining_vault_split.tracks.security_bounty.primes genesis.quest_rewards.denomination genesis.quest_rewards.beta genesis.quest_rewards.rewards genesis.quest_rewards.prime_quests.denomination genesis.quest_rewards.prime_quests.rewards genesis.score_rebate.rates.composite_per_point.kind genesis.score_rebate.rates.composite_per_point.reward_ton genesis.score_rebate.rates.prime_family.kind genesis.score_rebate.rates.prime_family.reward_ton genesis.score_rebate.sizing.clamped genesis.score_rebate.score_distribution_over_composites.window genesis.score_rebate.score_distribution_over_composites.bands.0.count genesis.score_rebate.score_distribution_over_composites.bands.0.share genesis.score_rebate.score_distribution_over_composites.bands.1-10.count genesis.score_rebate.score_distribution_over_composites.bands.1-10.share genesis.score_rebate.score_distribution_over_composites.bands.11-30.count genesis.score_rebate.score_distribution_over_composites.bands.11-30.share genesis.score_rebate.score_distribution_over_composites.bands.31+.count genesis.score_rebate.score_distribution_over_composites.bands.31+.share genesis.market_over_floor_at_open genesis.forfeit_split_bps genesis.premium_treasury_bps genesis.vesting.instances genesis.vesting.tranches genesis.vesting.interval_days genesis.vesting.total_days genesis.vesting.treasury.beneficiary genesis.vesting.treasury.total_primes genesis.vesting.treasury.tranches genesis.vesting.treasury.interval_days genesis.vesting.treasury.total_days treasury.tier_term_seconds treasury.tier_labels treasury.vote_multipliers treasury.proposal_cap_bps treasury.propose_min_bps treasury.vote_duration_seconds staking.epoch_seconds staking.tier_term_seconds staking.tier_labels staking.tier_weight_validation.monotone staking.tier_weight_validation.verdict staking.tier_weight_validation.steps staking.distribution_rate_selection.criterion staking.lp_depth_without_miner.verdict fees.royalty_pct fees.ops_reserve_derivation.rule fees.ops_reserve_derivation.inputs.gas_baseline.ledger.mint_won_lot fees.ops_reserve_derivation.inputs.gas_baseline.market.close fees.gas_ops_line.gas_ops_pct fees.gas_ops_line.worst_case_spend_ton fees.gas_ops_line.headroom_ton fees.gas_ops_line.rule constellations.collection constellations.identity constellations.grammar.unary constellations.grammar.binary constellations.grammar.rules constellations.collaboration.opens constellations.collaboration.contributes constellations.collaboration.closes constellations.expiry.clock constellations.expiry.rule constellations.expiry.eras constellations.discovery_bounty.track constellations.discovery_bounty.shape constellations.discovery_bounty.status constellations.discovery_bounty.affordable constellations.discovery_bounty.decision constellations.discovery_bounty.paid_window_admits.rule constellations.discovery_bounty.per_tier.common.pays constellations.discovery_bounty.per_tier.uncommon.pays constellations.discovery_bounty.per_tier.rare.pays constellations.discovery_bounty.per_tier.legendary.pays constellations.discovery_bounty.derivation constellations.discovery_bounty.solvency.rule constellations.discovery_bounty.solvency.holds constellations.discovery_bounty.after_the_window.rule constellations.discovery_bounty.note generators.collection generators.item_deploy_value_ton generators.max_generators_per_mint generators.max_invite_line_ton generators.counts_measured_at generators.counting_rules.prime_result_completions generators.counting_rules.composite_result_ops generators.tier_cut_admissible_bands.common generators.tier_cut_admissible_bands.uncommon generators.tier_cut_admissible_bands.rare generators.tiers generators.weights.max_generators_per_mint generators.weights.derivation generators.generator_supply_vs_prime_builds.denominator generators.generator_supply_vs_prime_builds.resolution generators.kind_derivation.selector generators.kind_derivation.walk generators.kind_derivation.index generators.kind_derivation.hash kill_criteria.results owed_dict_ceiling_resolution.storage_analysis.variants owed_dict_ceiling_resolution.storage_analysis.recommended.decision owed_dict_ceiling_resolution.storage_analysis.recommended.shards owed_dict_ceiling_resolution.storage_analysis.recommended.routing determinations.d20_baseline.prime_lane_floor_effect.floor_without_prime_lane.mean determinations.d20_baseline.prime_lane_floor_effect.floor_with_prime_lane.mean determinations.d20_baseline.prime_lane_floor_effect.seeds determinations.d20_baseline.head_velocity_mints_per_day.mean determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D0-9.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D0-9.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D10-19.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D10-19.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D20-29.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D20-29.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D30-39.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D30-39.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D40-49.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D40-49.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D50-59.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D50-59.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D60-69.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D60-69.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D70-79.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D70-79.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D80-89.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.D80-89.sold determinations.q26_auction_lane.clearing_price_distribution.by_score_band.prime_dutch.lots determinations.q26_auction_lane.clearing_price_distribution.by_score_band.prime_dutch.sold determinations.q26_auction_lane.clearing_price_distribution.premises.gamma determinations.q26_auction_lane.clearing_price_distribution.premises.draws determinations.q26_auction_lane.clearing_price_distribution.premises.seed determinations.q26_auction_lane.open_lot_volume_and_queue_depth.ascending_lane_measured.participation determinations.q26_auction_lane.open_lot_volume_and_queue_depth.rows determinations.q26_auction_lane.unsold_prime_forfeit.rows acquisition.lane.mint_price_ton acquisition.lane.res_gas_ton acquisition.bid_increment_ladder.rungs acquisition.bid_increment_ladder.premises.gamma acquisition.bid_increment_ladder.premises.draws acquisition.bid_increment_ladder.premises.seed acquisition.open_lot_volume_and_queue_depth.ascending_lane_measured.participation acquisition.open_lot_volume_and_queue_depth.rows ``` ## 5. Candidate hardcoded figures in JSX Numeric literals appearing next to an economic unit (`TON`, `PRIMES`, `%`, `×`) in a `.tsx` file, with layout attributes filtered out. **A hit is a candidate, not a finding**: a legend, an axis tick, a worked example from CONCEPT.md and a genuine untraceable stat all look identical to a regex. Each needs one look. None.