How mainnet works
What a mainnet program would change
There is no mainnet deployment, and no mainnet transaction is sent. This page explains what a mainnet program would change, and shows a live, read-only check of the one piece its trust rests on that can be checked today: NEAR mainnet's Ethereum light client.
What stays the same
- The contracts and their settlement rules
- The verifier build, pinned by its hash
- Sealed proofs, T1 quotes verified on NEAR, rounds and the release gate
What changes
| Part | Testnet, now | Mainnet |
|---|---|---|
Anchor | client-eth2.sepolia.testnet (one relayer) | client-eth2.bridge.near: Ethereum mainnet's finalized chain, from BLS-verified sync-committee updates |
Verification | OutLayer on testnet | OutLayer's mainnet workers; their TDX quotes verified on NEAR mainnet |
Pauses and releases | the MPC network on testnet, adapters on Sepolia and Base Sepolia | the MPC network on NEAR mainnet, the program's adapters on Ethereum and other EVM chains |
Payouts | wNEAR (wrap.testnet) | the NEP-141 token the program commits |
Latency. A program's anchor must be final on Ethereum (about 13 minutes) and held by the light client, which trails Ethereum by lag_blocks below.
The live check
- Light client
- client-eth2.bridge.near on NEAR mainnet
- Latest block it holds
- 26,378,534
- Its hash on NEAR
0xfc8997f903d21c8a51c00d8a6035c12cc55fb3021700e77bd9c2a91a9ac2cfdb- Its hash on Ethereum
0xfc8997f903d21c8a51c00d8a6035c12cc55fb3021700e77bd9c2a91a9ac2cfdb- Equal
- equal
- Ethereum's finalized head
- 26,378,534
- Lag
- 0 blocks behind
- Checked
- Read through
- https://rpc.mainnet.fastnear.com
https://ethereum-rpc.publicnode.com - Transactions sent
- 0
A mainnet program's anchor would be checked against this client when the program is created, as testnet's are against client-eth2.sepolia.testnet. Run the testnet check
Holds if: the two hashes are equal (the API re-reads NEAR mainnet and Ethereum)
antibody mainnet-checkThe API recomputes the check every few minutes; checked_at_unix says when.
The check as data
{
"checked_at_unix": 1794242804,
"equal": true,
"ethereum_finalized": 26378534,
"ethereum_rpc": "https://ethereum-rpc.publicnode.com",
"hash_on_ethereum": "0xfc8997f903d21c8a51c00d8a6035c12cc55fb3021700e77bd9c2a91a9ac2cfdb",
"hash_on_near": "0xfc8997f903d21c8a51c00d8a6035c12cc55fb3021700e77bd9c2a91a9ac2cfdb",
"lag_blocks": 0,
"last_block": 26378534,
"light_client": "client-eth2.bridge.near",
"near_rpc": "https://rpc.mainnet.fastnear.com",
"network": "mainnet",
"transactions_sent": 0
}What is mock
- The check reads NEAR mainnet and Ethereum mainnet directly: view calls and
eth_getBlockByNumber, nothing signed. - Mocks exist only in the offline sandbox demo (MOCK OutLayer, DCAP and MPC, TEST keys). Testnet uses the real services. What is mock, in full
- The roadmap's mainnet path includes external audits. Everything that runs today runs on testnets, where wNEAR has no value. The limits
The same explainer: docs/mainnet.md