An AI-native cockpit for real Ethereum networks.
Nightcall lets developers who are new to web3 work with real networks — Sepolia, Base Sepolia, and (explicitly gated) Ethereum / Base mainnet — through natural language. Describe what you want; Nightcall turns it into a reviewable plan, you confirm, and a deterministic executor sends the transactions, watches the events, and explains what happened in plain language.
Sibling project of Nightsmith (local Anvil worlds). Nightsmith is the isolated sandbox; Nightcall is the real-network console. They share design DNA — natural language in, a validated plan as the source of truth, confirmation before execution — but Nightcall's safety model is built for irreversible transactions from day one.
All five roadmap phases (0–4) have shipped. See docs/ROADMAP.md.
| Phase | Scope | Status |
|---|---|---|
| 0 | Monorepo scaffold, chain registry, cockpit shell | ✅ |
| 1 | Keystore wallet + prompt → plan → send on Sepolia | ✅ |
| 2 | Contract deploy/call, live events, mini explorer | ✅ |
| 3 | Mainnet with fork-simulation gate + spend limits | ✅ |
| 4 | Debugging: revert decoding, plain-language explains | ✅ |
pnpm install
pnpm dev # server on http://127.0.0.1:4050
pnpm dev:web # cockpit on http://127.0.0.1:5183Check RPC connectivity:
pnpm --filter @nightcall/server exec tsx src/cli.ts doctorCopy .env.example to .env. Public RPC endpoints work out of the box (rate-limited) — Sepolia defaults to ethereum-sepolia-rpc.publicnode.com, other chains use viem's built-in default. RPC resolution is: NIGHTCALL_RPC_<CHAIN> env override → project default → viem default, so set NIGHTCALL_RPC_* to your own Alchemy/Infura endpoints for reliability. Mainnet-tier chains stay disabled unless NIGHTCALL_ALLOW_MAINNET=1.
Real networks mean real consequences. Nightcall's non-negotiables:
- AI providers plan only — they never execute, never touch RPC, never see private keys.
- Nothing is broadcast without explicit user confirmation of a validated plan.
- Mainnet-tier chains are opt-in, and (from Phase 3) every mainnet write is simulated on a local Anvil fork before broadcast, with per-transaction spend limits.
See docs/SAFETY.md.
- docs/ARCHITECTURE.md — layers and data flow
- docs/SAFETY.md — the safety model
- docs/ROADMAP.md — phased plan
- CLAUDE.md — working guidance for contributors and agents
- Node.js ≥ 24 (the mini explorer uses the built-in
node:sqlite, unflagged since Node 24), pnpm ≥ 11 - Foundry (
anvil,forge) — needed from Phase 2 for compilation and fork simulation
MIT