Anti-MEV · Anti-Sandwich · Zero Trace

Autonomous Agents. Zero Trace.

On Base today, every agent is 100% visible — wallet, timestamp, pair, strategy. Copiable in days. Sandwich attacks trivial. NullAgent makes that impossible.

How It Works
Base mainnet · live
RAILGUN_ENABLED=false · L1 active
Funding Wallet
Railgun Shield [Q2]
Stealth Pool  
Execution · Base Mainnet
public identity
breaks link
L1 · active
ephemeral · per trade
12,847
Wallets Generated
3,291
Executions
891
Signals Sold
847.3
ETH Protected
Privacy Architecture

Three Layers. Zero Trace.

L1ACTIVE

Stealth Wallets

New ephemeral wallet per operation. Private keys held in memory only — never persisted. Wallet retired after single use.

viem generatePrivateKey()
L2Q2

Railgun Shield

Breaks the on-chain link between your funding wallet and stealth execution wallets via shielded UTXO pool on Base.

@railgun-community/wallet
L3Q3

ZK Decision Proof

Semaphore zero-knowledge proof that the agent acted — without revealing the wallet, timestamp, or decision logic.

@semaphore-protocol/core
Vault Architecture

Every deposit,
automatically split.

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.

60%
Execution Pool
ETH used for actual trades via stealth wallets
30%
Gas Reserve
Funds each stealth wallet before every trade
10%
Conway Infra
Swapped to USDC → compute credits via x402
Example: 1 ETH deposit
Execution Pool0.600 ETH
Gas Reserve0.300 ETH
Conway Infra0.100 ETH → USDC
// auto-split on deposit
vault.split(deposit, [0.60, 0.30, 0.10])
Live Network

Active Agents

null-0047L1
ETH in vault2.41 ETH
Executions847
Last wallet0x4f3a...9b2c
null-0019L1
ETH in vault1.88 ETH
Executions623
Last wallet0x8c1d...3e7f
null-0033L1
ETH in vault0.94 ETH
Executions312
Last wallet0x2a9b...7d4e
Documentation

Start building.

Everything you need to deploy, configure, and extend NullAgent. Open source, MIT licensed, built on open protocols.

Quickstart

Deploy in 3 steps

01
Run Conway Terminal
npx conway-terminal
02
Configure environment
cp .env.example .env
03
Deploy your agent
./deploy-conway.sh
Architecture

How privacy works

L1
Stealth Wallet
viem generatePrivateKey()
L2
Railgun Shield
shieldFunds(amount, recipient)
L3
ZK Proof
semaphore.generateProof(signal)
Payments

x402 protocol

01
Agent makes request
GET /signal
02
Server responds 402
HTTP 402 · price: $0.001
03
Agent pays + retries
PAYMENT-SIGNATURE header
src/privacy/stealth.ts
// 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 }
}
FAQ

Common questions.

The questions that come up most when builders first encounter NullAgent.

Open an issue →
01
How is NullAgent different from a regular bot?

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.

02
What is a stealth wallet exactly?

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.

03
What does RAILGUN_ENABLED=false mean?

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.

04
How does the x402 signal market work?

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.

05
Do I need ETH to run an agent?

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.

Ready?

Ready to disappear?

Deploy your agent in minutes. Trade without a trail. No one will know you were there.

GitHub
· Deploy Wizard
Deploy Wizard

Launch Your Agent

1Connect
2Configure
3Fund
4Launch

Connect Wallet

Authentication uses personal_sign — no JWT, no email, no OAuth. Your wallet is your identity.

AGENT DASHBOARD · not connected
Base Mainnet
Demo Mode
L1 Active
7
Wallets Generated
5
Ready in Pool
3
Executions
L1
Privacy Layer
Stealth Wallets
Stealth Wallet Pool
AddressStatusCreatedUsed For
Live Feed
WalletPairDirAmountStatusAge
Vault
Total Balance
5.230 ETH
Exec Pool (60%)3.138 ETH
Gas Reserve (30%)1.569 ETH
Infra (10%)0.523 ETH
Privacy
RailgunPENDING Q2
Stealth WalletsACTIVE
Railgun ShieldQ2
ZK ProofQ3
RAILGUN_ENABLED=false · module loaded
Live Agent Log
Demo