{
  "schemaVersion": 1,
  "updatedAt": "2026-09-03",
  "venue": "Quotrons xStocks \u2014 tokenized equity markets on Ink",
  "network": {
    "name": "Ink",
    "chainId": 57073,
    "nativeCurrency": {
      "name": "Ether",
      "symbol": "ETH",
      "decimals": 18
    },
    "rpcUrl": "https://rpc-gel.inkonchain.com",
    "explorerUrl": "https://explorer.inkonchain.com",
    "rpcNote": "The public endpoint prunes state and rejects batched calls. Use a private or paid RPC for indexing and multicall."
  },
  "quoteAsset": {
    "symbol": "USDG",
    "address": "0xe343167631d89B6Ffc58B88d6b7fB0228795491D",
    "decimals": 6
  },
  "contracts": {
    "poolManager": "0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32",
    "hook": "0x8bb4516059F9149Bc3b89018Fc7537f1F14a30cc",
    "factory": "0xbFA531C90FD9e42aC13Af14823B30e40761dd3A2",
    "epochConverter": "0xFd30F33dE4A2dA00c5c844Acef5728535B95B33F",
    "terminalDividends": "0x2E1509FBc75b621d08F64d8328a3C4152cf96C2C",
    "wethTerminalPot": "0x0Aa7abB778DC11Dcaa1dBB16B72c70dD6f2d7A07",
    "liquidityGrowthSink": "0x73F5111EE91672c114923793C03B5c868d9C5E03",
    "lpVaultBeacon": "0x6560417F6Df140597c3d2811ED833cD9a70e7D78",
    "lpVaultImplementation": "0x76fDf913c2bc8AF5ce545B5C27B18bEF51245B21"
  },
  "upgradeAdmin": "0x15277aA1ecC13734d57C519a2DAA1cc4A748bA89",
  "poolKey": {
    "note": "Pools register under Uniswap's DYNAMIC_FEE_FLAG, not a static fee tier. Deriving a pool id with fee=3000 yields an uninitialised pool.",
    "fee": 8388608,
    "feeHex": "0x800000",
    "tickSpacing": 60,
    "hooks": "0x8bb4516059F9149Bc3b89018Fc7537f1F14a30cc",
    "currencyOrdering": "ascending by address; usdgIsCurrency0 is readable per pool via hook.pools(poolId)"
  },
  "fees": {
    "model": "dynamic, returned by the hook per swap; charged on the USDG leg",
    "currentBps": 30,
    "minBps": 5,
    "maxBps": 100,
    "stepBps": 5,
    "split": {
      "terminalBps": 5000,
      "lpBps": 5000
    },
    "note": "Bounds are immutable in the hook and cannot be widened. Quote live via hook.pools(poolId).feeBps; some protocol addresses are fee-exempt."
  },
  "epochs": {
    "converterMinUsdg": 250000000,
    "converterMaxUsdg": 10000000000,
    "minIntervalSeconds": 300,
    "railMinWeth": "10000000000000000",
    "railMaxWeth": "10000000000000000000",
    "growthSinkBuyBps": 5000
  },
  "markets": [
    {
      "symbol": "wAAPLx",
      "name": "Apple",
      "wrappedStock": "0x943BF64D566c32A2Bcd41AC92FB63C111cC9De8f",
      "lpVault": "0x2e3E02752E0bE6817401b97E66541D54774Fc6Ae",
      "poolId": "0x0ef0fe35389f4104afef27864010022976ed1b924e8837b30f308255d07d3092"
    },
    {
      "symbol": "wAMZNx",
      "name": "Amazon",
      "wrappedStock": "0x910cabdE3EBa7Fc1Ce64fD14bD680b9f60fA0F90",
      "lpVault": "0xA7922edBe4a5730b68c900B9C6c39C1b862a10DD",
      "poolId": "0xc113916ee057276dfd79b4ff4a29be5e98703e410923e4a61e95ccf459223a38"
    },
    {
      "symbol": "wGOOGLx",
      "name": "Alphabet",
      "wrappedStock": "0xf8c5308F80E459bb53d9EbE689854d9cBb2Caa6f",
      "lpVault": "0xe9f8404415f0B1aDE0fF783783786eb47ad6BDE9",
      "poolId": "0x5ec6f9fc8178f8b3a9c09b56d073a4503a5ea3f127ece3e8a8d1579c0cf9c3b2"
    },
    {
      "symbol": "wMCDx",
      "name": "McDonald's",
      "wrappedStock": "0xc6639026a3a862cd4fcbae3f67cB2D25A2959d37",
      "lpVault": "0x2Ea8a0b60cC61bc9032e7aC1f7B91e5F0f113CDb",
      "poolId": "0x020595993f159c9865966f8762ebdba88c2cf465bb4af72b512eb3559f430254"
    },
    {
      "symbol": "wMSTRx",
      "name": "Strategy",
      "wrappedStock": "0x30987adF0B11dc698438a99BA04ec3a1AB2c7EaB",
      "lpVault": "0xA29f8E7beA303094270C6946D1e9d29aB6945833",
      "poolId": "0xb7add80f794d65c978346f9e929971d2f12b4f862c89f4c14201872819a39a7d"
    },
    {
      "symbol": "wNFLXx",
      "name": "Netflix",
      "wrappedStock": "0x7d87fD6A379714194a797c0bBB8B40c30D250856",
      "lpVault": "0x2E5472ae6264FEBF9EA740dF395dc301Cfd6ee05",
      "poolId": "0x9f11034d6b2a7bfea38a0c39548c590e4aabd215ffa2b6bbe9bacd29e40238b6"
    },
    {
      "symbol": "wNVDAx",
      "name": "NVIDIA",
      "wrappedStock": "0xa8ddb5Cd96b5222AFe198316E9A57CAA642850D5",
      "lpVault": "0xca4Bb7067D18A07A3b884A41758e4457De70f62D",
      "poolId": "0xebe5d3cc94d87cf07cf06c969ca82a67760697535c57800350e210df8547cd11"
    },
    {
      "symbol": "wSPYx",
      "name": "S&P 500 ETF",
      "wrappedStock": "0xE7E553Cd128F0011777323A0b44a7b96EA1CB540",
      "lpVault": "0x2aAcd6201E9367d969d28B6DBaF8df2BB739B889",
      "poolId": "0x84b421dc355c6c003fcf4f8100691eddaa0319deb894acb7e9bbf633621694a7"
    },
    {
      "symbol": "wTSLAx",
      "name": "Tesla",
      "wrappedStock": "0xc3FdBe3A68EE5dE461D30415a8165cf9Aefe1171",
      "lpVault": "0x757C0f4bE8366e093E02790CaC11899984849A8A",
      "poolId": "0x131ebb0eb148451d7225a52e94a8257b69976e780ebce1615aadf47d8e2aaf19"
    }
  ],
  "abis": {
    "hook": "https://quotrons.cash/integration/QuotronStockHook.abi.json",
    "factory": "https://quotrons.cash/integration/QuotronStockPoolFactory.abi.json",
    "lpVault": "https://quotrons.cash/integration/QuotronStockLpVault.abi.json"
  },
  "data": {
    "subgraph": "https://api.goldsky.com/api/public/project_cmssuu23e13si01xt3o30067i/subgraphs/quotrons-ink-stocks/prod/gn"
  },
  "documentation": {
    "human": "https://quotrons.cash/docs#xstocks-integration",
    "registry": "https://quotrons.cash/xstocks"
  },
  "risks": [
    "No oracle exists in this system; price is AMM-discovered and every trade walks the curve.",
    "Equities trade ~32 hours a week; these pools trade all 168. Pool price can drift from fair value by roughly the fee band while the underlying market is closed, and news arriving overnight or over a weekend can gap the underlying with no way for passive liquidity to reprice first.",
    "wGOOGLx, wAMZNx and wMCDx trade only here \u2014 there is no second venue to arbitrate against.",
    "Pools can be paused by the operator; check hook.pools(poolId).paused before routing.",
    "These are young, thin pools. Simulate the exact call and size accordingly."
  ]
}
