Last verified: 28 September 2026

Value Exchange Disclosure

Sovern's value-exchange model — auto-projected from canonical registries. Substrate code defines only schemas, primitives, and flow plumbing; commercial terms live in runtime configuration per AGENTS.md Rule 22.

Generated from lib/registry/value-exchange-axes-registry.ts, lib/registry/compensation-models-registry.ts, lib/registry/collection-policy-statuses-registry.ts, lib/registry/pricing-flow-templates-registry.ts

No hardcoded pricing (Rule 22)

Per AGENTS.md Rule 22: no literal currency amounts, percentages, or entity-named pricing branches anywhere in substrate code. All commercial terms live in runtime configuration and pricing flows. Substrate ships only schemas, rules engines, primitives, and flow invocation plumbing. Six CI guards enforce this invariant including this trust-page anti-drift guard.

Value-exchange axes (7)

Axis 1 — Environment

scope: Per-environment operator fee (covers hosting, support, ops)
who charges: Org operating the env (in their Business Expression) · who pays: Org consuming the env

Axis 2 — Expression

scope: Per-expression access fee
who charges: Expression steward (in their Business Expression) · who pays: Org granted access

Axis 3 — Organization

scope: Per-org substrate fee
who charges: Env operator or expression steward · who pays: The organization

Axis 4 — Space

scope: Per-space tier (A4 tenant boundary)
who charges: Env operator / expression steward · who pays: Space host org

Axis 5 — Participant

scope: Per-human-participant with overage allowance
who charges: Space host org · who pays: Space host org (on behalf of members)

Axis 6 — Agent presence

scope: Per-AI-agent enrolled in a space (BB.sub6; distinct from seat)
who charges: Space host org · who pays: Space host org

Axis 7 — Usage meter

scope: Per-unit usage (compute, AI tokens, storage, anchors, invocations, flow-runs, attestations)
who charges: Env operator / expression steward · who pays: Org consuming

Cross-cutting shapes (2)

marketplace_revenue_share — Marketplace revenue share

% take on any transaction through any of the three marketplace surfaces (Sovern Catalog, Internal Market, External Store per AA.sub1); configurable per surface, per plan, per contract; no default hardcoded. · requires revenue-attestation primitive: no

revenue_cash_outcome_share — Revenue / cash / outcome share

Y% of customer's revenue / net cash / profit / completed-outcome (the 'grow with you' shape); requires revenue-attestation primitive (opened as horizon §ZAM ZÆ5). · requires revenue-attestation primitive: yes

Compensation models (7)

fixed — Fixed

parameters: amount, currency, period · ships v1: yes · requires attestation primitive: no
notes: The existing PlanCatalogEntry case

per_unit — Per unit

parameters: unit_price, currency, meter_key · ships v1: yes · requires attestation primitive: no
notes: Per-invocation, per-token, per-listing, per-anchor

tiered — Tiered

parameters: tiers[] with (threshold, rate, currency) · ships v1: yes · requires attestation primitive: no
notes: Graduated seat pricing, graduated meter pricing

hybrid — Hybrid

parameters: components[] composing any of above · ships v1: yes · requires attestation primitive: no
notes: Multi-axis pricing flows

revenue_share — Revenue share

parameters: percentage, currency, attestation_primitive_ref · ships v1: no · requires attestation primitive: yes
notes: Requires §ZAM ZÆ5 revenue-attestation primitive before operational

cash_share — Cash share

parameters: percentage, currency, attestation_primitive_ref · ships v1: no · requires attestation primitive: yes
notes: Same — requires §ZAM ZÆ5

outcome_share — Outcome share

parameters: percentage, outcome_event_ref · ships v1: no · requires attestation primitive: yes
notes: Requires attested-outcome primitive (subset of §ZAM ZÆ5 or separate horizon)

Collection policy statuses (4)

collected — Collected

Gross price collected at period close per pricing-flow output.

deferred — Deferred

Collection deferred to a future date (e.g., trial period); requires `collect_at` timestamp. · requires field: collect_at

discounted — Discounted

Discount applied as a percentage of gross; requires `percentage` numeric value. · requires field: percentage

waived — Waived

Charge waived (e.g., personal space for individual; partnership allocation). When applied out-of-normal-policy, requires `attestation_id`. · requires field: attestation_id (when out-of-normal-policy)

Pricing flow templates (4)

fixed_period_flow — Fixed period flow

The existing PlanCatalogEntry behaviour wrapped as a flow (backwards-compat path for current `system_settings.billing.plans` entries). Fixed-period fee alignment per BB.sub4.
input: PricingFlowInput per BB.sub4 · output: PricingFlowOutput per BB.sub4 with single line item · ships v1: no

per_seat_with_overage_flow — Per seat with overage flow

Fixed allowance + per-excess-seat rate.
input: PricingFlowInput with `participant_count` per space · output: PricingFlowOutput with line items for fixed allowance + overage · ships v1: no

usage_metered_flow — Usage metered flow

Reads `meter_readings`; applies per-unit rates.
input: PricingFlowInput with `meter_readings` · output: PricingFlowOutput with line items per meter · ships v1: no

hybrid_multi_axis_flow — Hybrid multi-axis flow

Composes any subset of the 7 axes.
input: PricingFlowInput composed across axes · output: PricingFlowOutput with multi-axis line items · ships v1: no

Future expansion (§ZAL horizon)

Per the §ZAL horizon stub, the value-exchange substrate will be extended with the value_exchange_attestations table (J6.BB.4), pricing-flow operational behaviour (J6.BB.3), and the J Wave 6 commerce-module decomposition. Templates are shape-only at v1 and throw E_TEMPLATE_NOT_OPERATIONAL_AT_V1. See docs/architecture/DECISIONS.md §ZAL when published.