Exavolt Chain
Verifiable AI Infrastructure
Technical reference for Exavolt Chain — a Layer-1 network (Chain ID 188188) built to make AI inference verifiable on-chain. EVM-compatible, CometBFT consensus, native token EXVT. Deploy contracts with standard Solidity tooling.
01What is Exavolt
Exavolt Chain is a Layer-1 network built for one purpose: making AI inference verifiable on-chain.
Every inference job is executed independently by two staked nodes. Both must produce byte-identical output. Results are hashed with keccak256 and compared on-chain. A job is accepted only when the two hashes match — and anyone can verify that, permissionlessly, without trusting us.
Determinism has been demonstrated across different machines, operating systems and CPUs — the same model, the same input, the same bytes.
You do not need EXVT, a wallet, or any knowledge of blockchains to use verified inference. The chain is the proof layer, not the checkout counter.
Why two nodes
A single node can be wrong, compromised, or dishonest, and you would have no way to know. Two independent operators producing identical bytes turns a claim into evidence. Redundancy is not overhead here — it is the product.
Matching output proves the result was produced honestly by the specified model and input, and was not tampered with afterwards. It does not prove the model's answer is correct. Models can be wrong, and models can be misled. What Exavolt guarantees is not an AI that cannot err — it is an error that cannot be hidden.
02About EXVT
EXVT is the native gas token of Exavolt Chain. It exists to pay for computation and to compensate node operators for verified inference work.
The project does not sell EXVT.
The project does not operate or maintain a market for EXVT.
The project does not set, quote, or project any price.
EXVT is obtained by performing work on the network — running a node, or contributing to the ecosystem.
This documentation describes how to use the network. It is not an offer, a solicitation, or investment material.
03How to Verify
Everything below can be checked by anyone, at any time, without permission and without trusting this page.
Check the chain is alive
Query eth_blockNumber against the public RPC and watch the height advance. See RPC & Explorer API.
Verify a contract is official
Call isOfficialContract(address) on ExavoltRegistry. Never rely on social media, third-party lists, or this page alone.
Verify an inference result
Take the output you received, hash it with keccak256, and compare it to the result hash stored on-chain. If they match, the output you hold is exactly what both nodes independently produced.
Read the source
Every deployed contract is verified on the explorer. Source code is publicly readable. Do not trust — verify.
04Quick Start
Get connected to Exavolt Chain in under 60 seconds.
Add to MetaMask (one-click)
Open your browser console or use the button on exavolt.io:
await window.ethereum.request({
method: 'wallet_addEthereumChain',
params: [{
chainId: '0x2DF1C', // 188188 in hex
chainName: 'Exavolt',
nativeCurrency: {
name: 'Exavolt',
symbol: 'EXVT',
decimals: 18
},
rpcUrls: ['https://rpc.exavolt.io'],
blockExplorerUrls: ['https://explorer.exavolt.io']
}]
});
Deploy a contract (Remix)
Exavolt Chain is EVM-compatible. Any Solidity contract works — with one constraint: always compile with EVM Version: paris (not Shanghai/Cancun). The node's go-ethereum fork does not implement MCOPY (opcode 0x5e).
Compiling with shanghai, cancun, or later EVM targets generates MCOPY opcodes that cause invalid opcode reverts on Exavolt nodes. Set EVM Version to paris in Remix → Advanced Compiler Settings before every deploy.
Recommended compiler settings
Solidity: 0.8.34 EVM Version: paris // REQUIRED — never shanghai/cancun Optimization: true Runs: 200 License: GPL-3.0
Gas
Exavolt gas is ultra-cheap. Use --gas-prices 7aexvt in CLI. For deploys and heavy transactions, set a manual gas limit (the node's --gas auto estimation sometimes under-estimates for new accounts).
# Token transfer (safe minimum) exavoltd tx bank send FROM TO AMOUNT aexvt \ --gas-prices 7aexvt --gas 300000 # Submit gov proposal exavoltd tx gov submit-proposal proposal.json \ --from DEV --gas-prices 7aexvt --gas 400000 # Note: --gas auto often under-estimates. Use fixed values above.
05Network Configuration
| Parameter | Value |
|---|---|
| Network Name | Exavolt |
| Chain ID (EVM) | 188188 0x2DF1C |
| Chain ID (Cosmos) | exavolt_188188-1 |
| Native Currency | EXVT (18 decimals) |
| Base denom | aexvt (1 EXVT = 10¹⁸ aexvt) |
| RPC (public) | https://rpc.exavolt.io |
| Block Explorer | https://explorer.exavolt.io |
| EVM engine | go-ethereum fork (Evmos-based) |
| Consensus | CometBFT (Tendermint BFT) |
| SDK | Cosmos SDK v0.47.x |
| Finality | ~3 seconds (deterministic) |
| Block gas limit | 50,000,000 (via Gov Proposal #1) |
| Total supply | 1,000,001,000 EXVT (fixed, inflation disabled) |
| Genesis time | 2026-06-19T10:48:09Z |
06Developer Principles
Known constraints of the Exavolt Chain node. Follow these to avoid common failures.
The node's go-ethereum fork does not implement opcode 0x5e (MCOPY), despite genesis claiming Cancun active. Any Solidity function that returns a string type, or compiled with EVM target shanghai+, will emit MCOPY and fail with invalid opcode. Always use EVM target paris and return bytes32 instead of string.
Pattern token.call(abi.encodeWithSignature("transfer(address,uint256)", to, amount)) with abi.decode triggers invalid opcode on this node. Always use a typed interface (e.g. IERC20(token).transfer(to, amount)). This was the root cause of DEX swap failures in ExavoltSwap v1.
Always update state variables before making external calls. This is standard Solidity best practice and especially important here — external call failures after state changes can leave contracts in inconsistent states.
Solidity's try/catch does not intercept the caller-side revert that occurs when the target address has no code. Guard with address(target).code.length == 0 before the call. Demonstrated on-chain, not theoretical.
Quick checklist before deploying
✅ EVM Version set to paris (not shanghai/cancun/osaka) ✅ No string return types → use bytes32 ✅ No raw call + abi.encodeWithSignature → use typed interface ✅ Guard code.length before external calls that may target an EOA ✅ Checks-Effects-Interactions pattern throughout ✅ MetaMask on network 188188 ✅ Deadline param computed dynamically (block.timestamp + buffer) ✅ Gas set manually for important txs (300000-400000 safe range)
07RPC & Explorer API
JSON-RPC endpoint
Standard Ethereum JSON-RPC. Compatible with ethers.js, web3.js, viem, wagmi, Hardhat, Foundry.
# Block number curl -s https://rpc.exavolt.io \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' # Chain ID curl -s https://rpc.exavolt.io \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' # → 0x2DF1C (188188) # Get balance (in aexvt, divide by 1e18 for EXVT) curl -s https://rpc.exavolt.io \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xYOUR_ADDRESS","latest"],"id":1}'
Explorer API (Blockscout)
# Chain stats (blocks, txns, addresses, gas) curl https://explorer.exavolt.io/api/v2/stats # Address info curl https://explorer.exavolt.io/api/v2/addresses/0xADDRESS # Address token balances curl https://explorer.exavolt.io/api/v2/addresses/0xADDRESS/token-balances # Transaction list curl https://explorer.exavolt.io/api/v2/transactions?filter=validated
Consensus params (CometBFT)
# Check current block gas limit and other consensus params
curl -s https://rpc.exavolt.io/consensus_params | python3 -m json.tool
08ExavoltRegistry
The canonical on-chain directory of official Exavolt contracts. Query it to verify any contract address before interacting. Always check here — not social media or third-party sites.
getAllContracts() returns every address that has ever been registered, including contracts that were later deactivated. It is a history, not a list of currently official contracts.
The only authoritative check is isOfficialContract(address), queried per address. Never assume an address is official because it appears in getAllContracts().
Note: the registry contract itself is not self-registered.
All string return types replaced with bytes32. This fixes MCOPY opcode failures (Bug #1) present in v1.1.0. When reading bytes32 fields off-chain, use ethers.utils.parseBytes32String() or trim null bytes.
Read functions
// AUTHORITATIVE: check if an address is currently official bool ok = registry.isOfficialContract(contractAddress); // HISTORY ONLY: every address ever registered, active or not address[] memory all = registry.getAllContracts(); // Verify a specific contract (ethers.js) const registry = new ethers.Contract( '0xA693f4790fc170933a6cBc5C7653cD4aF162D136', ['function isOfficialContract(address) view returns (bool)'], provider ); const isOfficial = await registry.isOfficialContract(targetAddr);
Registered contracts
Always confirm with isOfficialContract() — this table is a convenience, not the source of truth.
| Contract | Address | Status |
|---|---|---|
| WEXVT (Wrapped EXVT) | 0xBDFD...D205 | ✓ ACTIVE |
| ExavoltSwapFactory v3 | 0xd267...616dD | ✓ ACTIVE |
| ExavoltSwapRouter v8 | 0xc681...964DE | ✓ ACTIVE |
| ExavoltMultiSig v1.2.0 2-of-3 | 0x4545...6F403 | ✓ ACTIVE |
| ExavoltGridRegistry | 0x87F3...00A6f | ✓ ACTIVE |
| GridEscrow v2 | 0x7635...7CB1 | ✓ ACTIVE |
| GridRewards | 0xE85A...Fa09 | ✓ ACTIVE |
| MockUSDT — test token, NO value | 0xf931...8332 | TEST / RETIRING |
| ExavoltSwapPair (test pool) | 0x41b8...3A28A7 | TEST / RETIRING |
| ExavoltUSDT v3 — never used | 0x1F0C...E13D | RETIRING |
| ExavoltUSDT v1 | 0xdDb0...Ab96 | DEACTIVATED |
09ExavoltSwap — Reference
ExavoltSwap is a Uniswap v2–style AMM deployed natively on Exavolt Chain. It is neutral infrastructure: any party may create a pair permissionlessly. The project does not maintain a market, does not provide liquidity, and does not quote prices.
The previous WEXVT / MockUSDT pool was a test pool. MockUSDT is a test token with no value and no backing — it was never real USDT, and was never intended to be presented as such. That pool has been emptied and is no longer in use.
Wrap / Unwrap EXVT
Native EXVT can be wrapped to WEXVT (ERC-20) at 1:1 with no fee. This is a utility function for contracts that require an ERC-20 interface — it does not involve any market.
| Token | Address | Decimals |
|---|---|---|
| WEXVT (Wrapped EXVT) | 0xBDFD33fa695B4eaA293EAFca64FB8A2f4F5eD205 | 18 |
Never hardcode the deadline parameter in AMM calls. Always compute it dynamically: block.timestamp + 1200. Hardcoded deadlines cause EXPIRED reverts when blocks are included after the timestamp.
10Add Exavolt to MetaMask
You only need to do this once.
Open MetaMask
Click the MetaMask extension icon in your browser. If you don't have MetaMask, download it from metamask.io (official site only).
Add Network Manually
Click the network dropdown at the top → Add a custom network → fill in the fields below:
| Field | Value |
|---|---|
| Network Name | Exavolt |
| New RPC URL | https://rpc.exavolt.io |
| Chain ID | 188188 |
| Currency Symbol | EXVT |
| Block Explorer URL | https://explorer.exavolt.io |
Save and Switch
Click Save. MetaMask will automatically switch to Exavolt Chain. You should see EXVT as your balance currency.
The only official RPC endpoint is https://rpc.exavolt.io. Do not use RPC endpoints from unknown sources — they could return manipulated data.
11Governance
Exavolt uses Cosmos SDK on-chain governance (x/gov). Consensus parameters (like block gas limit) are managed via x/consensus module proposals.
Gov Proposal #1 — Gas Limit
| Field | Value |
|---|---|
| Proposal ID | 1 |
| Type | cosmos.consensus.v1.MsgUpdateParams |
| Change | block.max_gas: -1 (unlimited) → 50000000 |
| Voting period | 48 hours |
| Min deposit | 1,000 EXVT |
# Submit proposal (JSON file) exavoltd tx gov submit-proposal proposal.json \ --from YOUR_KEY \ --chain-id exavolt_188188-1 \ --gas-prices 7aexvt \ --gas 400000 # Vote yes exavoltd tx gov vote PROPOSAL_ID yes \ --from YOUR_KEY \ --chain-id exavolt_188188-1 \ --gas-prices 7aexvt \ --gas 250000 # Check tally exavoltd query gov tally PROPOSAL_ID
12Tokenomics
Fixed supply of 1,000,001,000 EXVT. Inflation permanently disabled at genesis (enable_inflation: false). No new EXVT will ever be minted.
| Allocation | Amount | % | Purpose |
|---|---|---|---|
| Ecosystem | 300,000,000 EXVT | 30% | Grants, node staking, ecosystem support |
| Rewards Pool | 250,000,000 EXVT | 25% | Node operator compensation |
| Development | 200,000,000 EXVT | 20% | Building and maintaining the network |
| Team | 150,000,000 EXVT | 15% | Contributor compensation |
| Reserve | 100,000,000 EXVT | 10% | Contingency |
| Validator (staked) | 1,000 EXVT | <0.01% | Consensus |
There has never been a presale, a private sale, or an allocation to any investor. Allocations above are purpose-bound and held in the 2-of-3 multisig. See About EXVT for the project's position on markets and pricing.
13Security Model
Exavolt Chain will never DM you first, ask for your private key or seed phrase, or ask you to send EXVT to "verify" your wallet. The only official contract registry is ExavoltRegistry at 0xA693f4790fc170933a6cBc5C7653cD4aF162D136. Always verify contract addresses against this registry before sending funds or approving transactions.
Who controls the registry
Privileged roles on this chain — including ownership of ExavoltRegistry — are held by a native 2-of-3 multisig, not by a single key. Any privileged action requires two independent signatures before it executes.
The three signers are held on three independent devices with three separate seed phrases, including a hardware wallet. No single device holds more than one key. Owner management functions require consensus of the multisig itself — no single signer can make unilateral changes.
The multisig contract is 0x4545108f04D174c2C09a2A05b1bb75f84dE6F403. Its source is verified and its owners, threshold and full transaction history are publicly readable on the explorer — you do not have to take any of the above on faith.
Inference verification
| Property | Implementation |
|---|---|
| Redundancy | Two independent staked node operators per job |
| Agreement | keccak256 of both outputs compared on-chain |
| Verification | Permissionless — a pure function of stored state |
| Disagreement | Escalates to dispute; no result is delivered |
| Fund safety | Every non-final state has a permissionless exit — no funds can be held hostage, including by the project |
"Code does not lie and can be verified by anyone." All deployed contracts are verified on explorer.exavolt.io. Source code is publicly readable. Do not trust — verify.
The five original Exavolt contracts (Registry, Swap Factory, Swap Router, WEXVT, MultiSig) were audited with Slither v0.11.5 and Mythril v0.24.8 prior to deployment. Mythril reported zero exploitable vulnerabilities; all Slither findings were reviewed and resolved. Read the full audit report →
Not covered by that audit: ExavoltGridRegistry, GridEscrow v2, and GridRewards. These are deployed and registered but have not yet undergone an equivalent audit. Treat them accordingly.
14Stay Safe
Exavolt will never DM you first. We will never ask for your private key, seed phrase, or ask you to send EXVT to "verify" anything. If someone claiming to be Exavolt contacts you first — it is a scam.
Official links — bookmark these
| Service | Official URL |
|---|---|
| Website | https://exavolt.io |
| Documentation | https://docs.exavolt.io |
| DEX / Swap | https://swap.exavolt.io |
| Explorer | https://explorer.exavolt.io |
| RPC | https://rpc.exavolt.io |
How to verify a contract is official
Query the ExavoltRegistry on-chain:
const registry = new ethers.Contract( '0xA693f4790fc170933a6cBc5C7653cD4aF162D136', ['function isOfficialContract(address) view returns (bool)'], provider ); const isOfficial = await registry.isOfficialContract(suspectAddress); // true = official Exavolt contract // false = NOT official — do not interact
Anyone can create a token called "EXVT" on other chains (BSC, Solana, etc.). These are not affiliated with Exavolt Chain. The real EXVT is the native gas token of Chain ID 188188 — it cannot be created on another chain.
Exavolt does not operate a bridge to any other network. If anyone offers you a "bridge" to or from Exavolt Chain, or asks you to send assets on another chain in exchange for EXVT — it is not us. Verify every contract against ExavoltRegistry before interacting.