C-00·Contracts
Pons and USDG fork integration
The local mainnet-fork test launches through the real Pons integration, creates a USDG market, reaches graduation, resolves the market and checks redemption. The test uses forked chain state and does not send mainnet transactions.
Evidence and limits: PonsForkTest: one integration test passed with RH_FORK enabled. This does not verify a production deployment or the worker/indexer end-to-end.
C-01·Contracts
Collateral and fee accounting
The tested trading and settlement sequences keep share backing separate from protocol fees, creator fees, LP fees and dispute bonds. Fee withdrawals pay their designated recipients.
Evidence and limits: 37 prediction contract tests, including a 2,000-run accounting fuzz test and treasury-only buy/sell fee withdrawal.
C-02·Contracts
Transaction permissions and reentrancy
Market resolution is restricted to its resolver and disputed outcomes to the active arbitrator. Reentrant trading is rejected in the malicious-receiver test. Factory-created clones are initialized within the creation transaction.
Evidence and limits: Contract source review; unauthorized-resolution, reentrancy and market-creation tests.
C-03·Contracts
Emergency pause and settlement exits
Paused markets reject new trading and the factory rejects new market funding. Merge, eligible liquidity withdrawals, disputes, finalization and redemption remain available under their normal rules.
Evidence and limits: Pause/exits and paused-factory funding regression tests.
C-04·Contracts
Resolution lifecycle and supported metrics
Tests cover dispute bonds, arbitration timeout, missing proposals, graduation and price proofs. Repeated identical touch proofs cannot extend a dispute window. The unsupported liquidity-history metric cannot accept new deposits. Signed metric reports reject contradictory threshold answers, future data blocks, missing evidence hashes and YES observations after the measurement window.
Evidence and limits: Prediction contract lifecycle, oracle-proof, unsupported-metric and signed-report consistency tests.
C-05·Contracts
Bounded fees and treasury deployment policy
Prediction trading fees are capped at 3%. Deployment preflight requires prediction fees to use the launcher's treasury wallet and allocates the entire prediction fee to it. Existing market fee terms are fixed; the factory owner can change the treasury destination and future-market defaults.
Evidence and limits: Fee-cap and treasury payout tests; deployment script source review. The live factory feeConfig() returns 100 / 0 / 0 / 10000 and treasury() returns the launcher fee recipient (D-01).
D-01·Contracts
Mainnet deployment matches the reviewed configuration
All seven contracts are deployed on Robinhood Chain (4663) and wired as reviewed: the launcher points at the live Pons V2 factory with an immutable 2.00% creator tax and treasury recipient; the router points at the Uniswap V4 PoolManager; the factory points at the launcher and uses a 1.00% prediction fee paid 100% to the treasury; USDG is the only collateral (25 USDG minimum liquidity, 0.01 USDG minimum trade, 50 USDG dispute bond); all three resolvers are approved with the correct market class and point back at the factory; the metric reporter is an authorised signer. Every deployment transaction succeeded.
Evidence and limits: Onchain reads on 2026-09-21 against the addresses in contracts/deployments/robinhood-4663*.json and the broadcast receipts (L2 blocks 68,511,191 to 68,513,039). Launcher quoteFees(): 300 bps total trade fee, including the 200 bps creator tax.
W-06·Web and API
Chain-backed documentation degrades safely
The fees chapter returned a server error in production because its chain client depended on the full server environment and was created outside its error handling. Chain reads now need only the RPC URL, every fee source is read independently, and a failed read shows a fallback instead of an error page.
Evidence and limits: Production /docs/fees returned HTTP 500 before the fix and HTTP 200 after it was deployed; /api/health now reports the RPC as reachable in production.
W-01·Web and API
Wallet transaction safeguards
Wallet writes use network selection, simulation and receipt confirmation. Token and market trades submit minimum outputs. Market liquidity additions submit a nonzero pool-share minimum and disable submission without a usable quote.
Evidence and limits: Transaction and trade-panel source review; contract slippage regression; TypeScript checks.
W-02·Web and API
Request sizes and pagination
Upload and metadata bodies have byte and read-time limits, including chunked requests. Shared hourly and daily submission budgets apply before per-IP counters and body parsing; counters saturate instead of overflowing. Public listing APIs reject malformed or out-of-range pagination and token-trade APIs reject invalid date cursors.
Evidence and limits: Request-limit unit tests, local HTTP rejection checks and a Postgres concurrency/rotating-IP/overflow/window-reset regression.
W-03·Web and API
Raster upload validation
Uploads accept only PNG, JPEG, WebP and GIF. Detected dimensions, animation frame count and total pixels are bounded; SVG and unparseable image headers are rejected. Images are served with nosniff and a restrictive image response policy.
Evidence and limits: Raster-format, truncated-input, JPEG/WebP dimension and valid-image regression tests; upload and image-response source review.
W-04·Web and API
Market text and specification binding
Template text is generated on the server. Registration requires the complete regenerated spec to match the submitted spec, including manual dispute-window terms. Discovery requires both metadata and spec hashes to match the indexed contract event.
Evidence and limits: Metadata and discovery source review; malformed-spec and mismatched-manual-spec HTTP checks.
W-05·Web and API
Administrative access and response headers
Administrative pages and actions check credentials, with the dashboard disabled when credentials are absent. Administrative writes require the configured origin. Response policies deny framing and MIME sniffing; production HTTPS termination remains a deployment check.
Evidence and limits: Proxy and handler source review; local unauthorized-admin, cross-origin and security-header checks.
K-01·Worker
Oracle history boundary handling
The tested scanner includes rounds exactly at the window start and searches across feed phases. Transport errors, exhausted scan limits, missing current-phase rounds and missing intermediate phases stop the scan rather than providing evidence for a NO proposal.
Evidence and limits: Oracle-history regression tests; keeper and resolver source review.
O-01·Operations
Builds, types and dependency advisories
The reviewed web and worker compile, typecheck and pass the recorded regression suite. npm reports no known advisories for the reviewed application dependency lockfile. Advisory scanning does not establish that dependencies are free of vulnerabilities.
Evidence and limits: Production web/worker builds, workspace typecheck, 14 request/image/oracle regressions and one Postgres rate-limit regression, npm audit. Dependency results are a dated snapshot.