Independent verification · unsolicited · not affiliated · peer to peer

Arbitrum ($ARB) - Independent Verification Review

TargetArbitrum One and Arbitrum Nova, Offchain Labs' optimistic-rollup Ethereum L2s under Arbitrum Foundation / ArbitrumDAO governance (Nitro tech stack). ARB is the DAO governance token; ETH is the gas token on both chains, not ARB.
URLhttps://arbitrum.io · https://docs.arbitrum.io · https://docs.arbitrum.foundation · https://github.com/OffchainLabs/nitro
Date2026-08-10. Every number in this document was read on this date. Live values carry the command that re-reads them.
MethodPassive public reads only: published docs (raw markdown + rendered pages), the open-source Nitro repo read (never installed or executed), the public status page, and read-only eth_call / cast against public RPCs for Arbitrum One (42161), Arbitrum Nova (42170), and Ethereum mainnet (1). Nothing was submitted, signed, bridged, deposited, or traded. No account was registered, no wallet connected, no one was contacted.
AffiliationNone. We hold no position in ARB, have no relationship with Offchain Labs or the Arbitrum Foundation, and were not asked to perform this review. This is part of an ongoing unsolicited peer-review series (Lighter, Hyperliquid, CEN, RWI, Burgers preceded it).

Command shorthand used in Reproduce columns: cast = Foundry's cast (any install works). ARB1_RPC = https://arb1.arbitrum.io/rpc. NOVA_RPC = https://nova.arbitrum.io/rpc. ETH_RPC = https://ethereum-rpc.publicnode.com.

Verification discipline

Six research lanes (web/headers + agent-readiness, L1 core-contract verification, L2 chain identity/precompiles, governance/security trust model, audits + bug bounty, GitHub/license/status) produced about eighteen load-bearing claims. A separate adversarial pass re-ran ten of the core checks completely fresh (new cast/curl calls, not reused output) before anything below was written.

