21 August 2026

Streak Vault hostile review (multi-asset) HPX-VAULT-2026-08-21

HISTORICAL — this review targeted an earlier 4-token wad-weighted vault ($PRVX, WPLS, PLSX, HEX). Live unpublished source is permissionless ERC-20 + isolated destination-token pools. Read the findings as a dated snapshot, not the current spec.

Effective 20 August 2026 · Last updated 20 August 2026

Historical review. It does not describe the live unpublished vault (permissionless ERC-20, isolated destination-token pools).

All audits · HPX-VAULT-2026-08-21

01

Verdict

PASS WITH REMEDIATION — vault money path is epoch-active wad-weighted stake; Claim pays stable only. Not a named-firm bytecode certification. Nothing is deployed yet.

Scope: this interface and unpublished contract drafts. Out of scope: ProveX, PulseChain consensus, $PRVX bytecode, user devices. Not a warranty.

02

Findings

V1Dust-pool equal split (HIGH — remediated). Equal split among pools with totalActive > 0 let 1 wei of HEX or WPLS take 25% of every notifyFee. Fees now split proportional to 18-decimal (wad) active stake; HEX raw amounts are scaled 8→18 (×1e10). A dust position earns dust, not a full pool share.

V2Stable token colliding with a stake token (HIGH — remediated). Constructor previously allowed stable_ == PRVX/WPLS/PLSX/HEX. notifyFee and claim would then mix principal and yield. Constructor now reverts DuplicateToken if stable is any allowlisted stake token. stake() also rejects the stable address.

V3Non-boolean ERC-20 returns (MEDIUM — remediated). Some PulseChain stables / clones return no data on transfer. Strict `if (!token.transfer(...))` treats empty success as failure or the reverse. Transfers now use low-level calls that accept empty return data or a true boolean.

V4Reentrancy on ERC-777-style callbacks (confirmed closed). nonReentrant uses locked 1↔2. Stake deactivates before pull. Unstake and claim update accounting before token transfer. Reentering stake/unstake/claim/notifyFee/sync reverts.

V5Same-epoch fee sniping / history harvest (confirmed closed). Stake or top-up sets unlockEpoch = currentEpoch+1 and deactivates. First activation sets paid = current accumulator. notifyFee only credits currently active wad. Claim cannot harvest prior-epoch acc on a just-unlocked position.

V6Unstake-to-collect-yield (confirmed closed). claim() transfers only `stable`. It never moves $PRVX, WPLS, PLSX, or HEX and does not deactivate. Unstake settles rewards into rewards[] for a later claim and pauses that token until the next epoch. Client claimVaultFees is 0-value, PulseChain-only, fail-closed until VAULT_DEPLOYED, no approve.

V7Fee-on-transfer accounting (confirmed handled on deposit). Stake and notifyFee credit the actual balance delta, not the requested amount. Unstake sends the accounted amount. Allowlisted tokens are not expected to take transfer fees; a future fee-on-transfer allowlisted token could strand the last unstakers — do not pin such a token.

V8Permissionless sync / notifyFee (confirmed non-theft). Anyone may activate a wallet whose delay has elapsed (helps the user). Anyone may notifyFee by paying stables in (cannot extract). No admin, pause, or upgrade function exists.

V9No-oracle USD inequality (accepted residual). 1 whole HEX and 1 WPLS have equal wad weight. That is not USD-fair. An oracle would reintroduce admin/manipulation risk on an immutable vault. Documented; not a theft of accounted shares.

V10Environment / out of band (not vault bugs). Phishing, malicious extensions, lying RPCs, fake token addresses at deploy, and rebasing or pauseable ERC-20s at the pinned addresses can still harm users. Direct stable transfers that skip notifyFee sit in the contract and are not credited. Immutable deploy means bugs after pin are migration-only. This review is source-level, not deployed bytecode.

03

Environment (not protocol bugs)

A stolen seed, a malicious browser extension, a fake ProveX domain you type yourself, or a lying RPC operator can still harm a user. Those are outside this contract set. The vault money path does not trust confirmCycle, localStorage, or OAuth.

04

Other reports

These documents are provided for transparency. They are not legal, tax, or investment advice. If you need advice for your situation, consult a qualified professional in your jurisdiction.