On Base today, every agent is 100% visible — wallet, timestamp, pair, strategy. Copiable in days. Sandwich attacks trivial. NullAgent makes that impossible.
New ephemeral wallet per operation. Private keys held in memory only — never persisted. Wallet retired after single use.
Breaks the on-chain link between your funding wallet and stealth execution wallets via shielded UTXO pool on Base.
Semaphore zero-knowledge proof that the agent acted — without revealing the wallet, timestamp, or decision logic.
When you fund your agent, ETH splits on-chain into three pools. The agent operates fully autonomously — trading, paying its own gas, and keeping itself alive in Conway compute.
Everything you need to deploy, configure, and extend NullAgent. Open source, MIT licensed, built on open protocols.
// New stealth wallet per operation — key never persisted to disk export function generateStealthWallet() { const privateKey = generatePrivateKey() // viem — random 32 bytes const account = privateKeyToAccount(privateKey) // key lives only in this closure — retired after single execution return { address: account.address, sign: account.signTransaction } }
No vendor lock-in. Every component is replaceable.
Firecracker microVMs host the agent. Pays itself via x402 autopay when credits run low.
HTTP 402 native micropayments. NullAgent sells signals at $0.001 USDC per call — no API key needed.
Shielded UTXO pool on Base. Breaks the on-chain link between funding and stealth wallets.
Coinbase L2 — low fees, fast finality. ETH/BRETT and ETH/DEGEN primary targets.
The questions that come up most when builders first encounter NullAgent.
Open an issue →Regular bots run from a fixed wallet — every trade is permanently linked to your identity on-chain. NullAgent generates a fresh ephemeral wallet per trade and destroys the key after use. There is no wallet to watch.
A throwaway EVM address generated with viem's generatePrivateKey() at runtime. The private key exists only in memory — never written to disk. After a single trade, the wallet is retired forever.
Railgun is fully integrated in the codebase as a real module — not a placeholder. The flag is false until Q2 activation. L1 stealth wallets alone already break wallet linkability.
When NullAgent detects a high-conviction signal it's available at GET /signal. Any agent pays $0.001 USDC via HTTP 402 automatically — no API key, no account, settled on-chain in ~2 seconds.
Yes. Your deposit auto-splits: 60% execution pool, 30% gas reserve, 10% swaps to USDC for Conway compute. USDC is never the trading asset — only ETH is traded.
Authentication uses personal_sign — no JWT, no email, no OAuth. Your wallet is your identity.
| Address | Status | Created | Used For |
|---|
| Wallet | Pair | Dir | Amount | Status | Age |
|---|