vivraDocumentationV1How voting works

Project analysis on demand

Vivra does not scan the entire blockchain. The team finds dead projects and submits their addresses. The Scanner analyzes only those tokens, and only projects approved by the team appear in the dapp.

There is no indexer continuously reading every Pons launch: that would incur RPC and storage costs for thousands of tokens that will never be taken over.

The flow#

  1. The team submits an address in the back-office: contract address, optionally with known X, Telegram, docs, or GitHub links.
  2. The Scanner analyzes it within a few minutes, for that token only: on-chain data, Vivra target, safety rules, socials and docs, recovery score, and a draft dossier (thesis, timeline, risks).
  3. The team reviews the analysis in the back-office and chooses:
    • Approve: the project enters the candidate reserve, ready for a ballot;
    • Reject: it remains in the database with a reason, invisible in the dapp, and is not reanalyzed unless requested;
    • Rerun analysis: for example, after adding a missing link.
  4. Publication: when assembling a cycle, the team selects 5 approved projects. Their dossiers become public when the cycle is published, not before.

Analysis can be rerun at any time. Market figures refresh immediately before cycle publication, then the score is frozen for voting.

What the Scanner reads for one token#

DataSourceCost
Contract: minting, ability to sell, owner, owner functionsbytecode reads and simulated calls (RPC)a few calls
Pons version, state (curve or graduated), pool, creator tax, fee recipientPons v2 factory and hook reads (RPC)a few calls
Holders, holding age, new holders, concentration, cost basisTransfer events and trades for this token only, from its launch block (eth_getLogs filtered by address), or Robinhood Chain explorer API if supportedone history read per analysis
Price, market cap, high, volumetrades from the same history, optionally Bitquery's Pons APIincluded
Developer and linked walletscreator wallet transactions, two levels deepa few calls
Simulated buyback price impactcurve or v4 pool quote (read-only, no transaction)1 call
X account: existence, last tweet, followersX API for this account only1–2 calls
Project profile picture and bannerX API images, copied into Vivra object storage to avoid relying on X URLs1 call
Docs, whitepaper, website, GitHubHTTP requests and GitHub APIa few calls
Telegrammember count through the public link; activity only when a Vivra bot is in the group1 call

Verify at milestone M1 that eth_getLogs over a token's full history stays within Alchemy's block-range limit; otherwise split requests into block ranges.

Planned update, Vivra Scout: infrastructure that monitors the entire chain and automatically proposes dead projects matching the target. V1 does without it: the team finds projects and submits addresses.

Dead status#

A token is Dead when three conditions hold: average volume below $1,000 per day over 7 days, price down at least 85% from its high, and developer inactivity for 14 days (no creator-wallet transaction). The Scanner checks this during analysis; a submitted token that is not Dead is flagged for the team to decide.

Vivra's target#

Vivra takes over legitimate tech projects that actually existed, not disposable memes: a product, documentation, and an X account still online. The project had traction, fell back, and its team stopped posting, but the foundations for a takeover remain.

RuleDefault thresholdSource
All-time-high market cap$500,000 or moretrade history
Current market cap$15,000–$50,000latest snapshot
Project X accountstill exists, neither deleted nor suspendedX API
X silenceno project-account tweet for at least 30 daysX API
Accessible documentationat least one online source: docs (GitBook, Notion, docs subdomain), whitepaper, GitHub repository, or live websiteHTTP check, then team review
Tech projecta product, protocol, or tool described in the docs, not just a memeproposed by Scanner, confirmed by team

Safety rules#

RuleThresholdBlocking
Holders with a real balancemore than 300yes
Mint functionnoneyes
Selling possibleyesyes
Liquiditylocked Uniswap v4 pool (graduated Pons v2 token), or still on the curveyes
Developer and linked-wallet holdingsless than 5%yes
Pons versionpreferably v2no; contributes to recovery score
Creator taxabove 0%no; contributes to recovery score

Each rule's result appears in the back-office: green, red, or “not found.” A failed blocking rule does not prevent a team override, but the team must explain why, and the public dossier displays the failed rule.

Thresholds are database parameters that can be changed in the back-office without redeployment.

Tracking after approval#

Only relevant tokens are continuously tracked, keeping infrastructure small:

Tracked tokensFrequencyPurpose
The 5 candidates in the current voteevery 15 minlive market data in dossiers
CTO token during its operation (72 h, buyback, verdict)live, from pool or curve eventswar room, chart, slices
Tokens taken over, through Day 30hourlyfollow-up, verdict, handover
Tokens whose fees go to Vivradailyfee ledger from escrow Credited events
Everything elsenever

In practice, the specification expects fewer than 10 tokens tracked at once.

Token lifecycle#

FromToTrigger
(submitted)AnalyzedScanner finishes analysis
AnalyzedApprovedteam approves
AnalyzedRejectedteam rejects with a reason
ApprovedCandidateteam adds it to a ballot
CandidateCTO livewins the vote
CandidateApprovedloses the vote; can return on a later ballot
CTO liveSendingafter 72 h, if volume or holders exceed starting thresholds
CTO live or SendingRevivedpositive Day 7 verdict (open questions, decision 9)
CTO live or SendingDead againnegative Day 7 verdict

API#

Inputs, outputs, and errors for each route: Appendix B · API.

  • GET /candidates/:id: public dossier of a published candidate.
  • GET /stats: landing figures (takeovers, revived, $VIVRA burned).
  • POST /admin/projects: submit an address for analysis (team).
  • GET /admin/projects, POST /admin/projects/:address/review: review, approve, or reject (team).

Sign-in and voting:

  • POST /auth/email: send a magic link or six-digit code; reject disposable emails.
  • POST /auth/verify: verify the code or link and open a 30-day session.
  • GET /cycles/current: current cycle, candidates, times, vote shares.
  • POST /votes: vote or change a vote in the current cycle.
  • POST /supports: support a candidate.
  • GET /operations/:id and a WebSocket channel: CTO steps, log, and slices.

Acceptance criteria#

  • A testnet address submission produces a full analysis (target, safety, socials, score, draft dossier) in under 10 minutes.
  • Results for 10 analyzed tokens are manually checked against the explorer.
  • A rejected token appears nowhere in the dapp or public API.
  • No job reads launches or trades of tokens that are neither candidates nor taken over.
↑ ↓ to navigate · Enter to openVIVRA DOCS