← All documentation

<div align="center">

KAURAX

An application-focused Ethereum Layer-3.

Build faster on Ethereum — scalable Web3, AI, payments and next-generation applications, settling through an underlying Layer-2.

Architecture · Stack decision · Developers · Bridge · Threat model · Mainnet readiness

</div>


              ETHEREUM  (L1)
                   │  settlement + data availability
                   ▼
      UNDERLYING ROLLUP  (L2)   ← configurable
                   │  KAURAX batches + output roots
                   ▼
              KAURAX  (L3)
        KAX · Solidity · DeFi · AI · payments · dApps

KAURAX is not an independent Layer-1. It has no validator set and no consensus of its own. It executes transactions, publishes its data to an underlying Layer-2, and through that L2 inherits settlement from Ethereum.

Status

DevnetRuns today. Three real EVM chains, real settlement contracts, verified end to end.
Public testnetConfigured, not deployed. No KAURAX testnet is running.
MainnetNo. See MAINNET_READINESS.md.
Fault proofsNot implemented. Output roots are trusted.
SequencingCentralized. One operator.
AuditsNone.
KAXTestnet gas asset. No monetary value.

Quickstart

Requires Foundry, Node.js ≥ 20 and pnpm.

pnpm install
./infra/scripts/devnet/start.sh

This brings up an L1, an L2, the KAURAX settlement contracts on that L2, KAURAX itself, and prints the wallet parameters. Then:

./infra/scripts/devnet/status.sh        # three-layer status
./tests/acceptance.sh             # full end-to-end acceptance test
pnpm explorer:dev                 # explorer, bridge and dashboard on :3000
./infra/scripts/devnet/stop.sh

Deploy a Solidity contract:

cd blockchain/contracts
forge build && forge test
export KAURAX_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
forge script script/DeployExamples.s.sol:DeployExamples --rpc-url http://127.0.0.1:8420 --broadcast

That key is a well-known public Anvil devnet key. Never use it anywhere else.

Add KAURAX to a wallet

FieldDevnet
Network nameKAURAX Devnet
RPC URLhttp://127.0.0.1:8420
Chain ID8420
Currency symbolKAX
Explorerhttp://127.0.0.1:3000

All configurable in .env. kaurax wallet add prints the exact wallet_addEthereumChain parameters for whichever network is running.

What is actually implemented

EVM equivalenceSolidity, Foundry, Hardhat, MetaMask, viem, ethers — unmodified
JSON-RPC + WebSocketFull eth_* surface, subscriptions, plus a kaurax_* namespace
SequencerMempool, nonce-aware ordering, fixed-interval block production
Deposit derivationL2 TransactionDeposited events become L3 transactions
BatcherRLP + zlib, published as calldata to KauraxBatchInbox on the L2
Proposerkeccak(version, stateRoot, withdrawalTreeRoot, blockHash) to the L2 oracle
BridgeDeposits, and withdrawals proven by Merkle inclusion under a committed root
Data availabilityVerified: the acceptance test recovers a transaction from L2 calldata alone
ExplorerBlocks, transactions, addresses, contracts, tokens, network, dashboard
Bridge UIWallet connect, deposit, withdraw, live stage tracking
SDK@kaurax/sdk — chain reads, settlement state, bridge proofs
CLIkaurax network status, block latest, tx status, bridge status, …
AI layerOptional service registry, agent registry, escrowed payments
NamesName registry with terms, grace period and verified reverse records
SwapConstant-product AMM: swap, liquidity provision, pool browser, 0.3% LP fee
LaunchpadEscrowed token sales with a creator console; below the soft cap everyone refunds in full
Backend APIHealth, network, blocks, transactions, addresses, tokens, payments, analytics
IndexerPostgreSQL — blocks, transactions, logs, tokens, transfers; atomic and reorg-aware
PaymentsKAURAX Pay — settlement verified on chain before a payment is confirmed
AIRouted server-side through the xKiro gateway
DeploymentDocker Compose, Nginx, UpCloud bootstrap and deploy scripts, 7 CI workflows
MonitoringPrometheus metrics, Grafana dashboard, alert rules

