Skip to content

Onchain Proof

MonTerminal publishes two kinds of evidence:

  1. Live RPC evidence — current chain ID, block, contract bytecode, counters, and recent events.
  2. Fixed transaction evidence — immutable transaction hashes for completed order, swap, and bridge lifecycles.

Live proof page

Open https://www.monterminal.fun/proof.

The page reads Monad RPC through the production /api/rpc gateway and displays:

  • network and chain ID;
  • current block number;
  • whether bytecode exists at each deployed order-book address;
  • nextOrderId() for each book;
  • the newest recent OrderPlaced, OrderCancelled, or OrderExecuted event;
  • direct explorer links for completed mainnet proofs.

The values refresh automatically and can be refreshed manually.

Deployed order books

DEXLimitOrderBookDeploy blockCurrent proof state
Uniswap v30x595368DffF28eC08718Ca620EC9a98177262842588,077,155Bytecode deployed
Capricorn0x07E94F44c89b648a36c7cd5408b52D76880857f788,086,521Bytecode deployed; four placed orders
PancakeSwap v30x1672DB600D0c0213b3971F30438482Ea2Afaf53F88,086,528Bytecode deployed

Interpreting nextOrderId()

The counter starts at 1 and increments after every successful placement.

text
placed order count = nextOrderId - 1

The Capricorn book now returns 5, which means four orders were successfully placed. Orders #1 and #3 were cancelled; orders #2 and #4 were executed.

Direct RPC check

Anyone can reproduce the chain-ID check through the production gateway:

bash
curl -sS https://www.monterminal.fun/api/rpc \
  -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

Expected result:

json
{"jsonrpc":"2.0","id":1,"result":"0x8f"}

0x8f is decimal 143, Monad Mainnet.

A live UI could fail later because an RPC or indexer is temporarily unavailable. Transaction hashes remain independent evidence that the contract path executed successfully at least once.

See Limit Orders and Swap & Bridge for the published transactions.

Unaudited hackathon software. Use small amounts.