Documentation

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.

ChainLIVE — Block height advancing
Explorerexplorer.exavolt.io
RPCrpc.exavolt.io — public endpoint
Gas limit50,000,000 — Gov Proposal #1 PASSED & EXECUTED
Verified inferenceTwo-node deterministic matching — operational
DEXContracts deployed — no active trading pairs

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.

No wallet required to use it

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.

⚠️
What this does and does not guarantee

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.

ℹ️
Position statement

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.

Fixed supply Inflation disabled Earned by work No price promises

03How to Verify

Everything below can be checked by anyone, at any time, without permission and without trusting this page.

01

Check the chain is alive

Query eth_blockNumber against the public RPC and watch the height advance. See RPC & Explorer API.

02

Verify a contract is official

Call isOfficialContract(address) on ExavoltRegistry. Never rely on social media, third-party lists, or this page alone.

03

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.

04

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:

javascript
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).

⚠️
EVM version: always paris

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

remix / hardhat
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).

cli
# 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

ParameterValue
Network NameExavolt
Chain ID (EVM)188188 0x2DF1C
Chain ID (Cosmos)exavolt_188188-1
Native CurrencyEXVT (18 decimals)
Base denomaexvt (1 EXVT = 10¹⁸ aexvt)
RPC (public)https://rpc.exavolt.io
Block Explorerhttps://explorer.exavolt.io
EVM enginego-ethereum fork (Evmos-based)
ConsensusCometBFT (Tendermint BFT)
SDKCosmos SDK v0.47.x
Finality~3 seconds (deterministic)
Block gas limit50,000,000 (via Gov Proposal #1)
Total supply1,000,001,000 EXVT (fixed, inflation disabled)
Genesis time2026-06-19T10:48:09Z
https://rpc.exavolt.io 📋 copy RPC

06Developer Principles

Known constraints of the Exavolt Chain node. Follow these to avoid common failures.

🚫
No MCOPY opcode

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.

⚠️
No raw call + abi.encodeWithSignature

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.

ℹ️
Checks-Effects-Interactions

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.

⚠️
try/catch does not catch codeless targets

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

checklist
  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

https://rpc.exavolt.io 📋 copy

Standard Ethereum JSON-RPC. Compatible with ethers.js, web3.js, viem, wagmi, Hardhat, Foundry.

bash — common calls
# 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)

https://explorer.exavolt.io/api/v2 📋 copy
bash — blockscout v2 api
# 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)

bash
# 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.

ExavoltRegistry LIVE v1.3.0
0xA693f4790fc170933a6cBc5C7653cD4aF162D136 📋
Solidity 0.8.34 EVM paris Read Contract ↗
⚠️
How to read the registry correctly

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.

ℹ️
Key fix in v1.2.0

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

solidity / ethers.js
// 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.

ContractAddressStatus
WEXVT (Wrapped EXVT)0xBDFD...D205✓ ACTIVE
ExavoltSwapFactory v30xd267...616dD✓ ACTIVE
ExavoltSwapRouter v80xc681...964DE✓ ACTIVE
ExavoltMultiSig v1.2.0 2-of-30x4545...6F403✓ ACTIVE
ExavoltGridRegistry0x87F3...00A6f✓ ACTIVE
GridEscrow v20x7635...7CB1✓ ACTIVE
GridRewards0xE85A...Fa09✓ ACTIVE
MockUSDT — test token, NO value0xf931...8332TEST / RETIRING
ExavoltSwapPair (test pool)0x41b8...3A28A7TEST / RETIRING
ExavoltUSDT v3 — never used0x1F0C...E13DRETIRING
ExavoltUSDT v10xdDb0...Ab96DEACTIVATED

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.

⚠️
Current status: no active trading pairs

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.

ExavoltSwapFactory v3 ACTIVE
0xd267FA8D33efb1081347F9F8784e8853646616dD 📋
Fee to setter ExavoltMultiSig 2-of-3
ExavoltSwapRouter v8 ACTIVE
0xc68148e1Fc7Fe4A0c35919BF3dea623722b964DE 📋
Router entry point for AMM operations

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.

TokenAddressDecimals
WEXVT (Wrapped EXVT)0xBDFD33fa695B4eaA293EAFca64FB8A2f4F5eD20518
⚠️
Deadline parameter

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.

1

Open MetaMask

Click the MetaMask extension icon in your browser. If you don't have MetaMask, download it from metamask.io (official site only).

2

Add Network Manually

Click the network dropdown at the top → Add a custom network → fill in the fields below:

FieldValue
Network NameExavolt
New RPC URLhttps://rpc.exavolt.io
Chain ID188188
Currency SymbolEXVT
Block Explorer URLhttps://explorer.exavolt.io
3

Save and Switch

Click Save. MetaMask will automatically switch to Exavolt Chain. You should see EXVT as your balance currency.

⚠️
Only use official RPC

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

Proposal #1 — Set block.max_gas to 50,000,000PASSED & EXECUTED
FieldValue
Proposal ID1
Typecosmos.consensus.v1.MsgUpdateParams
Changeblock.max_gas: -1 (unlimited) → 50000000
Voting period48 hours
Min deposit1,000 EXVT
cli — submit a proposal
# 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.

AllocationAmount%Purpose
Ecosystem300,000,000 EXVT30%Grants, node staking, ecosystem support
Rewards Pool250,000,000 EXVT25%Node operator compensation
Development200,000,000 EXVT20%Building and maintaining the network
Team150,000,000 EXVT15%Contributor compensation
Reserve100,000,000 EXVT10%Contingency
Validator (staked)1,000 EXVT<0.01%Consensus
ℹ️
No presale, no private allocation

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.

Fixed supply Inflation disabled 18 decimals No presale

13Security Model

🔴
Anti-scam

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

PropertyImplementation
RedundancyTwo independent staked node operators per job
Agreementkeccak256 of both outputs compared on-chain
VerificationPermissionless — a pure function of stored state
DisagreementEscalates to dispute; no result is delivered
Fund safetyEvery non-final state has a permissionless exit — no funds can be held hostage, including by the project
Verify everything on-chain

"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.

🔍
Security audit — scope

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

🔴
Official channels only

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

ServiceOfficial URL
Websitehttps://exavolt.io
Documentationhttps://docs.exavolt.io
DEX / Swaphttps://swap.exavolt.io
Explorerhttps://explorer.exavolt.io
RPChttps://rpc.exavolt.io

How to verify a contract is official

Query the ExavoltRegistry on-chain:

ethers.js
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
⚠️
Copycat tokens

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.

🚨
There is no official bridge

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.