Files
openyield/x
cloudinit-bot 82ae6cf5a2 docs(milestone): complete OpenYield v0.3 (Bearers & Documentation)
Milestone v0.3 complete. Feature type, tags v0.2.x. Two work-streams
shipped under one feature milestone:

(A) Bearers skeleton + tests (D-020 pattern, 7 x/* packages, zero ext deps):
- x/bridge (NEW): BridgeStatus enum (4), BridgeRoute by-ID-string refs
- x/exit (NEW): ExitStatus enum (5), ExitRoute, DEXSwap (opaque venue)
- x/bearers (EXT): OYSATLink surveillance-resistant LOCKED, OYQRCode idempotent
- x/partner (EXT): AnchorCredential (custody-provider-id empty in skeleton)
- x/hub (NEW): HubService enum (3), LendingCouponCapBps=800 LOCAL const (A-304)
- x/services (NEW): ServiceKind enum (4), window-id by-ID-string ref (A-307)
- x/bond (EXT): GrowthBond, ClampGrowth G-012 underflow guard, secondary market
All packages >=93.3% coverage. Both lexicon firewalls green. G-003 intact.

(B) Documentation deliverable (REQ-027 complete, 26-page MkDocs Material site):
- README.md + mkdocs.yml + docs/index.md
- docs/shared/ (7 pages): Six Principles, Bread Scale, Storage Pools, Watchers/Mirror, Lexicon, Vision
- docs/nomads/ (8 pages): Reach, Stash, Bearers, Maps-Pay, Pacts, Standing, Window
- docs/freeholders/ (8 pages): Signals, Standing, Stands-Guilds, Councils-Voice, Bonds, Partner Spectrum, Anchor Preview
- docs/reference/ (2 pages): Architecture, Components
- REQ-028: lexicon firewall extended to docs/ + README.md (lexicon_meta_docs_test.go, 5 tests incl G-013 walk-coverage + G-014 shared self-test)

Phases: P0 -> v0.2.0, P1 -> v0.2.1, P2 -> v0.2.2, P3 -> v0.2.3, P4 -> v0.2.4, P5 -> v0.2.5, P6 -> v0.2.6 (milestone release).

Requirements covered: REQ-010, REQ-022, REQ-023, REQ-024, REQ-025, REQ-026 (skeleton), REQ-027, REQ-028 (complete).
IDEATE-01..08 ratified and delivered.

---ci---
project: oy
phase: 6
milestone: v0.3
status: complete
tag_base: v0.2.x
phase_role: final
milestone_complete: true
requirements:
  covered: [REQ-010, REQ-022, REQ-023, REQ-024, REQ-025, REQ-026, REQ-027, REQ-028]
  partial: []
---/ci---
2026-08-17 22:35:36 +00:00
..

Component 1: OY Chain & Mirror — Phase 1 Skeleton

Status

v0.0.1 — skeleton with type definitions and locked-constant tests

Vision References

  • §7: Architecture — Three Layers and the Mirror
  • §3: Still/Stir (pause/resume)

Modules

x/watcher — Watcher Bond & Attestation Quorum

  • types.Watcher — bonded Watcher (§7: 100,000 Bread minimum bond)
  • types.Attestation — daily reserve snapshot signed by a Watcher
  • types.ReserveSnapshot — off-chain reserve state (off-chain total, on-chain Bread, basket breakdown)
  • types.QuorumStatus — QuorumMet / QuorumLost / StaleEpoch
  • types.SlashReason — InsufficientBond / StaleAttestation / GeographicCollusion / Forgery

Locked constants (§7):

  • MinBond = 100000 (100,000 Bread)
  • Quorum = 6 (6-of-9)
  • MaxWatchers = 9
  • AttestationEpochHours = 24 (daily)

x/mirror — Reserve Ratio Publication

  • types.NavPerBread — Net Asset Value per Bread (§4.2)
  • types.ReserveRatio — real-time published ratio with quorum flag

x/still — Pause/Resume (Still/Stir)

  • types.StillState — StirActive / StillPaused (§3)
  • types.StillReason — CouncilVote / QuorumLost / SecurityAlert
  • types.StillRecord — tracks pause events
  • Auto-still on quorum lost (§4.2: Forge/Fold blocked until quorum restored)

Tests

12 tests, all passing:

  • Watcher: MinBond, Quorum, MaxWatchers, AttestationEpoch, DefaultParams (5)
  • Still: DefaultStillState, AutoStillOnQuorumLost, StillStates (3)
  • Mirror: DefaultPublishInterval, ModuleName, NavPerBreadStruct, ReserveRatioQuorum (4)

What's NOT in this skeleton (deferred to P1 completion)

  • Cosmos SDK app.go full integration (requires SDK v0.50+ dependency resolution)
  • Keeper implementations (BondWatcher, SubmitAttestation, VerifyQuorum, SlashWatcher)
  • CLI commands (oyd tx watcher bond, oyd query watcher quorum)
  • Proto definitions (Buf-generated types)
  • CometBFT consensus setup
  • Genesis import/export

Next Steps (P1 continuation)

  1. Resolve Cosmos SDK v0.50 dependency tree
  2. Implement keeper logic with store operations
  3. Add proto definitions and code generation
  4. Wire modules into app.go
  5. Build oyd daemon
  6. Integration test: 9 Watchers bond, submit attestations, verify quorum