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---
48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# Stash
|
|
|
|
A **Stash** is a Holder's personal [Storage Pool](../shared/storage-pools.md)
|
|
(REQ-014). It is the place a Nomad holds Bread, and it is the second thing a
|
|
Nomad needs after a [Reach](reach.md) to begin. The Stash is the unit of
|
|
self-service: the Holder owns it, controls it, and can delegate a scoped,
|
|
time-limited, revocable [Window](window.md) to a partner or a service
|
|
without giving up custody.
|
|
|
|
## What a Stash is
|
|
|
|
The Stash is the Holder-level layer of the three Storage Pools (Stash,
|
|
Vault, Root-Pool). It is a storage layer, not a custodial position: the
|
|
protocol holds the canonical state that records who owns what; the Holder
|
|
holds the value. There is no custodian between a Nomad and their Stash.
|
|
|
|
## How a Nomad uses a Stash
|
|
|
|
A Nomad moves Bread into a Stash through the [bearers](bearers.md) — a
|
|
Holder on a surveillance-resistant bearer can receive value without an
|
|
internet connection to OY Chain. From the Stash a Nomad can:
|
|
|
|
- **Hold** Bread (the unit of value — see [Bread scale](../shared/bread-scale.md)).
|
|
- **Pass** value to another Reach (the Hand-Pass, free at the protocol
|
|
level inside a Guild).
|
|
- **Pay** for a service via [Maps & Pay](maps-pay.md).
|
|
- **Authorize** a [Window](window.md) so a partner or service can read the
|
|
Stash within bounds the Holder set.
|
|
|
|
## The 90-day Freeholder signal
|
|
|
|
Holding a Stash continuously for 90 days is the first of the four
|
|
Freeholder signals (REQ-005). The Stash does not need to hold a large
|
|
amount — the signal is about continuity, not size. A Nomad who keeps a
|
|
Stash for 90 days and earns the other three signals (Standing, Capital,
|
|
Vouch) becomes a Freeholder.
|
|
|
|
## Delegation, not custody
|
|
|
|
The Stash stays the Holder's. When a Nomad opens a Window to a service,
|
|
the service gets a scoped capability (e.g., "read Stash balance for the
|
|
next hour", "spend up to N Grain on this service this week") — it does not
|
|
get custody. The Window is revocable, rate-limited, and audited. See
|
|
[Window](window.md) for the primitive.
|
|
|
|
See [Storage Pools](../shared/storage-pools.md) for the full three-pool
|
|
model, and [Bearers](bearers.md) for how value reaches a Stash over a
|
|
surveillance-resistant bearer. |