What is not

  • Fault proofs. An incorrect output root that survives the challenge window is final.

This is the single largest risk in the system. - Decentralized sequencing. One sequencer. If it stops, KAURAX stops. - Forced exit. Deposits cannot be censored; withdrawals can. - Account abstraction. The EVM would support ERC-4337; KAURAX operates no bundler, paymaster or EntryPoint. - Durable unbatched blocks. Blocks produced but not yet batched live only in the node. - Audits. None.

Each is stated at the point of use in the code, in the RPC responses, and in the UI.

Repository layout

kaurax/
├── apps/            10 Next.js applications (Vercel)
│                    web · explorer · wallet · bridge · pay
│                    ai · swap · names · launchpad · docs
├── services/
│   ├── api/         Fastify — chain reads, payments, analytics, AI proxy
│   └── indexer/     chain → PostgreSQL, plus schema migrations
├── blockchain/
│   ├── l3/          kaurax-node: sequencer, derivation, batcher, proposer, RPC
│   ├── contracts/   Foundry — settlement, bridges, AI layer, examples
│   └── chain/       chain config and genesis allocation
├── packages/        types · ui · sdk · config · cli
├── infra/           docker · nginx · scripts · monitoring
├── docs/            protocol and operations documentation
└── tests/           end-to-end acceptance and API smoke tests

Turborepo over pnpm workspaces. See ARCHITECTURE.md for what runs where and DEPLOYMENT.md for how to deploy it.

Running the whole stack locally

pnpm install
./infra/scripts/devnet/start.sh          # L1 + L2 + settlement contracts + KAURAX

createdb kaurax_dev                      # optional: indexer + API
export DATABASE_URL="postgresql://$(whoami)@127.0.0.1:5432/kaurax_dev"
pnpm --filter @kaurax/indexer dev &
pnpm --filter @kaurax/api dev &

pnpm dev                                 # all 10 frontends, one per port
SurfaceLocal
KAURAX RPChttp://127.0.0.1:8420 (ws :8421)
APIhttp://127.0.0.1:4000
Explorerhttp://127.0.0.1:3000
Landing / Wallet / Bridge / Pay / AI:3010 :3011 :3012 :3013 :3014
Swap / Names / Launchpad / Docs:3015 :3016 :3017 :3018

Architecture in one paragraph

kaurax-node follows the OP Stack (Bedrock) split between deciding what a block contains and deciding what it means. The sequencer owns ordering and hands transactions to an execution engine behind ExecutionEngineInterface — anvil (revm) on the devnet, op-geth for the testnet profile. Deposits bypass the mempool entirely: they are derived from L2 events, so the sequencer cannot censor them without censoring the L2. The batcher publishes compressed block data to the L2, the proposer publishes state commitments, and withdrawals are proven against those commitments by Merkle inclusion. Full detail in docs/architecture.md; the reasoning behind the stack choice is in docs/STACK_DECISION.md.

Tests

cd blockchain/contracts && forge test   # 162 contract tests
pnpm test                               # 66 unit tests (node, indexer, API)
./tests/acceptance.sh                   # 47 end-to-end checks against a live devnet
./tests/api-smoke.sh                    # 35 API checks against live chain data
./tests/apps-smoke.sh                   # 43 checks of Names, Swap and Launchpad

353 automated checks in total.

The acceptance test performs a real deposit through the portal, sends KAX, deploys and calls a contract, waits for the batch, recovers the transaction from L2 calldata, waits for an output root, then withdraws with a real Merkle proof and finalizes on the L2.

Security

No component has been audited. KAX has no monetary value. Do not deposit anything you care about. See docs/threat-model.md and docs/security.md.

Never commit a private key. .env is gitignored; .env.example contains only the publicly documented Anvil test keys.

Licence

MIT — see LICENSE.