Summary
Deploy one Tholos testnet instance meant to be the canonical, long-lived deployment that integrators (this repo's own demos/freelance-escrow included) point at by default, rather than each deploying their own throwaway instance. Update INTEGRATION.md's framing to match: it currently recommends "deploy your own instance or share one" as an even tradeoff, which undersells the point of an oracle (trust accumulates from one committee's track record over time, not from fragmenting across many bespoke deployments).
Scope
- Decide real deployment parameters deliberately: bond_amount (per BOND_SIZING.md's model, not a placeholder), challenge_window_secs, the resolver committee (real, accountable addresses, not reused test/dev keys), and finalize_reward_bps.
- Deploy and initialize the instance on testnet.
- Publish the contract id somewhere durable and discoverable (README and/or a dedicated section in DEPLOYMENT.md), consistent with the project's policy of never committing contract addresses into application source (see the CI check in ci.yml and CONTRIBUTING.md).
- Rewrite INTEGRATION.md's "Should you deploy your own instance, or share one?" section: a separate deployment should be framed as the exception for a genuinely incompatible bond/token/window need, not the default path.
- Point demos/freelance-escrow at it via its documented VITE_THOLOS_CONTRACT_ID env var (no source change needed, just documentation/README pointing to the published id).
Alternatives considered
The demo app's first draft hardcoded a contract id directly into its source as a default. That broke the repo's own "never commit contract addresses" CI check, and conflicts with the never-committed, always-env-supplied pattern DEPLOYMENT.md and testnet-smoke.sh already use, so it was reverted in favor of the env-var-only approach documented above.
Summary
Deploy one Tholos testnet instance meant to be the canonical, long-lived deployment that integrators (this repo's own demos/freelance-escrow included) point at by default, rather than each deploying their own throwaway instance. Update INTEGRATION.md's framing to match: it currently recommends "deploy your own instance or share one" as an even tradeoff, which undersells the point of an oracle (trust accumulates from one committee's track record over time, not from fragmenting across many bespoke deployments).
Scope
Alternatives considered
The demo app's first draft hardcoded a contract id directly into its source as a default. That broke the repo's own "never commit contract addresses" CI check, and conflicts with the never-committed, always-env-supplied pattern DEPLOYMENT.md and testnet-smoke.sh already use, so it was reverted in favor of the env-var-only approach documented above.