PR-time smart-contract auditing

Audits are point‑in‑time.
Code is continuous.

Every pull request that touches money‑code becomes an audit event. Generic reviewers read code changes — Rextor audits money changes, and anchors the verdict on‑chain.

rextor-audit[bot]PASS ✓

check run · diff-scoped · fork-proven

critical0×60

high0×25

medium1×10

low2×3

risk score16/100 · 1×10 + 2×3

reviewId
keccak256(rextor/review/v1|…)
agent
0x5f2b…7f37 · rextor-audit[bot]
chains
Tempo 42431 · HyperEVM 999
Exhibit 01 — sample verdict. The score recomputes from the findings: 1×10 + 2×3 = 16.
Tempo testnet · chainId 42431Attestation v2 · deploy #3 · 0x51ac…495aHyperEVM mainnet · 999 · 0x8f63…850cAgent rextor-audit[bot] · activeAttested reviews · 27

Rextor, in plain words

Step 01

Install the app. It joins your repo like a reviewer.

GitHub App · two-click install

Step 02

Every PR that touches money-code gets audited — machines find, citations prove, forks test.

diff-scoped · Slither · Foundry fork-sim

Step 03

The verdict lands on-chain — permanent, checkable by anyone, impossible to quietly edit.

attestation · Tempo testnet + HyperEVM mainnet

How a review runs

1.0

Scope the diff

The PR diff becomes a change-set of functions and callsites — not a vibe read of the whole repo. New external calls, permission changes, and trust‑boundary crossings get flagged for the passes below.

2.0

Detect deterministically

Slither runs in a network‑isolated, read‑only container. Tool errors produce an explicit INCOMPLETE report — never a fabricated clean pass.

analyzer pass · sandboxed
runtime
Slither 0.11.6, Docker --network none --cap-drop ALL
scope
diff-scoped: changed functions, new callsites, trust-boundary deltas

3.0

Triage with citations

An LLM constrained to three cited operations: reclassify a severity, dedup into an equal‑or‑higher one, or add a finding — only with a cited line range. It assigns no score, and any uncited operation is discarded and counted.

triage policy · temperature 0
allowed
reclassify (original preserved) · dedup (never escalates) · add (cited lines only)
forbidden
scoring · inventing findings · operating without a citation

4.0

Prove by execution

Criticals are reproduced on a fork of the target chain — Foundry against live state. A finding that survives the fork is confirmed; one that doesn't is reported as unproven. Reading code is opinion. Running it is evidence.

5.0

Anchor the verdict

The verdict lands on‑chain: commit hash, findings hash, risk score, agent identity. The score comes from a published rubric — anyone can recompute it from the findings alone, then check it against the chain.

attestation · real record
reviewId
keccak256("rextor/review/v1|" + owner/repo + "|" + pr + "|" + headSha)
findingsHash
sha256 of the canonical findings JSON — printed in every review comment
score
rubric: critical 60 · high 25 · medium 10 · low 3, cap 100
agent
rextor-audit[bot] · 0x5f2b…7f37

What actually ships

Live rows carry their receipt — every green check links its artifact. Competitor marks are datestamped, not guessed.

Live now · 15 receipts

Shipped capabilities, each with its receipt
CapabilityGeneric AI reviewOne-shot audit botsRextor Audit
Built for money‑code — analyzer grounding stage 2.0
Every PR an audit event (diff‑scoped, continuous) stage 1.0
Deterministic, recomputable risk score rubric
Execution‑proof findings (fork‑sim PoC) stage 4.0
Verdict on‑chain, native to the target chain Tempo · live · HyperEVM mainnet · live · Solana devnet · live
Integrity rails — INCOMPLETE never silent stage 3.0
Suggested fix per finding (reviewable diff) smoke PR · suggested diff
Repo config + severity merge gate smoke PR · severity gate failure on high finding (App-authored check-run)
Durable full report (IPFS) + anyone‑can‑verify smoke PR · CID + on-chain hash
Verifiable agent identity (ERC‑8004) agentId 50891 · mainnet · live
Public agent reputation ledger automated ingestion pipeline · evidence-backed (findingsURI+hash) · broadcast config-gated
Cross‑PR memory (dismissals) smoke PR · learnings ledger
Chat in PR smoke PR · bot reply
Chain cost‑model reasoning real receipts: Tempo 0.0125–0.154 (6 txs) · HyperEVM mainnet 0.0000468 HYPE (verify=true)
Living dashboard — ledger, history, identity live dashboard

shipped · partial · not evidenced — competitor marks relative to public product pages as of 2026‑09‑25.

Rider tracks — Ethereum (1), Base (8453), Arbitrum One (42161), Robinhood Chain (params at integration) — anchor via the home-chain attestation; targetChainId recorded per review (foundry hint).

Where it runs

Tempo flagship · chainId 42431

Full loop, live. Slither, fork‑sim, attestation v2 deploy #3 — 27 reviews anchored — contract ↗

HyperEVM primary · chainId 999

Mainnet, live. Attestation v2 deployed 2026‑09‑21, agent registered active — first mainnet attestations pending — contract ↗

Riders config‑level

Ethereum 1 · Base 8453 · Arbitrum 42161 · Robinhood Chain — deterministic pass; verdicts anchor home‑chain with a target‑chain field. No per‑rider code paths.

What Rextor can't do

The integrity rails, in plain words — the refusals are the product.

It can't invent findings.

Every operation carries a cited line range or it is discarded. The agent never scores anything — the published rubric does, and anyone can recompute it.

It can't fake a clean pass.

A broken analyzer produces status = 1, attested on-chain — a riskScore: 0 can never masquerade as "all clear".

It can't be hijacked by PR content.

Titles, comments, and code are adversarial by assumption — rendered inert, prompt-injection hardened, simulation sandboxed.

It can't lose money.

The attestation key has no fund path. Worst case from key theft: visible, attributable bogus attestations. There is nothing to steal.

Questions, answered straight

What does it cost?

Free. If that ever changes, pricing ships on this page first — no surprise invoices.

Which chains does it run on?

Tempo testnet runs the full loop today, and verdicts anchor on HyperEVM mainnet as of 2026‑09‑21. Ethereum, Base, Arbitrum, and Robinhood Chain ride the same deterministic pass with home‑chain anchoring. Solana devnet is live ↗.

What is a "verdict on-chain"?

Every review ends with a small record written to the blockchain — commit hash, findings hash, risk score, agent identity. After it lands, nobody can edit it, including us. See one ↗

Does this replace my auditor?

No. Rextor makes every pull request an audit event between the human audits. Your annual engagement still matters — this is the continuous layer underneath it.

What happens when the tooling breaks?

The run marks itself INCOMPLETE and attests that on-chain. A broken analyzer can never look like a clean pass — failure is a visible, checkable state.

Can I see it working before installing?

Yes — live verdicts on Tempo ↗, and the whole system is built in the open: public repo ↗.

Install once. Every PR after that is an audit event.

Two‑click install on GitHub. The agent reviews the PRs that touch money‑code and anchors each verdict on‑chain.

Install the GitHub App