Source: jay’s request (portfolio-readiness for prospective employers) + live investigation of residual balances on prod. Related: 2026-08-10 history — the question-key nonce fix (PR #23) whose absence in old data explains today’s finding.
@default(cuid()) (random per row), so DB ids can never survive a
re-seed — the DB is clean. What survives is Sepolia (prod chainId 11155111, persistent). Prod’s
10 markets predate PR #23’s question-key nonce, so their questionId → conditionId → tokenIds are
pure functions of the slug: identical across every seed generation ever run against the prod
backbone. Old sessions’ ERC-1155 balances therefore reattach to today’s markets.[text](url) inline form; (b) the web Docker build (--source packages/web) can’t see
packages/contracts/deployments.json, so the addresses are mirrored as data with a
source-of-truth comment instead of imported.content/docs/chain.ts (5 sections × en/ko: four-layer architecture, the five
contracts with origin/role, Sepolia address tables with Etherscan links for staging+prod,
server-held-keys custody model, which-layer-calls-what flows), registered in lib/docs.ts
after settlement; link support in DocBody.tsx. Also next.config.js now honors
NEXT_DIST_DIR so a verification build can run beside a live server on .next — yesterday’s
build-corrupts-dev-server gotcha, fixed structurally (.next-verify/ gitignored).NEXT_DIST_DIR=.next-verify build served on :3187 — all
5 sections render in both locales, 8 unique Etherscan links present, sidebar/pager pick the doc
up. (jay’s local :3000 next start still serves yesterday’s corrupted .next — every docs
page 500s there, unrelated to this change; a rebuild/restart on his side clears it.)