const nowUtc = new Date(); // reference input only
const pulse = Math.floor(momentFromUTC(nowUtc).pulse); // canonical genesis-anchored pulse index
const quote = quotePhiForUsd(
{ meta: WALLET_RATE_META, nowPulse: pulse, usd: 100, currentStreakDays: 0, lifetimeUsdSoFar: 0, plannedHoldBeats: 0 },
DEFAULT_ISSUANCE_POLICY
);
const usdPerPhiMicrocents = parseUsdPerPhiToMicrocents(quote.usdPerPhi.toFixed(8));Value source appendix
This appendix defines how settlement rate and value fields are derived, persisted, and validated so replay behavior remains deterministic across implementations, with pulse time anchored to genesis math and civil-time input treated as reference-only.
Settlement Ledger Unit (SLU): Settlement Ledger Unit (SLU) is the canonical non-USD settlement custody unit used to keep online ledger replay and offline note settlement deterministic. For protocol compatibility, SLU micro-values are persisted in `phi*` field names (for example `amountPhiMicro` and `balancePhiMicro`).
Institutional core: one deterministic custody unit across ledger posting, replay, and offline note settlement. Approachable edge: USD-first account UX with explicit field-level SLU compatibility for integrators.
- V-001: Pulse SHALL be resolved from the canonical deterministic pulse function anchored at genesis and SHALL be recomputable to the same index for the same reference instant.
- V-002: Quote SHALL be derived via `quotePhiForUsd` with `DEFAULT_ISSUANCE_POLICY`.
- V-003: Derived rate SHALL be quantized to `usdPerPhiMicrocents` integer precision.
- V-004: Event persistence SHALL include USD amount, SLU amount, and posting reference rate together.
- Check that `usdPerPhiMicrocents > 0` before conversion operations.
- Check that pulse recomputation for the same reference instant resolves to the same pulse index.
- Check that event tuple (`amountUsdCents`, `amountPhiMicro`, `usdPerPhiMicrocents`) is present and numeric.
- Check that proof bundle fields are present for attested ledger entries.
- Check that replayed conversion outputs match persisted values under integer rounding rules.
Pulse index from deterministic genesis-anchored pulse math is the sole settlement time authority.
UTC `Date` input may be used only to select the current pulse index; it SHALL NOT define value authority.
Issuance quote + integer quantization at resolved pulse index define posting reference rate deterministically.
Pulse authority does not drift across implementations: same input instant MUST resolve to the same pulse index.
Source: `amountUsdCents`
Contract: User-facing statement values and account display.
Source: `amountPhiMicro` / `balancePhiMicro`
Contract: Canonical settlement state in integer Settlement Ledger Unit (SLU) micro-units (`phi*` protocol field naming).
Source: `usdPerPhiMicrocents`
Contract: Deterministic posting reference rate captured per event.
Source: `proofBundle.*`
Contract: Verification continuity across private and public ledger surfaces.
- This appendix specifies value-source guarantees for wallet settlement routes only.
- Route guarantees apply when value remains inside the deposit/transfer/note-mint/note-claim contract set.
- External systems that do not preserve event tuple + proof fields are outside this appendix scope.