Developer documentation

Build on Khromosome.

Khromosome is a from-scratch EVM Layer 1 (chain 777001) — standard Ethereum proof-of-stake, Reth execution + Lighthouse consensus. If you can build on Ethereum, you can build here. Everything you need is on this page.

01 Connect

One click adds Khromosome to any EIP-1193 wallet (MetaMask, Rabby, Frame).

Get testnet KHROME ↗

Network parameters

Network nameKhromosome
Chain ID777001 (0xbdb29)
Currency symbolKHROME
Decimals18
RPC (WSS)wss://ws.khromosome.xyz

02 Network facts

ConsensusEthereum PoS — Reth + Lighthouse
Block time~12 s (slot-clocked)
FinalityValidator-quorum, deterministic
EVM featuresEIP-155 · EIP-1559 · Cancun opcodes
Native tokenKHROME — gas + settlement
The RPC speaks standard eth_* plus the Otterscan ots_* namespace — which is how KHROME EXPLORER reads the chain with no indexer database.

03 Core contracts

All deployed contracts are verified — source is browsable on sourcify.khromosome.network and on each address page in the explorer.

KhromeChain0xCa05…56d4
ValidatorRewards0xB1e9…4270
Khromeswap Factory0xe927…39e0
Khromeswap Router0x6633…9e02
KDEMO (demo ERC-20)0x03Dc…4af49
KhromeBridge (L2)0x470f…b63f

On Ethereum mainnet

BridgedKHROME (ERC-20)0x6E34…68F6

04 Hello world

Deploy your first contract to Khromosome with Foundry. Same flow as any EVM chain.

1 · Fund a wallet

# grab a fresh keypair, then drip it from the faucet
cast wallet new
curl -X POST https://faucet.khromosome.network/drip \
  -H 'content-type: application/json' \
  -d '{"address":"0xYourAddress"}'

2 · Deploy

# any Foundry project — point --rpc-url at Khromosome
forge create src/Counter.sol:Counter \
  --rpc-url https://rpc.khromosome.xyz \
  --private-key $PK \
  --broadcast

3 · Verify the source

# submit the build's metadata.json + sources to Sourcify
curl -X POST \
  https://sourcify.khromosome.network/v2/verify/metadata/777001/0xYourContract \
  -H 'content-type: application/json' \
  -d @verify-body.json
# the green "Exact Match" badge then shows on KHROME EXPLORER
verify-body.json is { "metadata": <rawMetadata>, "sources": { "<path>": "<content>" } }. Foundry writes rawMetadata into out/<Contract>.sol/<Contract>.json.

05 Talk to the chain

JSON-RPC

curl https://rpc.khromosome.xyz \
  -X POST -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

ethers.js

import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("https://rpc.khromosome.xyz");
const net = await provider.getNetwork();   // chainId 777001n
const head = await provider.getBlockNumber();

viem

import { createPublicClient, http, defineChain } from "viem";

export const khromosome = defineChain({
  id: 777001,
  name: "Khromosome",
  nativeCurrency: { name: "Khrome", symbol: "KHROME", decimals: 18 },
  rpcUrls: { default: { http: ["https://rpc.khromosome.xyz"],
                        webSocket: ["wss://ws.khromosome.xyz"] } },
  blockExplorers: { default: { name: "KHROME EXPLORER",
                               url: "https://explorer.khromosome.network" } },
});

const client = createPublicClient({ chain: khromosome, transport: http() });

06 The mainnet bridge

KHROME crosses to Ethereum mainnet through a lock-and-mint bridge. Lock native KHROME in KhromeBridge on Khromosome; a relayer mints BridgedKHROME (an ERC-20) on mainnet. Burn it back with bridgeBack to receive native KHROME again.

Bridge out (L2 → L1)KhromeBridge.bridgeOut(l1Recipient) payable
Bridge back (L1 → L2)BridgedKHROME.bridgeBack(amount, l2Recipient)
The bridge runs a trusted relayer today — fine for bootstrapping, get an audit before large TVL. Relayer + contract source live in the khrome-evolution-chain repo under contracts/src/bridge/ and relayer/.

07 Every surface