PATINA docs

Pre launch checklist

Every line is a yes or a no. A maybe is a no. The window opens once, and it cannot be reopened, extended, or undone.

What you will know after this page
  • Every line that has to be true before the founding window is announced, in the order the work happens.
  • Why PATINA_MAINNET_AUTHORIZED is set by a person as a separate act from deploying a build.
  • Which failures have to be provoked on purpose in rehearsal, including SEED_COMMIT_TOO_YOUNG and SEED_CARRIER_BELOW_MIN.
  • What the announcement itself has to say: window heights, two fees, at least 100000 sats, and the limits.
  • Who signs the checklist off, and what gets recorded when they do.

Protocol

These lines are about the rules being right. None of them can be repaired after the window opens, because by then artifacts exist and their ids are fixed. The window itself is described on the Firstlight Seals page of the public site.

  1. Golden vectors pass on the exact build that will run.
  2. Two independent implementations produce the same state root over the full signet range.
  3. Every one of the eighteen reason codes is produced by at least one vector.
  4. Reorg rollback and replay reproduce the same root, tested deliberately on regtest.
  5. spec_sha256 is published and matches what GET /patina/status reports.
  6. The mainnet deployment record exists, names two approvers, and both have approved.
  7. PATINA_MAINNET_AUTHORIZED is set deliberately, by a person, as a separate act from deploying.
  8. The window heights h_open, h_close, and grace_end are decided, written down, and arithmetically checked against 4032 and 4032.
  9. docs/deviations.md lists every known difference between implementations and the baseline, or states that there are none.

Infrastructure

  1. A fully validating mainnet node, synced, with RPC reachable only by the indexer.
  2. The indexer is synced to the tip and /ready behaves correctly during sync.
  3. A second, independently operated indexer exists and agrees at a common height.
  4. A restore drill has been completed end to end, and the measured recovery time is written down.
  5. Alerts route to a human who is awake for the first 24 hours of the window.
  6. Rate limiting is configured at the edge.
  7. Rollback to the previous build is tested, including whether it requires a reindex.

Product

Ten lines, all of them the same rule stated ten ways: no surface may tell a user something the chain does not say.

  1. Every statistic on every surface comes from a live API call, with an honest empty state.
  2. No surface displays a countdown that is not a real block count.
  3. No surface shows a supply cap, a sold out state, a price, or a projected value.
  4. The three honest limits appear in the product, not only in documentation: depth does not prove one holder, founding membership can be farmed, and buying resets depth. The public limits page is the wording to match.
  5. Concentration statistics are live before the window opens, not added afterwards.
  6. The mint flow shows the 144 block wait as a block count and never simulates success.
  7. The workspace renders without a wallet connected.
  8. Failure paths show the actual reason code and what it means.
  9. The safety check is wired into any flow that spends coins.
  10. Accessibility pass: keyboard navigation, visible focus, AA contrast, reduced motion, and screen reader labels on every control.

Documentation

  1. These pages are published and reachable without a build step.
  2. Every byte example has been recomputed by the script that generated it.
  3. The mint walkthrough has been followed literally, by someone who did not write it, on signet.
  4. The recovery page covers every failure the rehearsals actually produced.
  5. Search index is regenerated and every internal link resolves.

Communication

The announcement is the only page most people will read. These lines keep it from promising anything the protocol cannot deliver.

  1. The announcement states the window heights, not a marketing date.
  2. It says minting is free of protocol charge and lists the real costs: two fees and at least 100000 sats of your own bitcoin.
  3. It states the limits in the announcement itself, not in a linked page.
  4. It contains no urgency framing, no scarcity claim, and no projection.
  5. A plain explanation of the 144 block wait is ready, because it will be the most asked question.
  6. The answer to "can you restore my depth" is written down in advance, and the answer is no.

Rehearsal

Rehearsal means somebody did it and watched what came back. Four of these six lines are failures you cause on purpose, so that the reason code and the explanation around it are seen before a stranger sees them.

  1. A complete signet mint by at least two people who did not build the tooling.
  2. A deliberate early reveal, to confirm SEED_COMMIT_TOO_YOUNG appears and is explained clearly.
  3. A deliberate underfunded carrier, to confirm SEED_CARRIER_BELOW_MIN.
  4. A deliberate accidental spend, to confirm the reset shows up correctly and the ring is written.
  5. A deliberate relic, to confirm terminal state renders honestly.
  6. A reorg on regtest across a SEED and across a carrier spend.

Sign off

The checklist is complete when someone who did not write it has verified each line and the go criteria on Go, conditional go, no go are met. Record who verified what and at which block height, because the window opening is a decision that will be examined later.