82ae6cf5a2
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---
46 lines
2.3 KiB
Markdown
46 lines
2.3 KiB
Markdown
# Bonds
|
|
|
|
A **Mesh Bond** (REQ-021, vision §17) is a [Stand](stands-guilds.md)-issued
|
|
instrument that pays a **coupon** to its holder over a term and returns the
|
|
principal at maturity. The coupon is bounded by a **mission-locked cap and
|
|
floor**: 8% upper cap, 0% floor (locked `CouponCapBps = 800` and
|
|
`CouponFloorBps = 0` in `x/bond`). The cap exists so the mesh cannot become a
|
|
speculative market; the floor exists so the coupon cannot go negative.
|
|
|
|
## The coupon clamp
|
|
|
|
The coupon is clamped to `[floor, cap]` by the `Clamp` helper in `x/bond`
|
|
(same shape as the [Fee Covenant](../shared/six-principles.md) clamp): a
|
|
coupon above 8% is reduced to 8%; a coupon below 0% is raised to 0%; a coupon
|
|
in range is unchanged. The clamp is a tested invariant: below floor → floor,
|
|
above cap → cap, in range → unchanged. This is the Mission Lock's expression
|
|
in the capital layer.
|
|
|
|
## Why a cap
|
|
|
|
OpenYield is a public-good mesh for **real production**, not a speculation
|
|
engine. An uncapped coupon market would let a Stand offer arbitrarily high
|
|
coupons to attract Bread, turning the mesh into a speculative race. The 8%
|
|
cap bounds the coupon at a level consistent with real production returns, and
|
|
the [Mission Lock](councils-voice.md) makes the cap non-amendable — no Council
|
|
vote can raise it. The mesh says **coupon** and **real return**, never the
|
|
passive-value or standalone-metric words banned by the
|
|
[lexicon](../shared/lexicon.md).
|
|
|
|
## The bond lifecycle
|
|
|
|
A Bond moves through five states (locked `BondStatus` enum in `x/bond`):
|
|
Issued → Active → Matured, with Defaulted and Repaid as terminal paths. The
|
|
issuer is a Stand (referenced by stand-id); the principal is denominated in
|
|
[Grain](../shared/bread-scale.md). The bond market is governed by the
|
|
[Stand Council](councils-voice.md) for the issuing Stand.
|
|
|
|
## Coming in v0.3 P5
|
|
|
|
v0.3 P5 (REQ-026) extends the bond market with **Growth Bonds** (a coupon that
|
|
grows over the term, still clamped to the 8% cap) and a **secondary market**
|
|
(Buy/Sell orders on issued bonds). The 8% / 0% consts are unchanged — the
|
|
D-028 regression firewall guarantees v0.3 cannot alter the v0.2 mission-locked
|
|
ceiling. See [Partner Spectrum](partner-spectrum.md) for how Partners relate
|
|
to the bond market, and [Anchor Preview](anchor-preview.md) for the
|
|
institutional tier. |