deviant/wiki
Local Dev 5465029321 feat(mainnet-infra): oracle client + Katalogos deploy script + design doc
Three artifacts the mainnet launch needs, scoped tightly:

design/potidaea/src/oracleClient.ts
  Replaces the baked chipnet dev signing key for mainnet. fetchOracleAttestation()
  pulls a fresh AnyHedge-format signed BCH/USD message from oracles.cash
  (General Protocols' production BCH oracle network — the same signer AnyHedge
  uses), verifies the Schnorr signature client-side against the pinned pubkey
  before handing it to the covenant. Chipnet keeps its publish.ts baked dev
  key (dev environment, no economic bearing). Mainnet pubkey slot is
  INTENTIONALLY empty — any call hard-throws until deploy, which kills the
  'chipnet-sponsor-key-classifier-block' concern for mainnet builds.

scripts/mainnet-katalogos-deploy.mjs
  One-shot broadcast of KatalogosRegistryV1 on BCH mainnet. Refuses to run
  unless .mainnet-katalogos-config.json supplies real (non-placeholder)
  values for feeCategoryId / oraclePubKeyHex / treasuryLB / deaRateSats.
  Interactive 'MAINNET DEPLOY' confirmation gate (or MAINNET_KATALOGOS_YES=1
  for CI). Writes MainnetTests/.mainnet-katalogos.json with the resulting
  (txid, registryCategoryId, contractAddress) and prints paste-ready config
  for KATALOGOS_VERSIONS.mainnet in shells/app/src/core/katalogos.ts.

wiki/infra/oracle-service.md
  Design doc explaining the Path-A choice (consume oracles.cash) vs
  Path-B (self-hosted oracle, future option), the rotation policy
  (operator-driven; we redeploy on their pubkey change), and the
  "do NOT sign messages locally on mainnet" guardrails. Links from
  publish.ts's dev-key constant and the Katalogos deploy script.

Depends on: feat(network) [5f852b9] — oracleClient.ts imports currentNetwork
from the network module.

Follow-up (requires real BCH + external coordination):
  - set the oracles.cash BCH/USD pubkey in oracleClient.ts
  - mint a mainnet DEA category (feeCategoryId prereq)
  - run scripts/mainnet-katalogos-deploy.mjs with the real config
  - paste the result into KATALOGOS_VERSIONS.mainnet
  - refactor publish.ts to consume fetchOracleAttestation() on mainnet

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-09 00:21:13 +02:00
..
asm feat(asm-sequencer): systemd + user-funded /tip+/submit + wallet client 2026-10-02 00:21:51 +02:00
cross-chain docs(cross-chain): handoff — snapshot 0271 + DGB HTLC primitives landed 2026-09-16 01:25:41 +02:00
fiatm style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
games-tote style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
governance style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
infra feat(mainnet-infra): oracle client + Katalogos deploy script + design doc 2026-10-09 00:21:13 +02:00
integrations style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
onramp docs(wiki): restructure into domain branches with a router + per-domain indexes 2026-07-07 00:50:09 +02:00
platform style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
wallet style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
architecture.md style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
asset-landscape.md style(docs): migrate sat/sats → bit/bits across wiki + Parameters 2026-08-09 01:09:06 +02:00
decisions.md docs(adr): ADR-0055 amendment 2026-09-02 — symbol + icon extension (V2 proposed) 2026-09-02 02:32:07 +02:00
glossary.md docs: enforce project-wide "bits" (not "sats") in copy 2026-08-30 18:45:28 +02:00
index.md docs(wiki): restructure into domain branches with a router + per-domain indexes 2026-07-07 00:50:09 +02:00