{
  "license": "CC-BY-4.0",
  "licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
  "attribution": "ChainChoice (https://chainchoice.io)",
  "url": "https://chainchoice.io/data/methodology/2026.10.1.json",
  "version": "2026.10.1",
  "status": "archived",
  "publishedAt": "2026-10-01",
  "title": "Layer-2 chains: an eighth criterion, a fast-exit requirement, and published friction rules",
  "supersededBy": "2026.10.2",
  "previous": "2026.10.0",
  "changelog": {
    "url": "https://chainchoice.io/methodology/changelog/archive#v-2026.10.1",
    "entry": {
      "version": "2026.10.1",
      "publishedAt": "2026-10-01",
      "title": "Layer-2 chains: an eighth criterion, a fast-exit requirement, and published friction rules",
      "summary": "Layer-2 chains gain an eighth criterion: whether you can force a transaction in if the sequencer stops or censors you, read from L2BEAT's sequencer-failure entry. The weights were re-set by three model runs, each reading from one angle, and a fourth that judged them, and safety now carries 66 of 100 points. The Find my best answer \"Fast, trust-minimised exit to Ethereum\" becomes a requirement: it shows ZK rollups only. Experience-gated friction moves are now a published list.",
      "rationale": "A chain where users cannot force a transaction past a censoring sequencer is less safe to leave than one where they can, and L2BEAT records it for every chain; the owner approved it as the eighth criterion on 2026-10-01. A fast exit is a requirement rather than a preference: an optimistic rollup holds native withdrawals for about seven days, so a +2 for ZK rollups could never honestly serve that reader. The friction moves were the last answer-gated score changes the methodology page did not show (CT-METH-021).",
      "affectedCategories": [
        "l2_chains"
      ],
      "changes": [
        {
          "type": "added",
          "description": "l2_chains criterion sequencer_failure (12): 10 = forced inclusion through Ethereum within a day or a decentralised sequencer set rated good; 8 = forced inclusion after a longer delay; 5 = an L1 queue or log the sequencer must eventually process but cannot be forced to; 0 = no mechanism. 15 rows quoted from L2BEAT's API, matched by a live re-fetch on the read date (0 differences on any scored entry)."
        },
        {
          "type": "changed",
          "description": "l2_chains weights: proof system 18, withdrawals if the operator stops 18, Ethereum data availability 14, sequencer failure 12, exit window 10, EVM equivalence 10, maturity 10, rollup stage 8 (was 18/18/15/–/6/17/12/14). Three model runs proposed them (withdrawal safety, builder, minimal change) and a fourth, judging the three, set them; its exit window of 8 left the #1 resting on a 1.6-point margin that one one-point move in proof system or proposer failure would overturn, which the brief forbade, so exit window takes the safety lens's 10 and stage, which every lens found double-counted, gives 2."
        },
        {
          "type": "changed",
          "description": "Published l2_chains order: the #1 does not change (Arbitrum One 81, OP Mainnet 80). Starknet rises from #10 to #8, Mantle from #12 to #10, and Linea falls from #9 to #12 because it has no forced inclusion. No other category moves."
        },
        {
          "type": "changed",
          "description": "Find my best: \"Fast, trust-minimised exit to Ethereum\" removes every chain that is not a ZK rollup (structuralFacts.rollupType must be zk) and replaces the +2 for ZK rollups; it also no longer up-weights proof system and exit window, since the filter already decides what those weights leaned towards. The results page lists each removed chain with its reason under \"Removed by your requirement\", the coverage line and timeline count the removals apart from the country's, and the inputs table shows the answer as a filter (decision layer 1.1.0). The explorer's quick question applies the same requirement and says how many rows it removed. Replaying the 2,217 golden cases, one winner changes: that answer now leads to Scroll."
        },
        {
          "type": "added",
          "description": "Experience-gated friction moves (three deductions for a reader new to crypto; a floor and one deduction for an experienced reader) are a published list (FRICTION_ADJUSTMENTS) that scoreFriction applies and /methodology prints. The 2,217 golden cases replay unchanged."
        },
        {
          "type": "added",
          "description": "The arithmetic for attributes you mark required or preferred, where a category's scorer has no branch for your answers, is published on /methodology (ATTRIBUTE_FIT_RULE): required attributes share 24 points and preferred ones 16, each scaled by the provider's strength; a missing required attribute costs 4, and missing more than half caps the dimension at 8 of 40. These numbers applied before and were shown nowhere; no score changes. check-no-shadow-adjustments now reads each scorer separately, follows answers through destructuring, loop variables and derived locals, catches floors, caps and ternaries, and exempts the two attribute channels only while this rule is printed."
        },
        {
          "type": "changed",
          "description": "Corrected 2026-10-14: the lines above did not name every l2_chains row this version moved. Each, rank and score before and after: Unichain #5 74 → #5 75; Arbitrum Nova #6 72 → #6 73; Scroll #7 70 → #7 71; Starknet #10 63 → #8 63; zkSync Era #8 63 → #9 63; Mantle #12 58 → #10 62; Taiko Alethia #11 61 → #11 59; Linea #9 63 → #12 57; Blast #13 43 → #13 47; Manta Pacific #14 41 → #14 43. Arbitrum One, OP Mainnet, Base, Ink and Polygon zkEVM keep their rank and score."
        }
      ],
      "approvedBy": "mathias-siemonsmeier"
    }
  },
  "rules": {
    "source": {
      "src": "git:081d68efd36ff4494220c5c46c801f5e1ac1d392",
      "at": "2026-10-01T16:36:24+02:00",
      "note": "The category specs as committed at the last commit before the next version was recorded."
    },
    "introduced": {
      "commit": "b3ba1211d0e356e0a7ed80e57d7285f464770c64",
      "at": "2026-10-01T13:09:31+02:00"
    },
    "specCommitsAfterIntroduction": 0,
    "categories": {
      "account_abstraction_infra": {
        "specVersion": "2026.08",
        "sha256": "6eda95185b718a1d682ca8c6b2d94c81efb26333d578086f77cc96ee467a904a",
        "url": "https://chainchoice.io/data/methodology/category/account_abstraction_infra.6eda95185b718a1d.json"
      },
      "appchains_l3s": {
        "specVersion": "2026.08",
        "sha256": "de43de80e8d9aad460726938235e8c57e825f627b0dfa1918a77d9af7a685868",
        "url": "https://chainchoice.io/data/methodology/category/appchains_l3s.de43de80e8d9aad4.json"
      },
      "attestations": {
        "specVersion": "2026.08",
        "sha256": "9bc0867a39f01f1bbe49029ddf1977d6e8816664d70cf708177397f8ce047f69",
        "url": "https://chainchoice.io/data/methodology/category/attestations.9bc0867a39f01f1b.json"
      },
      "automation_keepers": {
        "specVersion": "2026.08",
        "sha256": "6425ec6c7d90b65ae3fed196dfc0c61b7ac79fadae4f2acbeddef29a25af84ad",
        "url": "https://chainchoice.io/data/methodology/category/automation_keepers.6425ec6c7d90b65a.json"
      },
      "bill_pay": {
        "specVersion": "2026.08",
        "sha256": "fe36fb83aaea404403f628279507d4ea025187adc269229f296ac242a6d8a09b",
        "url": "https://chainchoice.io/data/methodology/category/bill_pay.fe36fb83aaea4044.json"
      },
      "block_explorers": {
        "specVersion": "2026.08",
        "sha256": "946b16f6a04fceb09740b18f187be41131638e94a1fd364a2fdd85683c18d0d9",
        "url": "https://chainchoice.io/data/methodology/category/block_explorers.946b16f6a04fceb0.json"
      },
      "bridges": {
        "specVersion": "2026.04",
        "sha256": "22e080dca6625a8c7551f885dce07b41639e541a3180cb41f90292b7e7eacae4",
        "url": "https://chainchoice.io/data/methodology/category/bridges.22e080dca6625a8c.json"
      },
      "bug_bounties": {
        "specVersion": "2026.08",
        "sha256": "1a9abe536df0e54f614310957001624262649ad1d60f339d039ee5e7ca02ea5f",
        "url": "https://chainchoice.io/data/methodology/category/bug_bounties.1a9abe536df0e54f.json"
      },
      "business_banking": {
        "specVersion": "2026.08",
        "sha256": "33099f30102e7dbb4f2797fabe0ecdd76393429d80c8923fdef1bcb491d81fd1",
        "url": "https://chainchoice.io/data/methodology/category/business_banking.33099f30102e7dbb.json"
      },
      "carbon_credits": {
        "specVersion": "2026.08",
        "sha256": "b09a0a461b6e5758194c04433c7e17b7a640221b30a06126f5ad3008c3beda47",
        "url": "https://chainchoice.io/data/methodology/category/carbon_credits.b09a0a461b6e5758.json"
      },
      "cdp_stablecoins": {
        "specVersion": "2026.08",
        "sha256": "c36938655a6b24c4c9d7fbd3654c0c6d40ea40bee2535a7a79fa1af3f54adf9c",
        "url": "https://chainchoice.io/data/methodology/category/cdp_stablecoins.c36938655a6b24c4.json"
      },
      "creator_mint_platforms": {
        "specVersion": "2026.08",
        "sha256": "9ec0a1a1844eaa04ea8e5cafa917b9b459f37c381b0cc97fa24f20b0c114c628",
        "url": "https://chainchoice.io/data/methodology/category/creator_mint_platforms.9ec0a1a1844eaa04.json"
      },
      "cross_chain_messaging": {
        "specVersion": "2026.08",
        "sha256": "0b7babb4d310e69d03363321d338ce77270e5445afe8a15fbe6277251da89d10",
        "url": "https://chainchoice.io/data/methodology/category/cross_chain_messaging.0b7babb4d310e69d.json"
      },
      "cross_chain_swaps": {
        "specVersion": "2026.08",
        "sha256": "0522f80d327e9dd4031c5053311ba04c8968f7669e5f4f17a86597839947ebee",
        "url": "https://chainchoice.io/data/methodology/category/cross_chain_swaps.0522f80d327e9dd4.json"
      },
      "crypto_backed_loans": {
        "specVersion": "2026.08",
        "sha256": "9376c6b5bf4a4c817313994b1a70f614612698b5ca3619431f631ba3c7a773f2",
        "url": "https://chainchoice.io/data/methodology/category/crypto_backed_loans.9376c6b5bf4a4c81.json"
      },
      "crypto_card": {
        "specVersion": "2026.08",
        "sha256": "1eeb72b3817235a5fa7c782c310738cbeec17e0577ae159a15f41b05f4732a2a",
        "url": "https://chainchoice.io/data/methodology/category/crypto_card.1eeb72b3817235a5.json"
      },
      "crypto_neobanks": {
        "specVersion": "2026.08",
        "sha256": "09de13cba4c3cd8125fef61f6d949d76d6b2042cebb62a2d82e3fb7e8765067e",
        "url": "https://chainchoice.io/data/methodology/category/crypto_neobanks.09de13cba4c3cd81.json"
      },
      "crypto_payroll": {
        "specVersion": "2026.08",
        "sha256": "986fa330cc5e9ad2eb258cbbc1f130a56493608a5cab35e19ebca24dada4915d",
        "url": "https://chainchoice.io/data/methodology/category/crypto_payroll.986fa330cc5e9ad2.json"
      },
      "data_availability": {
        "specVersion": "2026.08",
        "sha256": "d00794349a619d055f663b2cdf96fe772c1065a82be38a0327cc1acf4841134a",
        "url": "https://chainchoice.io/data/methodology/category/data_availability.d00794349a619d05.json"
      },
      "decentralised_compute": {
        "specVersion": "2026.08",
        "sha256": "9ffb1adce89bb05fcbf488150a28e041fc2a51d91d3ccec817a9456c2cbbc148",
        "url": "https://chainchoice.io/data/methodology/category/decentralised_compute.9ffb1adce89bb05f.json"
      },
      "decentralised_id": {
        "specVersion": "2026.08",
        "sha256": "16fb84e811443890bd89a6f575388deb256cca4097f30bab3394e6c8da0884bc",
        "url": "https://chainchoice.io/data/methodology/category/decentralised_id.16fb84e811443890.json"
      },
      "decentralised_storage": {
        "specVersion": "2026.08",
        "sha256": "4ff33dc5b045959d6035364d63b2aa8daf05bf7ab32dc17da83b6e8e89b45a27",
        "url": "https://chainchoice.io/data/methodology/category/decentralised_storage.4ff33dc5b045959d.json"
      },
      "defi_dashboards": {
        "specVersion": "2026.08",
        "sha256": "5da840a2fd3354ad884bec9f60d84cd2581839b23eb9fd5b30c03561df1f020f",
        "url": "https://chainchoice.io/data/methodology/category/defi_dashboards.5da840a2fd3354ad.json"
      },
      "defi_insurance": {
        "specVersion": "2026.08",
        "sha256": "6d5c771fe55af9adb1b91dc073cf7f7bec44b6e250278fe344bb73b686895d22",
        "url": "https://chainchoice.io/data/methodology/category/defi_insurance.6d5c771fe55af9ad.json"
      },
      "depin_networks": {
        "specVersion": "2026.08",
        "sha256": "2c2f15b30828052ebe9ae3bcf08625677a32ab61b906dec0bc603da2ec8e231b",
        "url": "https://chainchoice.io/data/methodology/category/depin_networks.2c2f15b30828052e.json"
      },
      "dev_frameworks": {
        "specVersion": "2026.08",
        "sha256": "fc19e46512ccfbbc4a95fa1de6753f096d8840129d965e1fb59be627ce9be5b4",
        "url": "https://chainchoice.io/data/methodology/category/dev_frameworks.fc19e46512ccfbbc.json"
      },
      "dex": {
        "specVersion": "2026.07",
        "sha256": "309020c8067e06767bbc2be68ce2caea64e5ab80f4e3a0b178d626b710114f34",
        "url": "https://chainchoice.io/data/methodology/category/dex.309020c8067e0676.json"
      },
      "dex_aggregator": {
        "specVersion": "2026.07",
        "sha256": "1c6ed2254c4c1ef35b6f016ccd23d56abbb8e2764cd1cc334462f58514eed53a",
        "url": "https://chainchoice.io/data/methodology/category/dex_aggregator.1c6ed2254c4c1ef3.json"
      },
      "enterprise_accounting": {
        "specVersion": "2026.08",
        "sha256": "efb862fa840f11090d2a22988798f1f754903948431a0a818ea33496e0ff80db",
        "url": "https://chainchoice.io/data/methodology/category/enterprise_accounting.efb862fa840f1109.json"
      },
      "exchange": {
        "specVersion": "2026.08",
        "sha256": "f3e84d3382e9009b7e7e055f548a01c92fe98c8236859925f06c0c91623b7aa7",
        "url": "https://chainchoice.io/data/methodology/category/exchange.f3e84d3382e9009b.json"
      },
      "fixed_rate_yield": {
        "specVersion": "2026.08",
        "sha256": "d3052d24cb72ff01199f39e094438b72e2fcca368e9b5534ac029824b456691c",
        "url": "https://chainchoice.io/data/methodology/category/fixed_rate_yield.d3052d24cb72ff01.json"
      },
      "flash_loans": {
        "specVersion": "2026.08",
        "sha256": "0da8a8db13cd8b0cd5116af314ad900104bee2b8956feec6f8163fdaf818b7d6",
        "url": "https://chainchoice.io/data/methodology/category/flash_loans.0da8a8db13cd8b0c.json"
      },
      "gift_cards": {
        "specVersion": "2026.08",
        "sha256": "212bb4e8ba6731e2d0f5cfd2d717f1e9aff89ec6a129d61095d60decdff0bee4",
        "url": "https://chainchoice.io/data/methodology/category/gift_cards.212bb4e8ba6731e2.json"
      },
      "governance_tools": {
        "specVersion": "2026.08",
        "sha256": "dc628165b32b3ccacdb47bbf814f86d84bb01693dcfff82c24dfe76bead5f05a",
        "url": "https://chainchoice.io/data/methodology/category/governance_tools.dc628165b32b3cca.json"
      },
      "hardware_wallet": {
        "specVersion": "2026.07",
        "sha256": "7f0b46de0ae3db460ce2bab8fc29ce2ccdb61c0cb2b62574b48f534f322d2d22",
        "url": "https://chainchoice.io/data/methodology/category/hardware_wallet.7f0b46de0ae3db46.json"
      },
      "incentive_distribution": {
        "specVersion": "2026.08",
        "sha256": "f18274c77ded03695696b93a1b1df48c6af6e38270d6cf99fc4e0a0b77ab9bb6",
        "url": "https://chainchoice.io/data/methodology/category/incentive_distribution.f18274c77ded0369.json"
      },
      "indexers": {
        "specVersion": "2026.08",
        "sha256": "cabb29a7b5dc1da34d06c67429f9585ebf83784fc1eb337d823f3d09811bd6e4",
        "url": "https://chainchoice.io/data/methodology/category/indexers.cabb29a7b5dc1da3.json"
      },
      "institutional_custody": {
        "specVersion": "2026.08",
        "sha256": "e58a91507ff759bedca58b36d9c575082dacdb55072aae25e947a21828a1d1e1",
        "url": "https://chainchoice.io/data/methodology/category/institutional_custody.e58a91507ff759be.json"
      },
      "institutional_execution": {
        "specVersion": "2026.08",
        "sha256": "f2218db82249d671de1d7961732fb4eae1d3a3ff7275e9d1ffe7e21cf58e8306",
        "url": "https://chainchoice.io/data/methodology/category/institutional_execution.f2218db82249d671.json"
      },
      "intents": {
        "specVersion": "2026.08",
        "sha256": "5c2d29d8c36808e77384a31d8f4ac6d4e3e8355a98c049bbc3fdf49214084d0c",
        "url": "https://chainchoice.io/data/methodology/category/intents.5c2d29d8c36808e7.json"
      },
      "key_recovery": {
        "specVersion": "2026.08",
        "sha256": "f1d96e0763945904fcc89464f718a422b8432651a26f200cdeb56d4c1f73fb7a",
        "url": "https://chainchoice.io/data/methodology/category/key_recovery.f1d96e0763945904.json"
      },
      "kyc_compliance": {
        "specVersion": "2026.08",
        "sha256": "992b501ecaff42b3b2a70ec757914974bc25a478c8781a4e6434ea66eb1fb7f9",
        "url": "https://chainchoice.io/data/methodology/category/kyc_compliance.992b501ecaff42b3.json"
      },
      "l2_chains": {
        "specVersion": "2026.10",
        "sha256": "8b8f88b0ac8d0a9766eaa363b4a273abb7f7da083ebdfacb680569ed58e6c30e",
        "url": "https://chainchoice.io/data/methodology/category/l2_chains.8b8f88b0ac8d0a97.json"
      },
      "launchpads": {
        "specVersion": "2026.08",
        "sha256": "38e80fac5d52b300ca9ef4693064be791543c23e8eb3dd1a573ea4f721b96d0d",
        "url": "https://chainchoice.io/data/methodology/category/launchpads.38e80fac5d52b300.json"
      },
      "layer1_chains": {
        "specVersion": "2026.08",
        "sha256": "95087308dbb9ab635a0cec45e90b795865a8ddcae46f3779c59bee41829c000a",
        "url": "https://chainchoice.io/data/methodology/category/layer1_chains.95087308dbb9ab63.json"
      },
      "lending_borrowing": {
        "specVersion": "2026.08",
        "sha256": "17a8bdc17ce4752c1d8c587fdf2ed750871a2dffad38d78b9689cdf74a15f408",
        "url": "https://chainchoice.io/data/methodology/category/lending_borrowing.17a8bdc17ce4752c.json"
      },
      "lightning_payment_infrastructure": {
        "specVersion": "2026.08",
        "sha256": "6da517b50d35fd55fe7c4e404bfab514b3c06a627ea9689406db13eb691ec7e8",
        "url": "https://chainchoice.io/data/methodology/category/lightning_payment_infrastructure.6da517b50d35fd55.json"
      },
      "lightning_wallets": {
        "specVersion": "2026.08",
        "sha256": "55fa6b8f1afdcd0e0dd43eefe74969ee386797a01d573668d4bd363aec645ad3",
        "url": "https://chainchoice.io/data/methodology/category/lightning_wallets.55fa6b8f1afdcd0e.json"
      },
      "liquid_lockers": {
        "specVersion": "2026.08",
        "sha256": "7d2a3d0ca93552ad117769838364fea63a49b1bcf79a8bea29cf057d751a0bc7",
        "url": "https://chainchoice.io/data/methodology/category/liquid_lockers.7d2a3d0ca93552ad.json"
      },
      "liquid_staking": {
        "specVersion": "2026.08",
        "sha256": "05ed27a309fe48ee08976558501c81c85eb18d912e661eed920a330e3c1a2aa5",
        "url": "https://chainchoice.io/data/methodology/category/liquid_staking.05ed27a309fe48ee.json"
      },
      "liquidity_management": {
        "specVersion": "2026.08",
        "sha256": "c1a5366d41d909aeb8252c6fe1da32eebfc36e8f897cd88c1968931627ebe1cf",
        "url": "https://chainchoice.io/data/methodology/category/liquidity_management.c1a5366d41d909ae.json"
      },
      "market_data_apis": {
        "specVersion": "2026.08",
        "sha256": "dcbb7c5626b55a6e3062c1accb6df79de80c210adc358f50679b60aae1769379",
        "url": "https://chainchoice.io/data/methodology/category/market_data_apis.dcbb7c5626b55a6e.json"
      },
      "mev_protection": {
        "specVersion": "2026.08",
        "sha256": "bd079958d56d1221bf87f8c67b8d30436c82e898dcd0423ab3eabb8c76f5c476",
        "url": "https://chainchoice.io/data/methodology/category/mev_protection.bd079958d56d1221.json"
      },
      "mining_pools": {
        "specVersion": "2026.08",
        "sha256": "3a96501af5b4e25b37236b5f2e9250e451ca31e32d5d8682aec87b3bb509ae20",
        "url": "https://chainchoice.io/data/methodology/category/mining_pools.3a96501af5b4e25b.json"
      },
      "money_market_funds": {
        "specVersion": "2026.08",
        "sha256": "248fc8ba62c050bc9bd23c7eb7806b491b4361b344fb262f0dc6aa9e24aeeb78",
        "url": "https://chainchoice.io/data/methodology/category/money_market_funds.248fc8ba62c050bc.json"
      },
      "mpc_wallets": {
        "specVersion": "2026.08",
        "sha256": "bbf8b96f2965fb5a0d172da9d3a2b8a934690a6e4c83bfbf31caa3c3aadb655a",
        "url": "https://chainchoice.io/data/methodology/category/mpc_wallets.bbf8b96f2965fb5a.json"
      },
      "naming_services": {
        "specVersion": "2026.08",
        "sha256": "d1e016a479b828fb43435f4003bb6374af9fb39c435d923a6b344c0e980fb1f0",
        "url": "https://chainchoice.io/data/methodology/category/naming_services.d1e016a479b828fb.json"
      },
      "nft_analytics": {
        "specVersion": "2026.08",
        "sha256": "b4b2221b5d4c847e08a9d0fde8b1b1fd0b0bdeb990998dcfd9f4812519fadd07",
        "url": "https://chainchoice.io/data/methodology/category/nft_analytics.b4b2221b5d4c847e.json"
      },
      "nft_lending": {
        "specVersion": "2026.08",
        "sha256": "3a8e876fd1560705d6971ae44b32ba337bb57ba7327c8a1bb004481f0a99f2e4",
        "url": "https://chainchoice.io/data/methodology/category/nft_lending.3a8e876fd1560705.json"
      },
      "nft_marketplace": {
        "specVersion": "2026.08",
        "sha256": "9de7e5e4204a7d2fe72af2bcb0f5fec86ee1da5d2ff310a2670888c3aed4d7e1",
        "url": "https://chainchoice.io/data/methodology/category/nft_marketplace.9de7e5e4204a7d2f.json"
      },
      "offramps": {
        "specVersion": "2026.08",
        "sha256": "60677c4df3276fdeefdb13af87a903a7edf8d4703e9a3b525ec0879892df4c51",
        "url": "https://chainchoice.io/data/methodology/category/offramps.60677c4df3276fde.json"
      },
      "onchain_analytics": {
        "specVersion": "2026.08",
        "sha256": "fd0075ef3cea1730b8d0867ac6a2cd78d5a07424a6b5e8e0d38d7c0b823f6b64",
        "url": "https://chainchoice.io/data/methodology/category/onchain_analytics.fd0075ef3cea1730.json"
      },
      "onchain_monitoring": {
        "specVersion": "2026.08",
        "sha256": "ccd27cddf387102be1af5576b14467ca238befec1a6764eb95b41f10cbd5f14c",
        "url": "https://chainchoice.io/data/methodology/category/onchain_monitoring.ccd27cddf387102b.json"
      },
      "onramp": {
        "specVersion": "2026.08",
        "sha256": "3e35b5dcc507c96f59448e3c20567e11d8601842b6ad86cd553d316e082e2bf8",
        "url": "https://chainchoice.io/data/methodology/category/onramp.3e35b5dcc507c96f.json"
      },
      "options_vaults": {
        "specVersion": "2026.08",
        "sha256": "a6edc251c246ccae2a5a42e4f12d7f1a4093f0032f5a41ca55fd5d0809a4db93",
        "url": "https://chainchoice.io/data/methodology/category/options_vaults.a6edc251c246ccae.json"
      },
      "oracles": {
        "specVersion": "2026.08",
        "sha256": "2f8e4600cdbf28f8d998c7045e794771f6e692146ae7dee63a14373f058bc341",
        "url": "https://chainchoice.io/data/methodology/category/oracles.2f8e4600cdbf28f8.json"
      },
      "otc_desks": {
        "specVersion": "2026.08",
        "sha256": "ea16920cd6476d866b5a3dfde89a9ec270b264d2e335169ce9ac5169750e8c0e",
        "url": "https://chainchoice.io/data/methodology/category/otc_desks.ea16920cd6476d86.json"
      },
      "p2p_exchanges": {
        "specVersion": "2026.08",
        "sha256": "e1e112edc24088987ca14b1e058b7d801e615a0acd96b9cdfbe9ade884e48d53",
        "url": "https://chainchoice.io/data/methodology/category/p2p_exchanges.e1e112edc2408898.json"
      },
      "paid_research_seats": {
        "specVersion": "2026.08",
        "sha256": "3732125d9029e2627b2c52cc23a6acd0c7403f5efe262ebe3c54740f5f3a41a7",
        "url": "https://chainchoice.io/data/methodology/category/paid_research_seats.3732125d9029e262.json"
      },
      "payment_gateway": {
        "specVersion": "2026.04",
        "sha256": "ad2c0a6adf4d3598adf613d29039ed91bdd0be0c6c9610b2c78020a139fde984",
        "url": "https://chainchoice.io/data/methodology/category/payment_gateway.ad2c0a6adf4d3598.json"
      },
      "perp_dex": {
        "specVersion": "2026.07",
        "sha256": "b1678982d2f4caa1ae53045a1094472881e2bc54590f200648a5711738b0bebc",
        "url": "https://chainchoice.io/data/methodology/category/perp_dex.b1678982d2f4caa1.json"
      },
      "perp_house_vaults": {
        "specVersion": "2026.08",
        "sha256": "283a35af567d539e9499515b7e146621c3be6ef1f452000e675de06b6f6b1343",
        "url": "https://chainchoice.io/data/methodology/category/perp_house_vaults.283a35af567d539e.json"
      },
      "portfolio_tracking": {
        "specVersion": "2026.08",
        "sha256": "722f9b6b27e238c999c74b70d916d4d7e1c8f0496cd85d69e744c1b03e2e0c09",
        "url": "https://chainchoice.io/data/methodology/category/portfolio_tracking.722f9b6b27e238c9.json"
      },
      "prediction_markets": {
        "specVersion": "2026.08",
        "sha256": "7ea3a0a02229cf4df692b7ee51a0d52b7103bdf341d2b7aa470f082e77a9bd46",
        "url": "https://chainchoice.io/data/methodology/category/prediction_markets.7ea3a0a02229cf4d.json"
      },
      "privacy_tools": {
        "specVersion": "2026.08",
        "sha256": "223742e39da199b487c07ab89d25d6f9d51ae11c8b2ac34d7326adaa33434602",
        "url": "https://chainchoice.io/data/methodology/category/privacy_tools.223742e39da199b4.json"
      },
      "private_credit": {
        "specVersion": "2026.08",
        "sha256": "e7f03ace73f0709c619a5e9a3908ef99b3c268000a8c911d6ad8f9516aef2531",
        "url": "https://chainchoice.io/data/methodology/category/private_credit.e7f03ace73f0709c.json"
      },
      "proof_of_personhood": {
        "specVersion": "2026.08",
        "sha256": "1583ed4fb33282f35c8339e2439864d58236ac9e3639b11c18cf4dabfd933b26",
        "url": "https://chainchoice.io/data/methodology/category/proof_of_personhood.1583ed4fb33282f3.json"
      },
      "relayers": {
        "specVersion": "2026.08",
        "sha256": "4aa815af9ac015fffd70718046c960df6a2b9c72fe385d6d0886699516aa4953",
        "url": "https://chainchoice.io/data/methodology/category/relayers.4aa815af9ac015ff.json"
      },
      "remittances": {
        "specVersion": "2026.08",
        "sha256": "abad116e45b814b7928b39d3ce755ac103686ab98864fa7912b4f5606c7b34f5",
        "url": "https://chainchoice.io/data/methodology/category/remittances.abad116e45b814b7.json"
      },
      "restaking": {
        "specVersion": "2026.08",
        "sha256": "fe906c0fa33b8365a7b7216a826698e0ca477b688c20399e6938f6cf017d49bf",
        "url": "https://chainchoice.io/data/methodology/category/restaking.fe906c0fa33b8365.json"
      },
      "revoke_tools": {
        "specVersion": "2026.08",
        "sha256": "772b7a5a35692ff432fdc09700e0708abe21c7aba4e383b6a59616c2fbd2de92",
        "url": "https://chainchoice.io/data/methodology/category/revoke_tools.772b7a5a35692ff4.json"
      },
      "rollup_as_a_service": {
        "specVersion": "2026.08",
        "sha256": "809f717d9b248eea46d199f7456e2a5e2ab04eba200be4e5b2d8cdffe4f15ca4",
        "url": "https://chainchoice.io/data/methodology/category/rollup_as_a_service.809f717d9b248eea.json"
      },
      "rpc_nodes": {
        "specVersion": "2026.08",
        "sha256": "526f7e579c05df0f3cc060bd8088e4da379b046087c94c43d142b43361afbb09",
        "url": "https://chainchoice.io/data/methodology/category/rpc_nodes.526f7e579c05df0f.json"
      },
      "screeners": {
        "specVersion": "2026.08",
        "sha256": "e576a8fb1975de88ac2f059840291e6d245daa0edf29533900bac1724ac62df0",
        "url": "https://chainchoice.io/data/methodology/category/screeners.e576a8fb1975de88.json"
      },
      "seed_backup": {
        "specVersion": "2026.08",
        "sha256": "0918413f7ccebfc4e2be39cdab1f1084e8603fc3ab711e18cf57ec1de0f7099a",
        "url": "https://chainchoice.io/data/methodology/category/seed_backup.0918413f7ccebfc4.json"
      },
      "sentiment_analytics": {
        "specVersion": "2026.08",
        "sha256": "f602615c517f310f05874d8be1cb21ee5f390c67a8b5145c0e57fd10eb65690b",
        "url": "https://chainchoice.io/data/methodology/category/sentiment_analytics.f602615c517f310f.json"
      },
      "shared_sequencers": {
        "specVersion": "2026.08",
        "sha256": "d522c602491969fa212ed97a909e791f658ce1cbecb808e77de62a932f175532",
        "url": "https://chainchoice.io/data/methodology/category/shared_sequencers.d522c602491969fa.json"
      },
      "sidechains": {
        "specVersion": "2026.08",
        "sha256": "e83baf49c0ae2584219ea258ef45a451f5cbf0b0a509ba89a555f0accdd4ee3a",
        "url": "https://chainchoice.io/data/methodology/category/sidechains.e83baf49c0ae2584.json"
      },
      "simple_buy": {
        "specVersion": "2026.08",
        "sha256": "87d3f5a0e7eaf8c7ee0f0769b6c0025140e153988e50b7f1ab60b1afa05aa500",
        "url": "https://chainchoice.io/data/methodology/category/simple_buy.87d3f5a0e7eaf8c7.json"
      },
      "smart_accounts": {
        "specVersion": "2026.08",
        "sha256": "72625d4a2d926e5f3dabeb762812e8bc080865329a70e6f76f7c41745967089a",
        "url": "https://chainchoice.io/data/methodology/category/smart_accounts.72625d4a2d926e5f.json"
      },
      "smart_contract_audits": {
        "specVersion": "2026.08",
        "sha256": "2083f1a40821f8949d423966910278cab518fb45791b54b891b1f6815d5b77ac",
        "url": "https://chainchoice.io/data/methodology/category/smart_contract_audits.2083f1a40821f894.json"
      },
      "socialfi": {
        "specVersion": "2026.08",
        "sha256": "d586a4dbbc98079c9ef6a8288554b410f7f92313f8637490ad978f49c85699f5",
        "url": "https://chainchoice.io/data/methodology/category/socialfi.d586a4dbbc98079c.json"
      },
      "stablecoin_issuance": {
        "specVersion": "2026.08",
        "sha256": "e1690df5b1b728676bbd4ba0d305be81ab15d83143fd58783c098e58d09304f0",
        "url": "https://chainchoice.io/data/methodology/category/stablecoin_issuance.e1690df5b1b72867.json"
      },
      "stablecoin_settlement": {
        "specVersion": "2026.08",
        "sha256": "2c9e7fc52fe9e7a8005e66f4b70346b143a8e636847c9fa8388a28b1d038d68b",
        "url": "https://chainchoice.io/data/methodology/category/stablecoin_settlement.2c9e7fc52fe9e7a8.json"
      },
      "stablecoin_yield": {
        "specVersion": "2026.08",
        "sha256": "1a16e861f3a754a703f47fb774a93327cc08eff0f3052c7a02502001ed7824b7",
        "url": "https://chainchoice.io/data/methodology/category/stablecoin_yield.1a16e861f3a754a7.json"
      },
      "stablecoins": {
        "specVersion": "2026.08",
        "sha256": "dd1fa4b50485f0d2524a01f61da473bb97027e2cd1b6f63ca01fa859cb4aff75",
        "url": "https://chainchoice.io/data/methodology/category/stablecoins.dd1fa4b50485f0d2.json"
      },
      "staking": {
        "specVersion": "2026.08",
        "sha256": "7fff108b8da2f05f0f376b5e7c23f7e09aad2c3fac744a22c51af355e1e3192c",
        "url": "https://chainchoice.io/data/methodology/category/staking.7fff108b8da2f05f.json"
      },
      "structured_products": {
        "specVersion": "2026.08",
        "sha256": "9b05765a4139171d2fe5b283e7a97a0cc65191badb673b8c93d7ef1cd35f99bd",
        "url": "https://chainchoice.io/data/methodology/category/structured_products.9b05765a4139171d.json"
      },
      "subscriptions": {
        "specVersion": "2026.08",
        "sha256": "b314b3fdc0cc6033429dda2ec3abb5137ece58094e3a84276b1cea3bbb6e8b83",
        "url": "https://chainchoice.io/data/methodology/category/subscriptions.b314b3fdc0cc6033.json"
      },
      "tax_software": {
        "specVersion": "2026.08",
        "sha256": "f6b25eb8b0cf453c0219977bb37a5556b39664b2c496dea2ace71a81767435cd",
        "url": "https://chainchoice.io/data/methodology/category/tax_software.f6b25eb8b0cf453c.json"
      },
      "token_launch_platforms": {
        "specVersion": "2026.08",
        "sha256": "475bf4b1d60d701dbe1818778842a211a95c2dfe51a6a939c395e5049e6a387e",
        "url": "https://chainchoice.io/data/methodology/category/token_launch_platforms.475bf4b1d60d701d.json"
      },
      "token_standards": {
        "specVersion": "2026.08",
        "sha256": "c656afc947660782e05ed69fbdd5c6d997be01445ade914724c3968a91aa217b",
        "url": "https://chainchoice.io/data/methodology/category/token_standards.c656afc947660782.json"
      },
      "tokenisation_platforms": {
        "specVersion": "2026.08",
        "sha256": "2d08625c03372a57924a4188221c9cee49f087e391258f774b6b8bdd9c262b6a",
        "url": "https://chainchoice.io/data/methodology/category/tokenisation_platforms.2d08625c03372a57.json"
      },
      "tokenised_bonds": {
        "specVersion": "2026.08",
        "sha256": "a75909802498788cf0df714c8faaea1af2f29a1f3442f46c829617026dd84ddb",
        "url": "https://chainchoice.io/data/methodology/category/tokenised_bonds.a75909802498788c.json"
      },
      "tokenised_commodities": {
        "specVersion": "2026.08",
        "sha256": "f776a1a62adf5fb7a2e53691dc35843ccbf508a91f39a2ca92e04c5a5c643adc",
        "url": "https://chainchoice.io/data/methodology/category/tokenised_commodities.f776a1a62adf5fb7.json"
      },
      "tokenised_equities": {
        "specVersion": "2026.08",
        "sha256": "e59f17c3c6050adb75c8d7e11fe2b5cc1f44fb1615aae9010e4c3bd081523f5e",
        "url": "https://chainchoice.io/data/methodology/category/tokenised_equities.e59f17c3c6050adb.json"
      },
      "tokenised_funds": {
        "specVersion": "2026.08",
        "sha256": "01b94d0ec45262f126413ac7071c5fa1fd165107b03c6b4dd446980d76989020",
        "url": "https://chainchoice.io/data/methodology/category/tokenised_funds.01b94d0ec45262f1.json"
      },
      "tokenised_realestate": {
        "specVersion": "2026.08",
        "sha256": "33057991a2d382b20b0a3a02787bc73aac6071a2c601f4b0719ed37ae8d4ac30",
        "url": "https://chainchoice.io/data/methodology/category/tokenised_realestate.33057991a2d382b2.json"
      },
      "tokenised_tbills": {
        "specVersion": "2026.08",
        "sha256": "ce70bd7ada66a305bd3909b6de8f082490c81c348b55a3b3c9d9f8729f5281e3",
        "url": "https://chainchoice.io/data/methodology/category/tokenised_tbills.ce70bd7ada66a305.json"
      },
      "trading_bots": {
        "specVersion": "2026.08",
        "sha256": "796dc798321fd46c431d99471d1047be434a4208ec5f816d7daa510caf44ffa6",
        "url": "https://chainchoice.io/data/methodology/category/trading_bots.796dc798321fd46c.json"
      },
      "trading_tools": {
        "specVersion": "2026.08",
        "sha256": "90723c470dd26c29570a806202e73a2ef032602338d942c98501a4c514442fe7",
        "url": "https://chainchoice.io/data/methodology/category/trading_tools.90723c470dd26c29.json"
      },
      "transaction_simulation": {
        "specVersion": "2026.08",
        "sha256": "0c64054486715df93806e8101be41d4cfa4397631671d8140036ec2875407466",
        "url": "https://chainchoice.io/data/methodology/category/transaction_simulation.0c64054486715df9.json"
      },
      "travel_rule_compliance": {
        "specVersion": "2026.08",
        "sha256": "d7847a6c8b3fb39947868fd2c31978af216898427127a7e07ae3d9091d9d6ebb",
        "url": "https://chainchoice.io/data/methodology/category/travel_rule_compliance.d7847a6c8b3fb399.json"
      },
      "wallet": {
        "specVersion": "2026.08",
        "sha256": "5d3c3db6fb31e9883ad3fb699ac70c5aac22eae3df009e3253da17242606ae01",
        "url": "https://chainchoice.io/data/methodology/category/wallet.5d3c3db6fb31e988.json"
      },
      "wallet_screening": {
        "specVersion": "2026.08",
        "sha256": "5127ae5ba6779ffbf9e6cf9bcd5d85e0ecdb50210a415c161113597224554c01",
        "url": "https://chainchoice.io/data/methodology/category/wallet_screening.5127ae5ba6779ffb.json"
      },
      "web3_apps": {
        "specVersion": "2026.04",
        "sha256": "17c4b2ec1128628d7ac853b31206630e1e9e71d928342811fbc53e09418c53c7",
        "url": "https://chainchoice.io/data/methodology/category/web3_apps.17c4b2ec1128628d.json"
      },
      "wrapped_assets": {
        "specVersion": "2026.08",
        "sha256": "f3fad21723fd154b6c6762aa003c0e52809c8a3aa8c0678207ac33cd82549dd8",
        "url": "https://chainchoice.io/data/methodology/category/wrapped_assets.f3fad21723fd154b.json"
      },
      "yield_aggregators": {
        "specVersion": "2026.08",
        "sha256": "5f929dd0ebc40f84d17b6731550efcc10dbdae7cafd71ce0e8cd1abaea61d302",
        "url": "https://chainchoice.io/data/methodology/category/yield_aggregators.5f929dd0ebc40f84.json"
      },
      "yield_vaults": {
        "specVersion": "2026.08",
        "sha256": "14dc93f329c5af144155592d8ce86000140c5d7fea736e46b2345bae250a283a",
        "url": "https://chainchoice.io/data/methodology/category/yield_vaults.14dc93f329c5af14.json"
      }
    },
    "formula": {
      "step1_weightedTotal": "weightedTotal = round((SUM over dimensions of (breakdown[d] / baseWeight[d]) * weight[d]) / (SUM of weight[d]) * 86, 6 decimal places), where every breakdown[d] is a multiple of 0.1",
      "step2_absoluteScore": "absolute = min(99, max(40, round(weightedTotal <= 20 ? 40 + weightedTotal * ((60 + (20 / 86) * 38 - 40) / 20) : 60 + (weightedTotal / 86) * 38)))",
      "step3_poolRelative": "score = round(min(min(99, max(41, leaderScore - (leaderWeighted - weightedTotal) * 2.6)), scoreOfRowAbove))",
      "tieBreakChain": [
        "availabilitySource, for a reader who states a country only: in perp_dex, perp_house_vaults, options_vaults, prediction_markets, a row whose availability in that country rests on a region tag its record gives no source for (no availability note quoting the provider's terms, and no dated country entry) sorts below every row whose availability is sourced. No row carries it in the orders published in this file, which state no country.",
        "weightedTotal as step 1 states it, higher first. Only rows whose weighted totals are exactly equal reach the keys below.",
        "unroundedWeightedTotal, higher first: step 1 over the dimension points before they are kept to a tenth of a point, published per product. Since methodology v2 a shared weighted total from different unrounded points is ordered by those points, so only rows equal on both reach the keys below.",
        "criteriaAverage, higher first: the row's unrounded weighted average of its published criterion scores (0 to 10) under the weights in use. Applied only when both rows are scored on their category's criteria and the averages differ; otherwise the keys below decide. Since methodology 2026.09.12.",
        "tiebreakDelta, higher first: the sum of three factors. (1) Price: when the category has one comparable pricing basis that may decide rank (priced for at least two of its catalog rows, not an entry-plan figure derived from a price ladder, and quoted in a single currency), a priced row earns 0 to 2 points in proportion to where its price sits between the highest and the lowest in the pool, or 1 point when every published price on that basis is equal; a row with no price on that basis, and every row of a category without such a basis, earns 0. (2) Strength: 1 point when at least three of the row's catalog fitStrength values are 9 or above; those values are its published criterion scores, plus further strength keys on some rows. (3) Dimension: 1 point when the row scores at least 85% of the maximum on the highest-weighted dimension of the weights in use (the first in weights order when two are equal). A row outside the alternate product catalog (every payment_gateway row) carries 0. It orders rows and is never added to a score.",
        "objectiveFit points, higher first.",
        "product name, alphabetical."
      ],
      "tieBreakNote": "The published per-category tieBreakRules are not yet applied by the engine; where two rows share a weighted total and an unrounded weighted total, the chain above decides. Since methodology 2026.09.12 the first key after the totals is the two rows' unrounded weighted criterion averages, so a tie between rows scored on the published criteria is ordered by those criteria; the generic factors decide only where the averages are equal or a row has no criterion scores. tieBreakDecisions counts only pairs equal on both totals, and againstCriteria lists any of them still ordered against the criteria.",
      "note": "boundBy names which limit decided the number when one did: floor, ceiling, row-above, or none. Rows marked floor sit at 41 and the multiplication alone gives a lower figure.",
      "baseWeights": {
        "availability": 20,
        "objectiveFit": 30,
        "frictionFit": 10,
        "trustBonus": 8,
        "quantitative": 18
      },
      "unweightedDimensions": [
        "profileFit"
      ],
      "unweightedNote": "These dimensions are computed and published in every breakdown but carry no weight in the total. profileFit left the composite in methodology 2026.09.2: it was constant inside all 114 categories, so its 20 points moved every product in a pool identically and ordered nothing. Sum the breakdown against baseWeights and the unweighted terms are simply absent from the arithmetic — that is the intended reading, not an omission.",
      "weightVersusInfluence": "A base weight is how much a dimension COULD move a score, not how much it did. Each category publishes dimensionSpread: the range that dimension actually covered across its pool. A spread of 0 means the dimension was constant there and decided nothing, however large its weight.",
      "objectiveBasis": "Each product names where its objectiveFit points came from. \"criteria\": the block is the weighted sum of the published criterion cells, min(30, 0.75 × Σ weight × cell/10 × 32) kept to a tenth of a point, and a pairwise ledger can itemise it per criterion. \"whole\": the category scores the block from structural facts or capability flags rather than per-criterion cells, so it enters a ledger as one term. \"sunset\": the product no longer operates (sunsetAt gives the date) and the block is zeroed regardless of its cells.",
      "totalBaseWeight": 86,
      "dimensionResolution": 0.1,
      "weightedTotalDecimals": 6,
      "resolutionNote": "Since methodology v2 every breakdown value is kept to dimensionResolution (a tenth of a point) before it is weighted, and each product also publishes unroundedWeightedTotal: step 1 over its points before that rounding. Two products that share a weightedTotal are ordered by unroundedWeightedTotal before any key of tieBreakChain after it.",
      "spreadPerWeightedPoint": 2.6,
      "scoreFloor": 41,
      "scoreCeiling": 99,
      "leaderRobustnessNote": "leaderSurvivesOnePointChange: whether this category keeps its #1 when any single criterion score moves by one point on the 0-10 scale — the smallest difference two competent raters can hold. False in 33 of 118 categories. A false does not mean the ranking is wrong; it means the evidence separates the top two by less than the width of a judgement call, and the file says so rather than letting the displayed gap imply otherwise. null means the sweep could not run — too few criteria or too small a pool — and is deliberately not reported as robust."
    },
    "recipe": "sha256 is the SHA-256 of the category spec (the file's \"spec\" field) written as compact JSON: every object's keys sorted, no spaces or line breaks, non-ASCII characters as UTF-8 (not escaped), no trailing newline. That is the serialisation of the rankings digest."
  },
  "rankings": {
    "ledger": "https://chainchoice.io/data/rankings-ledger.jsonl",
    "produced": [
      {
        "seq": 4061,
        "rankingsDigest": "b73d1c4d707249c8988ae57cf8defd2d308819cf44071d5698b11b08de2e9fd8",
        "ob": "2026-10-01",
        "src": "git:b3ba1211d0e356e0a7ed80e57d7285f464770c64",
        "engine": "2026.10.1"
      }
    ],
    "whenIntroduced": "b73d1c4d707249c8988ae57cf8defd2d308819cf44071d5698b11b08de2e9fd8",
    "whenSuperseded": "b73d1c4d707249c8988ae57cf8defd2d308819cf44071d5698b11b08de2e9fd8",
    "newest": null,
    "note": "produced lists the ledger's digest entries whose rankings.json was generated while this version was the newest changelog entry (seq is the entry's place in the ledger). whenIntroduced and whenSuperseded are the digests of the rankings.json committed with the first and the last commit of this version."
  },
  "gaps": [],
  "notes": []
}
