roodex
v1.0.1
Published
Agentic toolchain for Robinhood Chain (chain id 4663). Generates AGENTS.md with the chain conventions, lints Solidity against eight Nitro-semantics rules, simulates deploy bundles on a fork, and signs receipts that gate the deploy in CI.
Maintainers
Readme
roodex
CLI for Robinhood Chain — chain id 4663, an Arbitrum Orbit / Nitro L2 with
100 ms blocks, an FCFS sequencer that ignores priority fee, and data availability
through Ethereum blobs.
The chain reached mainnet on 1 July 2026 and never entered a training cut, so an agent left to itself substitutes Arbitrum One constants and counts blocks in the wrong units. This puts the chain's conventions in the repository, and enforces them in CI.
npx roodex init # writes AGENTS.md + .roodex/Node 20+, zero runtime dependencies.
Commands
roodex init [--local] [--rpc URL] # AGENTS.md with the chain conventions
roodex demo [--fixed] # scaffold a project that shows the whole path
roodex lint <path...> # eight rules, exit 1 on any error
roodex simulate --bundle f.json [--receipt-out receipt.json]
roodex receipt publish receipt.json
roodex gate --receipt f --bundle f [--max-age 1800] [--require-clean-lint]
roodex call <tool> '{"json":"args"}' # any of the twelve tools directly
roodex toolsinit generates an AGENTS.md holding the chain id, RPC, precompile addresses,
stock-token registry and the forbidden patterns. Codex, Claude Code and Cursor
all read that file natively — the conventions reach the agent even where MCP is
not available.
The whole path in a minute
npx roodex init
npx roodex demo # a vault written the way an agent writes it
npx roodex lint src/ # 13 errors, 2 warnings → exit 1
npx roodex demo --fixed
npx roodex lint src/ # clean → exit 0
npx roodex simulate --bundle script/Deploy.bundle.json --receipt-out receipt.json
npx roodex receipt publish receipt.json
npx roodex gate --receipt receipt.json --bundle script/Deploy.bundle.json --require-clean-lintThe gate exits 0 only when the receipt is signed, fresh, published, and its
bundleHash matches the deploy bundle. Edit receipt.json by hand and signature
recovery catches it — which is the point: "simulate first" becomes a machine
check instead of a claim in a pull request.
roodex demo also drops a GitHub Actions workflow wiring exactly that into CI.
Lint rules
RD001 block.number as an L2 block counter ·
RD002 ordering bought with priority fee ·
RD003 cached balanceOf/totalSupply of a stock token ·
RD004 transfer without handling compliance rejection ·
RD005 pricing or liquidation outside the trading session ·
RD006 msg.sender without L1→L2 aliasing ·
RD007 gas budget without the L1 component ·
RD008 windows sized for twelve-second blocks
Each finding carries a primary source and a replacement snippet.
Scope
Network access is modelled, not live: the RPC, archive reads and publication to
RoodAttestations run against deterministic local fixtures. Everything that does
not need a node — the linter, NYSE session and calendar logic, storage-slot math,
ABI and revert decoding, gas decomposition, EIP-712 signing and verification — is
real and runs offline.
See also
roodex-mcp— the same twelve tools as an MCP server:codex mcp add roodex -- npx -y roodex-mcp- https://roodex.tech
MIT.