Tally: 17 CONFIRMED (on-chain, or read directly from Arbitrum's own raw doc source / GitHub / status page) · 1 CORRECTED (a common assumption that ARB is Arbitrum's gas token: it is not; gas on both Arbitrum One and Nova is paid in ETH) · the Security Council's exact multisig threshold (9-of-12 / 7-of-12) is left labelled REPORTED. We confirmed the 12-member, DAO-elected structure from Arbitrum's own concept page directly, but the specific threshold numbers came from secondary governance explainers in this pass, not a raw primary fetch. One coverage gap logged (arbitrum.io's root marketing domain, Cloudflare bot-challenged, logged as their infrastructure, not routed around). Nothing below is speculation; every row carries its reproduce command.

Verdict in plain language

Arbitrum is the real thing it claims to be, and it is unusually well-instrumented about saying so. Every contract we checked (the L1 rollup core, the bridge/inbox/outbox messaging path, the fraud-proof dispute manager) is a live, non-empty contract at exactly the address Arbitrum's own docs publish, and BoLD (permissionless, time-bounded fraud proofs) is live on mainnet with a public 6.4-day dispute window and a 3,600 ETH minimum validator bond, not a roadmap promise. The audit trail is large and current: 43 published reports from four different firms, the newest ten days old at the time of this review, and the $2M Immunefi bug bounty has been running since 2021 and was updated within the last two weeks. What deserves equal prominence with those strengths: the sequencer for both chains is still centralized and Foundation-operated (Arbitrum says so plainly, with a stated worst case of a 24-hour delay/reorder, not a safety break), and Arbitrum Nova is mid-way through a DAO-approved wind-down ("minimization") with a live migration window that closes 2026-09-02. Neither is a defect, both are disclosed, governance-passed decisions at this stage of the roadmap, but a reader holding assets on Nova today needs to know the clock is running. We found no path by which a user loses funds through a defect in what Arbitrum has built or documented.

What we independently confirmed is TRUE

The three things worth doing first

  1. If you hold assets on Arbitrum Nova, act before 2026-09-02. Nova is in Phase 2 of a DAO-approved "Minimize Arbitrum Nova" migration window (2026-06-04 to 2026-09-02); Nova's own Arbiscan explorer was already deprecated in May 2026. Bridge to Arbitrum One via the canonical bridge now, before Phase 3 deprioritizes support further.
  2. Mirror the agent-readiness signal onto the root marketing domain. docs.arbitrum.io is fully open to automated reads and publishes llms.txt; arbitrum.io Cloudflare-challenges even a single plain, non-abusive read (curl and a standard fetch both got HTTP 403). Either relax the challenge for simple GETs or publish a matching llms.txt at the apex domain, so agent/LLM tooling discovering Arbitrum via the marketing site isn't walled off before it ever reaches the docs.
  3. Put a one-line human note next to the GitHub license badge. Nitro's LICENSE file correctly states Business Source License 1.1 with a documented conversion path, but GitHub's auto-detected badge shows "Other" / NOASSERTION, which a builder skimming the repo can misread as "no license" or "fully proprietary." A one-line README note ("BUSL-1.1, converts to [X] after the change date, see LICENSE") costs nothing and removes the ambiguity.

Findings

High

None. We found no provable path today by which a user or their funds are compromised through a defect in what Arbitrum has built or published.

Medium

None this pass. Every trust-reducing property we found, centralized sequencer, Security Council emergency powers, the Nova wind-down, is disclosed by Arbitrum in its own docs or governance forum, not something we had to dig for or that contradicts a stated guarantee.

Low

#FindingEvidence (2026-08-10)ReproduceFixVerdict
L1Agent/crawler access is inconsistent across Arbitrum's own two domains. docs.arbitrum.io (Vercel-hosted) is fully open to a plain read and publishes llms.txt. arbitrum.io (the root marketing domain, Cloudflare-fronted) returns an HTTP 403 bot-challenge to the same kind of single, non-abusive read, from both a raw curl and a standard browser-shaped fetch. Not a security defect; a discoverability gap for exactly the agent/LLM-tooling audience llms.txt targets.curl -sI https://arbitrum.io/ → HTTP 403, cf-mitigated: challenge; curl -sI https://docs.arbitrum.io/ → HTTP 200, carries the llms.txt Link header.curl -sI https://arbitrum.io/ and curl -sI https://docs.arbitrum.io/Relax the Cloudflare challenge for simple GETs on the marketing domain, or publish a matching llms.txt at the apex so agent tooling isn't walled off before reaching the docs.CONFIRMED

Info

#FindingEvidence (2026-08-10)ReproduceFixVerdict
I1Arbitrum Nova is mid-wind-down; the migration window is live now. ArbitrumDAO passed a "Minimize Arbitrum Nova" AIP transitioning Nova to a maintenance-oriented state. Phase 2 (2026-06-04 to 2026-09-02) is the active migration window; Nova's Arbiscan explorer was already deprecated May 2026 per the status page's own active notice. A deliberate, governance-passed roadmap decision, not a defect, but genuinely time-sensitive for anyone still holding Nova assets.Status page active notice: "NOVA - Arbiscan Deprecation Notice... As of May 2026 - Arbiscan for Nova has been deprecated." AIP + phase dates from the Arbitrum governance forum.curl -s https://status.arbitrum.io/ | grep -o "NOVA - Arbiscan Deprecation Notice"; read the "Minimize Arbitrum Nova" AIP and FAQ threads on the Arbitrum governance forum.Bridge Nova balances to Arbitrum One via the canonical bridge before Phase 3.CONFIRMED (status notice) / REPORTED (AIP phase dates)
I2Sequencer centralization, quantified and self-bounded. Arbitrum's own progressive-decentralization page states the sequencer for both One and Nova is "Centralized... currently maintained by the Arbitrum Foundation," with a named worst case: up to a 24-hour inclusion delay / short-horizon reorder, but it "cannot compromise the system's safety or prevent a transaction from ultimately being executed." This matches the independently-documented 5,760-block (24h) force-include period, which lets anyone bypass a non-cooperating sequencer directly through the L1 inbox. A disclosed, current-stage design choice, not a defect.Progressive-decentralization page text (fetched directly); chain-parameters page: "Force-include period... 5760 blocks / 24 hours."Read the "State of progressive decentralization" page (§ Sequencer ownership) and the chain-parameters reference page.Continue the published sequencer-decentralization roadmap.CONFIRMED
I3ARB is not the gas token (common assumption, corrected). Newcomers bridging from other chains sometimes assume the L2's headline token pays gas. On both Arbitrum One and Nova, gas is paid in ETH (chain-params lists gas price floors in gwei, ETH-denominated); ARB is governance-only.Chain-parameters page: "Gas price floor... 0.02 gwei" (ETH-denominated units) for both chains; ARB token docs describe it as a governance token.Read the chain-parameters reference page and the ARB token's stated purpose in the governance docs.N/A, clarification.CORRECTED
I4Nitro's license is accurately disclosed but easy to misread from GitHub alone. LICENSE in OffchainLabs/nitro is Business Source License 1.1 (converts to an open license after a stated change date), a real, documented, source-available license, not proprietary and not silently missing. GitHub's own license-detection badge reports it as "Other" / NOASSERTION because BUSL isn't in GitHub's auto-recognized SPDX set, which can read as "no license" to a builder skimming the repo page rather than opening LICENSE.GitHub repo API returns license identifier NOASSERTION; the LICENSE file body confirms Business Source License 1.1, Licensor Offchain Labs.Fetch the GitHub repo API license field, then fetch the raw LICENSE.md from the repo and compare.Add a one-line README note near the top clarifying BUSL-1.1 + the conversion path, so the accurate disclosure isn't gated behind opening a second file.CONFIRMED
I5Security Council structure confirmed at the headcount level; the exact vote thresholds are REPORTED, not raw-verified by us this pass. Arbitrum's own concept page states the Security Council "is made up of 12 members who are elected by the members of the Arbitrum DAO through a democratic process." The commonly-cited 9-of-12 (emergency) / 7-of-12 (non-emergency) action thresholds come from secondary governance explainers in this pass, our own raw fetch of the concept page and the DAO constitution page did not surface that specific threshold language in the text we extracted.Security Council concept page text: "made up of 12 members... elected... democratic process."Read the Security Council concept page and the DAO constitution directly and confirm the 9-of-12 / 7-of-12 figures primary-source.Publish the exact multisig threshold directly on the concept page, next to the headcount, so it doesn't require a secondary source to confirm.REPORTED (thresholds) / CONFIRMED (headcount + election process)

Verifier notes beyond the findings

What we could not check and why

How to verify this whole document yourself

  1. Install Foundry (https://getfoundry.sh) for cast.
  2. Chain identity: cast chain-id --rpc-url https://arb1.arbitrum.io/rpc42161; cast chain-id --rpc-url https://nova.arbitrum.io/rpc42170; cast call 0x0000000000000000000000000000000000000064 "arbChainID()(uint256)" --rpc-url https://arb1.arbitrum.io/rpc42161.
  3. ARB token: cast call 0x912CE59144191C1204E64559FE8253a0e49E6548 "symbol()(string)" --rpc-url https://arb1.arbitrum.io/rpc → "ARB"; add "totalSupply()(uint256)" for the live supply.
  4. L1 core contracts (all on Ethereum mainnet, --rpc-url https://ethereum-rpc.publicnode.com): cast codesize 0x4DCeB440657f21083db8aDd07665f8ddBe1DCfc0 (Rollup), 0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6 (Sequencer Inbox), 0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f (Delayed Inbox), 0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a (Bridge), 0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840 (Outbox), 0x72Ce9c846789fdB6fC1f34aC4AD25Dd9ef7031ef (L1 Gateway Router), 0xa3A7B6F88361F48403514059F1F16C8E78d60EeC (L1 ERC20 Gateway), 0xA5565d266c3c3Ee90B16Be8A5b13d587ef559fB0 (ChallengeManager), all return non-zero.
  5. BoLD parameters: read the chain-parameters reference page → dispute window 45,818 blocks, min bond 3,600 ETH (Arbitrum One).
  6. Audits + bug bounty: read the audit-reports page (43 rows); spot-check any PDF link for HTTP 200; read the Immunefi Arbitrum program page for the live bounty terms.
  7. Status: curl -s https://status.arbitrum.io/ | grep -o "All systems operational".
  8. Agent-readiness: curl -s https://docs.arbitrum.io/llms.txt | head; curl -sI https://arbitrum.io/ vs curl -sI https://docs.arbitrum.io/ for the access-parity gap.
  9. MPP: read the Machine Payments Protocol quickstart page.
  10. Sequencer trust model: read the "State of progressive decentralization" page (§ Sequencer ownership).
  11. The machine record evidence.json beside this file carries every kept finding plus the raw verifier verdicts.

All live values (chain state, audit list, status, bounty terms) were read 2026-08-10 and will drift; the commands above re-read them at any time.

Private - please read before publishing

No finding in this review was classified sensitive. There is no working exploit anywhere in this document, every item describes a governance/trust-disclosure, licensing-clarity, or agent-access observation, not an exploitable break, and nothing was withheld or requires redaction before you share it. I1 (Nova migration deadline), L1 (agent-access parity), and I4 (license badge clarity) are all safe to publish and are useful, actionable items for Arbitrum and for readers holding Nova assets. Nothing here claims adoption, partnership, or endorsement by Offchain Labs or the Arbitrum Foundation.


Prepared by Brandon Kelly - EcoWealth Corporation - brawlaphant@gmail.com - unsolicited, no reply expected, no strings.

Prepared by Brandon Kelly · EcoWealth Corporation · brawlaphant@gmail.com · unsolicited, no reply expected, no strings. Digital Provisioning
Provisioned by EcoWealth · Digital Provisioning Protocol · provenance‑sealed