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).
Network parameters
02 Network facts
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.
On Ethereum mainnet
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.
khrome-evolution-chain repo under contracts/src/bridge/
and relayer/.