vivraDocumentationV1How voting works

Implementation status

This page is based on a review of the code repository on November 4, 2026. “Present in the code” describes a local implementation; it does not mean a service is configured or deployed in production.

Existing components#

AreaObserved elementsRepository reference
ProductLanding, voting, dossiers, war room, and ledgerapps/web
AdministrationCycles, approvals, treasury, operations, and integrationsapps/admin
APIPublic routes, email sessions, voting, administration, WebSocketapps/api/src
OrchestrationSchedule, dependencies, approvals, and step logapps/workers/src, packages/core/src/schedule.ts
AgentsSix YAML specs, prompts, tools, schemas, and runnerpackages/agents/src
Business logicEligibility, score, voting, verdict, fee split, buyback planningpackages/core/src
ChainReads and writes, Vivra contract ABI, BuybackBurner contractpackages/chain, contracts

Sprint logs and their evidence are in code/docs/sprints. They describe historical verification; the product suites were not rerun when this GitBook was written.

Pons: unresolved dependencies#

packages/chain/src/abi/README.md states that the factory v2, escrow, hook, and curve ABIs are [] placeholders. The loader rejects an unavailable ABI with ABI_NOT_AVAILABLE.

The actual escrow claim signature and fee-redirection procedure need confirmation. Addresses in a configuration file do not establish that an integration is operational.

As a result, descriptions of the flywheel and Pons transactions remain specifications until the necessary dependencies are verified and connected.

Clarifications against the specification#

TopicClarification
Recovery scoreFive pillars, as defined in Appendix E and recoveryScore.ts. The reference to “seven criteria” in one original spec table does not change this structure.
VerdictDay 7, or 168 hours after Day 0, according to schedule.ts. The 72 hours refer to the takeover.
Fee allocation4% of volume: 1.7% team, 1.5% buyback, 0.5% AI, 0.3% Pons. Creator escrow receives 3.7%; split.ts allocates the claimed amount as 17/37, 15/37, and 5/37.
Treasury roundingInteger-division remainder goes to buyback; the sum is preserved exactly.
VotingConfigurable minimum account age: 24 h by default, 0 h for cycle 1.
Verdict without dataverdict.ts can return a null verdict when required measurements are unavailable.
Approvalvalidation_required defaults to true. Steps marked always or manual remain controlled.
Buyback windowThe spec says “seven days, from Day 1 to Day 7.” buybackEnvelope.ts starts at max(Day 1, now) and ends at Day 1 + duration_days, or Day 8 with the default 7 days. The verdict remains on Day 7.
Rejected slicesapps/workers/src/buyback/executor.ts distinguishes executed, skipped, and failed slices. Deterministic refusals before signing are skipped without retry; an automatic 1–3 h delay does not describe current behavior.

Parameters and decisions#

Thresholds are centralized in packages/core/src/settings.ts. The back-office can change configured values; this documentation states the defaults in the inspected repository.

Open questions is retained as a historical specification reference. Some recommendations there are already coded as defaults. Their presence in the code does not establish external approval by Pons.

Documentation provenance#

The 42 original pages were reconstructed from markers in doc/VIVRA-SPEC.md and translated into English. The guides, this page, and visual identity page are editorial additions. A manifest preserves the SHA-256 fingerprint of the source document.

See Sources and maintenance for the relationship between the documents, frontend, and site.

↑ ↓ to navigate · Enter to openVIVRA DOCS