{
 "status": "deployed",
 "network": "testnet-151 (chain 0x15fd, re-genesis 2026-11-12T17:05Z)",
 "chainId": 20143,
 "chainIdHex": "0x4eaf",
 "nativeChain": "0x15fdd3af1740668df2888898aa121e700872d915dbdc67847d7e7776f8877e81",
 "registryContext": "0xd58aa926e46b2f233e4085ff47db4a15184606098aa8731094ab29bb8588ceb2",
 "rpc": [
  "https://rpc-testnet.quantumfin.io/rpc",
  "https://finswap.io/rpc"
 ],
 "deployer": "0xc2a437a454a5eeca21904b32b4a0cf1433d4416b",
 "deployBlock": 629,
 "factory": "0xAE2A40Abe9c560993AAB289f0439aD5C9C53CFe0",
 "router": "0x4782d09Edf97390e42f85300Ff224901aF160F9c",
 "pairCodeHash": null,
 "pairCodeHashNote": "DexFactory deploys pairs with CREATE2 and constructor(token0, token1), so the init-code hash differs per pair and the factory has no pairCodeHash(); read pairs with getPair(). pairCreationCodeKeccak is the hash of the creation code without constructor arguments.",
 "pairCreationCodeKeccak": "0xf55c001ac63ef2d1688243ebe13e646a82403106e7fb83b8f7523a18860fc504",
 "tokens": [
  {
   "address": "0x8f671306db16488770D0B6296c1b122dcd20c94B",
   "name": "QDEX Test A",
   "symbol": "QTA",
   "decimals": 18,
   "testToken": true
  },
  {
   "address": "0x719B26B39a242a785A492Fc2FBD557fDDB5E6eA8",
   "name": "QDEX Test B",
   "symbol": "QTB",
   "decimals": 18,
   "testToken": true
  },
  {
   "address": "0x646b843d6170d178fC3cAb8C72BC54Bae1cf3BAe",
   "name": "QDEX Test C",
   "symbol": "QTC",
   "decimals": 18,
   "testToken": true
  },
  {
   "address": "0x8aAdB6fe9afc07363B2FfED771a0E5b8d2EC97AD",
   "name": "Wrapped QFIN",
   "symbol": "WQFIN",
   "decimals": 18,
   "testToken": false
  }
 ],
 "pairs": [
  {
   "tokens": [
    "QTA",
    "QTB"
   ],
   "address": "0xD5A99c5e1ECC1119630879EBe3C0b0621854AFED"
  },
  {
   "tokens": [
    "QTA",
    "QTC"
   ],
   "address": "0x5Ff715d5712d1659245065BC028605659AE37665"
  },
  {
   "tokens": [
    "QTC",
    "QTB"
   ],
   "address": "0x75727cF212484a7030fDFaE4EF7b99317F661DFD"
  },
  {
   "tokens": [
    "WQFIN",
    "QTA"
   ],
   "address": "0xE67D68f3C9EF547bC252451458668F31C3FBC9A9",
   "router": "native",
   "createdBlock": 27575
  },
  {
   "tokens": [
    "QTB",
    "WQFIN"
   ],
   "address": "0x63d7e6dd76f14f17a3b12dfa43549c0830b1c57a",
   "router": "native",
   "createdBlock": 27592
  },
  {
   "tokens": [
    "QTC",
    "WQFIN"
   ],
   "address": "0xd3ef2df7956497f946b6cddcc463b2f9b2f2f41a",
   "router": "native",
   "createdBlock": 27607
  }
 ],
 "lpFeeBps": 30,
 "finswap": {
  "FinSwapAggregator": "0xa7c79E61A436019013F2ABFC5aA366CfB433DCAb",
  "PoolLens": "0x6Ca5484DdAdd31b1dBEf481348999d4749Fe52c1",
  "FinSwapLimitOrders": "0x586A6C4ec2537f0141950fc41Aa1128EACcAbEB1",
  "FinSwapDCA": "0xbE11A86f1BeFc29db2f11fD63CDcbb3F3e226B45"
 },
 "csvPools": {
  "native": {
   "address": "0x8261d8fc3c75a30b979cac58c1ee403a5dbedc7b",
   "asset": "0x0000000000000000000000000000000000000000",
   "unit": "1000000000",
   "deployBlock": 1848,
   "codeHash": "0x36ed44ebe675343833174da14f3216a16b58768d0caa3eaea6c7a7e4d3a0a34f",
   "reviewedTemplateKeccak": "0x2d83a9ff242c9f6535ebd3f3500015ede68f22bdb95786f6ff9dc1f6ab262102"
  },
  "token": {
   "address": "0x5c9d1eb36c950e793b920718e3cef90a5c65aaad",
   "asset": "0x8f671306db16488770d0b6296c1b122dcd20c94b",
   "unit": "1000000000",
   "deployBlock": 1862,
   "codeHash": "0x7929f9635bbf4017985217347edc5996a27ec8093aeab96cacf8b5b2504c7f37",
   "reviewedTemplateKeccak": "0x2d83a9ff242c9f6535ebd3f3500015ede68f22bdb95786f6ff9dc1f6ab262102"
  }
 },
 "faucet": {
  "listen": "127.0.0.1:26101",
  "public": "https://finswap.io/faucet",
  "amountQFIN": 1000,
  "perAddressPerDay": 1,
  "perIpPerDay": 5,
  "from": "0x511d7b61eddd84ee80de8c492198cb7e2d63bce7"
 },
 "seed": {
  "QTA/QTB": "10,000 QTA / 20,000 QTB, then a 100 QTA test swap",
  "routePools": "QTA/QTC and QTC/QTB at ~2 % below the direct price",
  "wallet-1": "100,000 each of QTA, QTB, QTC"
 },
 "genesisTime": "2026-11-12T17:05:20Z",
 "staleCheck": "EVM chainId 20143 is reused across re-geneses: accept this file only when nativeChain equals qfin_getContext.chainId",
 "native": {
  "symbol": "QFIN",
  "WQFIN": "0x8aAdB6fe9afc07363B2FfED771a0E5b8d2EC97AD",
  "QFNativeRouter": "0x10df332F64b2acB29C4b20fC345302135B8f79A0",
  "deployBlock": 27493,
  "note": "Native QFIN pools are token/WQFIN pairs of the same factory; QFNativeRouter wraps and unwraps QFIN (decision D-103)."
 }
}