Skip to main content
Methodology

How every rankingis computed.

Each category is ranked on published criteria with published weights. Every score is a pure function of those inputs, the code that orders rows cannot see which links pay, and the build proves both before it ships.

Methodology v2026.09.15Ranking snapshot Evidence verified through Version published 2026-09-16
rankings.json
Categories ranked
119
Categories with a published ranking.
Published scores
983
Placements with a published score in rankings.json — the number the order is rebuilt from.
Criteria
468
Across 119 category models; weights sum to 100 in each.
Considered, refused
603
Products a category considered and turned away, each with a published reason. Not a share of the field: the field is not countable.
Reconstructable
119/119
Categories whose displayed score is a function of the published breakdown. The exception table is read by the gate that checks it.
Ranking-blind
392 modules
34 entry points across 6 surfaces (the published order, Fit, search relevance, provider discovery, the featured lists and the /vs/ verdicts and every "why it leads" line) walked; none can read payout, partner status, outbound routing, revenue and click or conversion telemetry. Checked 2026-09-18.
Vocabulary

Five names, five things

A number on this site goes by exactly one of five names. Two are published and identical for every reader; two are computed from the reader's own answers; one is money for a stated situation. A build check fails when a surface prints a word these replaced.

ChainChoice ScoreOverall rank
The published 41–99 figure a product carries in a category: its criterion strengths under the published weights, plus availability, friction, trust and quantitative data under the published base weights, computed before any reader answers anything and identical for every reader.Not a rank. Two products can share a ChainChoice Score and still be ordered by the tie-break; a score of 78 says nothing about position until the pool is read.Produced by: The ranking engine under default inputs, published in /data/rankings.json with its breakdown.
Overall rankOverall rank
The published order of a category: every product by ChainChoice Score, ties broken by the published tie-break, the same for every reader. "#1 overall" is position 1 in this order.Not a fit. It knows nothing about the reader — no country, no stated requirement, no scenario — and does not change when the reader answers questions.Produced by: The ranking engine under default inputs, published in /data/rankings.json as rank per product.
Fit for youFit for you
The same arithmetic as the ChainChoice Score, run under the reader's own answers: a criterion marked required doubles its published weight, preferred multiplies it by 1.4, and stated attributes claim the preference points. Different answers, different figure.Not the ChainChoice Score. It is printed beside the published figure with the shift between them, so a reader can see how far their own answers moved it — and it can be lower.Produced by: The ranking engine under the reader's inputs, computed in the browser at the moment of the run and part of no published file.
Fit rankFit for you
The order of a category under the reader's own answers: products the stated country cannot use are removed, the rest are ordered by Fit for you. "#1 for you" is position 1 in this order.Not the Overall rank, and never printed in its place. Both orders stay on the page: the Overall rank so the reader can see what the answers changed, the Fit rank so they can see what their answers did.Produced by: The ranking engine under the reader's inputs; a saved decision stores its #1 so the replay can say whether the Fit rank has since changed.
Scenario economicsScenario economics
A money figure for one stated situation — an annual cost, a net yield, a transaction cost — computed from the published pricing block and the amounts, country and period the reader entered.Not a ranking and not a score. The cheapest product in a scenario is a fact about that scenario; it does not move the ChainChoice Score, the Overall rank or the Fit for you, and a scenario with an unknown price prints "Unknown", never 0.Produced by: The typed pricing model (lib/pricingCore) under the reader's scenario inputs, in the browser.

The three chips above are the same words the authority badge prints on every surface that names a #1 — the chip reads its label from this vocabulary, so the badge and the glossary cannot disagree. “#1 overall” is position 1 in the Overall rank; “#1 for you” is position 1 in the Fit rank; a “lowest known cost” chip is Scenario economics and ranks nothing.

The model

How a score is computed

Three stages, each published. The first is the methodology you can inspect per category below; the second and third are the constants the engine applies to every category alike.

  1. Criteria to methodology points

    Each criterion is scored 0–10 from public evidence. Its contribution is weight ÷ 100 × score ÷ 10 × 32, so a category's criteria together control 32 of the 40 objective points. The remaining 8 are preference points: unclaimed in the ChainChoice Score wherever a category is scored on its own criteria, because nothing is stated there, and claimed by the attributes you state in a Fit for you run; they tilt, they do not decide. A criterion without a receipt is not scored — it contributes nothing and is not read as 0.

    Fit for you re-weights the criteria rather than adding a bonus: a criterion you mark required has its published weight doubled and the rest renormalise; preferred multiplies it by 1.4. The sentence "your weighting moved cost from 18% to 33%" is one you can check.

  2. Five dimensions to a weighted total

    The criteria dimension (objectiveFit in the feed) joins availability, the friction dimension (frictionFit), trust bonus and quantitative data under published base weights; the total is the ChainChoice Score. A base weight is how much a dimension could move a score; each category also publishes how much it actually did.

    availability20objectiveFit30frictionFit10trustBonus8quantitative18profileFit0
    Weighted total
    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
    Absolute score
    absolute = min(99, max(40, round(weightedTotal <= 20 ? 40 + weightedTotal * ((60 + (20 / 86) * 38 - 40) / 20) : 60 + (weightedTotal / 86) * 38)))
    Pool-relative score
    score = round(min(min(99, max(41, leaderScore - (leaderWeighted - weightedTotal) * 2.6)), scoreOfRowAbove))

    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.

    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.

    Read verbatim from rankings.json, generated 2026-09-27. Scores are clamped to 41–99.

  3. Pool-relative score, then the Overall rank

    The leader anchors the pool; every other row sits below it by its weighted distance, and no row may print above the row above it. The order itself comes from the chain below, the one the engine applies and the feed publishes as formula.tieBreakChain; each key is read only when every key before it is equal.

    1. 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.
    2. weightedTotal as step 1 states it, higher first. Only rows whose weighted totals are exactly equal reach the keys below.
    3. 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.
    4. 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.
    5. 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.
    6. objectiveFit points, higher first.
    7. product name, alphabetical.

    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.

    Determinism is asserted in the test suite: the same inputs always produce the same order, across every live category.

Standing rules

Editorial principles

Independence

No provider can pay for a position. The modules that decide the published order, Fit, search relevance, provider discovery, the featured lists and the /vs/ verdicts and every "why it leads" line cannot import the affiliate registry, the outbound-link resolvers or the click telemetry; a build gate walks all 392 of them, fails the build if one can, and re-proves on every build that it would catch a planted read. Referral links are declared on the row, never in the score.

Transparency

Every weight, criterion and constant on this page is the one the engine runs, read from the same module. The full ranking with its breakdowns is published at rankings.json so the order can be rebuilt outside this site.

Fit rank beside the Overall rank

There is no single best product. A country you state removes providers that do not serve it; a criterion you mark required re-weights the published model. Both changes are shown next to the result: the Overall rank stays visible beside your Fit rank, and neither is ever printed in the other's place.

Continuous review

Sources are re-read on a published cadence — 45 days for 119 of 119 categories — and every read is dated. The current evidence window runs 2026-08-05 to 2026-09-05; 71 of 119 categories carry a dated read, the rest say so.

Evidence

What a score may rest on

A criterion is scored from a public page with a quote and a URL, read on a dated sweep. Where that receipt is missing the placement is published as needing evidence, not dressed as verified.

Sources per product
≥ 4
Required in 113 of 119 categories, with at least 4 structured facts.
Needs evidence
406
Published placements with zero public receipts — a score with no quote-and-url cell behind it yet.
Complete ladders
78/468
Criteria whose 0–10 rungs are all written; 58 more are partial. A published score is checked against every rung that exists at build time.
Live feeds
5
Price, volume and yield feeds regenerated on the build; last 28 Sep 2026. They inform quantitative cells, never a criterion score.

What is not measured

  • Nothing is tested by transaction. Fees are read from published schedules and receipts, not from live orders placed by us.
  • No provider is interviewed. A claim on a provider's own page counts as that provider's claim, and is labelled as such.
  • Outcome accuracy publishes only above 30 responses. Below that floor the accuracy page shows its empty state rather than a percentage.
  • The field is not countable. 603 refusals are named with reasons; no share of "all providers" is claimed because no such denominator exists.
Claims

How availability and other claims are stated

A sentence on a product page comes from one of six places, and the page says which. Availability is the sharpest case: a provider’s own “global” tag, a region it lists, and a country an editor checked at a named source are three different things, and they are printed in three different words. Only 12 provider × country pairs are verified today; everything else is labelled as what it is.

The nine availability states

Verified in Germany
An editor confirmed availability for this country at a named source, within the last six months.Rests on: Verified fact. Example for Germany: “Availability in Germany verified on 2026-09-28.”
Verified: not available in Germany
An editor confirmed the provider does not serve this country, at a named source, within the last six months.Rests on: Verified fact. Example for Germany: “Verified not available in Germany on 2026-09-28.”
Lists Europe; Germany not individually verified
The provider lists the region this country is in. The country itself was not checked.Rests on: Provider claim. Example for Germany: “Provider lists Europe among its markets. Germany itself was not verified.”
Provider states broad availability
The provider states broad availability. No restriction naming this country was found in the sources read.Rests on: Provider claim. Example for Germany: “Provider states broad availability. No restriction naming Germany was found in the sources read; Germany itself was not verified.”
Not among the markets it lists
The provider lists the markets it serves and this country is not among them.Rests on: Provider claim. Example for Germany: “Provider lists the markets it serves and Germany is not among them. Not verified by ChainChoice; this is the provider’s own list.”
Restricted in Germany
The provider’s own terms name this country as restricted.Rests on: Provider claim. Example for Germany: “Provider states: Germany is a restricted market. Not verified by ChainChoice; the provider’s own terms say so.”
Existing customers only in Germany
The provider serves existing customers in this country but takes no new ones.Rests on: Provider claim. Example for Germany: “Provider states: existing customers in Germany are served, new sign-ups are not.”
Waitlist in Germany
The provider has announced this country and is taking a waitlist.Rests on: Provider claim. Example for Germany: “Provider states: Germany is announced and taking a waitlist; the service is not open there yet.”
Availability not published
The record does not say, or no country was stated.Rests on: Unknown. Example for Germany: “The record does not say where the provider operates.”

A verified state needs a country entry with a source URL and a date younger than 180 days; an older entry falls back to what the record says. Green is used for a verified “yes” only. A provider’s claim and a region listing are amber because they are provisional; an omission or a named restriction is red; nothing stated is grey.

The six claim types

  • Verified fact. An editor read it at a named source on a stated date.
  • Derived metric. Computed by the engine from verified facts; the formula is published.
  • Provider claim. The provider says so. ChainChoice has not checked it.
  • ChainChoice judgment. A ranking or score the published methodology produced.
  • Editorial context. Background written by an editor; not a fact about the record.
  • Unknown. The record does not say.

A provider’s own figure that a page has to show — a country count, a location count, a coverage claim — is printed with the words “Provider states:” in front of it. A build check reads every product’s headline fields and fails when marketing language appears there without that attribution; a second check reads every source file and fails when any surface composes an availability sentence from a country name instead of from the state.

Evidence state

Four things that were one badge

Until 2026-09-09 one badge printed a rebuild notice when a receipt file failed to load, “Low” when a category had no research payload, and “High” when everything was in order — three unrelated facts in one word. They are now four named states, each derived from its own input, and a surface prints the one it means.

Score evidence — does the published score reconstruct

Verified
Every criterion strength reconstructs from a quoted observation with a source URL, and the build checks that each equals the published value.572 of 983 published scores today.
Partial
Some criterion strengths have no observation on file, or their quote carries no source URL a reader could follow.5 of 983 published scores today.
Invalid
An observation on file disagrees with the published strength. The ranking is not restated until the two agree.0 of 983 published scores today.
Unknown
No structured observation is on file for this provider in this category; the strengths are the catalog’s published values.406 of 983 published scores today.

Read from the build’s own count of quoted, sourced cells per provider, never from a file fetched in the browser — so the state is the same before, during and after the receipt file loads. A build check keeps every research score equal to the published strength, which is why a sourced cell counts as a reconstructing one; a disagreement found at run time is the only way to “Invalid”, and it withholds the leader’s title until the two agree.

Public receipts — did the file arrive

Available
The receipt file loaded; every quote can be opened beside its score.
Rebuilding
This build expects a receipt file the server has not published yet. The scores stand on receipts verified at build; the quotes return when the file lands.
Failed to load
The receipt file could not be fetched from this connection. Nothing about the score changed; reload to try again.
No receipt file
This category publishes no receipt file, because no structured research payload exists for it yet.

A transport state: it says what the page can show, never what a score is worth. 72 of 119 categories publish a receipt file; the other 47 say “No receipt file” without making a request. A file that fails to load leaves every score, band and rank as it was.

Evidence confidence — the band a reader sees

High
Every criterion is scored and at least three of them carry a quoted, sourced receipt.
Medium
Either every criterion is scored or at least three receipts are on file — not both.
Low
Fewer than three receipts on a partly scored product, or no receipt with a source URL at all — including a category whose quotes were filed without one.
Not counted
No structured observation is on file for this category, so there is no receipt count to band.

Example reasons, as printed: “4/4 criteria scored, with 4 dated sources quoted.” · “4/4 criteria scored, with 4 quotes on file, none carrying a source URL.” · “No structured observation on file for this category; the receipt count is not counted.” The band reads the same build-time count as the validity above; nothing about a fetch can lower it.

Freshness — how old a date is

Ranking snapshot
Always current: a snapshot is true of its own day and is not claimed as today’s.
Evidence verified through
Current to 90 days · aging to 180 · stale beyond.
Live feed as of
Current to 7 days · aging to 14 · stale beyond.
Editorial reviewed
Current to 180 days · aging to 365 · stale beyond.
Field verified
Current to 180 days · aging to 360 · stale beyond.
Methodology
Always current: a snapshot is true of its own day and is not claimed as today’s.
CurrentAgingStaleUnknownConflicting

A date is judged on the day it is read, against the window for its kind; a category’s own review cadence (119 × 45 days) replaces the 90/180-day sweep window on its model page. Freshness labels and never demotes: an aging or stale date leaves the score unchanged and shows the date so the reader can weigh it. Only a conflict — two sources that disagree — withholds a leader’s title. A date that is not a date is “Unknown”, never silently current.

Category models

Category-level methodology

Every category is ranked under its own model: its criteria, weights, ladders, tie rules, evidence rules and sensitivity. Open one to inspect it row by row.

Account Abstraction Infrav2026.084 criteria · 1008 rankedNo ladders yet
Appchains / L3sv2026.084 criteria · 1009 rankedNo ladders yet
Automation & Keepersv2026.084 criteria · 1007 rankedNo ladders yet
Bitcoin Mining Poolsv2026.084 criteria · 1008 rankedLadders complete
Block Explorersv2026.084 criteria · 1009 rankedNo ladders yet
Blockchain Indexersv2026.084 criteria · 1008 rankedNo ladders yet
Bridgesv2026.044 criteria · 10018 rankedNo ladders yet
Bug Bounty Platformsv2026.084 criteria · 1007 rankedNo ladders yet
CDP Stablecoinsv2026.084 criteria · 1007 rankedNo ladders yet
Creator Mint Platformsv2026.084 criteria · 1009 rankedNo ladders yet
Cross-Chain Messagingv2026.084 criteria · 1007 rankedNo ladders yet
Cross-chain Swapsv2026.084 criteria · 1007 rankedNo ladders yet
Cross-Chain Token Standardsv2026.084 criteria · 1008 rankedNo ladders yet
Crypto Bill Payv2026.084 criteria · 1007 rankedNo ladders yet
Crypto Cardsv2026.084 criteria · 1009 rankedNo ladders yet
Crypto Gift Cardsv2026.084 criteria · 1008 rankedNo ladders yet
Crypto Neobanksv2026.084 criteria · 1007 rankedNo ladders yet
Crypto Offrampsv2026.084 criteria · 1007 rankedNo ladders yet
Crypto Payrollv2026.084 criteria · 1007 rankedNo ladders yet
Crypto Remittancesv2026.084 criteria · 1007 rankedLadders complete
Crypto Subscriptionsv2026.084 criteria · 1009 rankedNo ladders yet
Crypto-Backed Loansv2026.084 criteria · 1005 rankedLadders complete
DAO Governance Toolsv2026.084 criteria · 1008 rankedNo ladders yet
Data Availability Layersv2026.084 criteria · 1007 rankedNo ladders yet
Decentralised Computev2026.084 criteria · 1007 rankedNo ladders yet
Decentralised Identityv2026.084 criteria · 1008 rankedNo ladders yet
Decentralised Storagev2026.084 criteria · 1007 rankedNo ladders yet
DeFi Dashboardsv2026.084 criteria · 1008 rankedNo ladders yet
DeFi Insurancev2026.084 criteria · 1007 rankedNo ladders yet
DePIN Networksv2026.084 criteria · 1007 rankedNo ladders yet
Dev Frameworksv2026.084 criteria · 1007 rankedLadders complete
DEX Aggregatorsv2026.072 criteria · 10012 rankedNo ladders yet
DEXsv2026.072 criteria · 10012 rankedNo ladders yet
Enterprise Crypto Accountingv2026.084 criteria · 1007 rankedLadders complete
Exchangesv2026.084 criteria · 10014 rankedLadders complete
Fiat Rails & Banking for Crypto Businessesv2026.084 criteria · 1008 rankedLadders complete
Fixed-Rate Yieldv2026.084 criteria · 1007 rankedNo ladders yet
Flash Loan Venuesv2026.084 criteria · 1008 rankedNo ladders yet
Hardware Walletsv2026.072 criteria · 10013 rankedNo ladders yet
Incentive Distributionv2026.084 criteria · 1009 rankedNo ladders yet
Institutional Custodyv2026.084 criteria · 1009 rankedLadders complete
Institutional Execution Platformsv2026.084 criteria · 1006 rankedNo ladders yet
Intent Networksv2026.084 criteria · 1007 rankedNo ladders yet
Key Recovery & Inheritancev2026.084 criteria · 1009 ranked3/4 ladders
KYC & Compliancev2026.084 criteria · 1007 rankedNo ladders yet
L2 Blockchainsv2026.073 criteria · 10013 rankedNo ladders yet
Layer-1 Blockchainsv2026.084 criteria · 1008 rankedNo ladders yet
Lending & Borrowingv2026.084 criteria · 1008 rankedLadders complete
Lightning Payment Infrastructurev2026.084 criteria · 10013 rankedNo ladders yet
Lightning Walletsv2026.084 criteria · 10013 rankedLadders complete
Liquid Lockersv2026.084 criteria · 1005 rankedLadders complete
Liquid Stakingv2026.084 criteria · 10011 rankedNo ladders yet
Liquidity Managementv2026.084 criteria · 1008 rankedNo ladders yet
Market-data APIsv2026.084 criteria · 1008 rankedNo ladders yet
MEV Protectionv2026.084 criteria · 1008 rankedNo ladders yet
Money-Market Fundsv2026.084 criteria · 1008 rankedNo ladders yet
MPC & Embedded Walletsv2026.084 criteria · 1007 rankedNo ladders yet
Naming Servicesv2026.084 criteria · 1007 rankedNo ladders yet
NFT Analyticsv2026.084 criteria · 1006 rankedNo ladders yet
NFT Lendingv2026.084 criteria · 1007 rankedNo ladders yet
NFT Marketplacesv2026.084 criteria · 1009 rankedNo ladders yet
On-chain Analyticsv2026.084 criteria · 1007 rankedNo ladders yet
On-chain Monitoringv2026.084 criteria · 1007 rankedNo ladders yet
Onchain Attestationsv2026.084 criteria · 1007 rankedNo ladders yet
Onrampsv2026.084 criteria · 10016 rankedNo ladders yet
Options Vaultsv2026.084 criteria · 1008 rankedNo ladders yet
Oraclesv2026.084 criteria · 1009 rankedNo ladders yet
OTC Desksv2026.084 criteria · 1009 rankedNo ladders yet
P2P Exchangesv2026.084 criteria · 1008 rankedNo ladders yet
Paid Crypto Research Seatsv2026.084 criteria · 1007 rankedNo ladders yet
Payment Gatewaysv2026.045 criteria · 10012 rankedNo ladders yet
Perp DEXsv2026.072 criteria · 10012 rankedNo ladders yet
Perp House Vaultsv2026.084 criteria · 1009 ranked1/4 ladders
Portfolio Trackingv2026.084 criteria · 1007 rankedNo ladders yet
Prediction Marketsv2026.084 criteria · 1008 rankedNo ladders yet
Privacy Toolsv2026.084 criteria · 1008 rankedNo ladders yet
Private Creditv2026.084 criteria · 1007 rankedNo ladders yet
Proof of Personhoodv2026.084 criteria · 1008 rankedNo ladders yet
Relayersv2026.084 criteria · 1007 rankedNo ladders yet
Restakingv2026.084 criteria · 1007 rankedNo ladders yet
Rollup-as-a-Servicev2026.084 criteria · 1008 rankedNo ladders yet
RPC & Node Servicesv2026.084 criteria · 1009 rankedNo ladders yet
Seed Phrase Backupv2026.084 criteria · 1007 rankedNo ladders yet
Sentiment Analyticsv2026.084 criteria · 1008 rankedNo ladders yet
Shared Sequencersv2026.084 criteria · 1006 rankedNo ladders yet
Sidechainsv2026.084 criteria · 1007 rankedNo ladders yet
Simple Buyv2026.084 criteria · 1009 rankedNo ladders yet
Smart Accounts & Multisigv2026.084 criteria · 1007 rankedNo ladders yet
Smart-contract Auditsv2026.084 criteria · 1009 rankedNo ladders yet
SocialFiv2026.084 criteria · 1008 ranked2/4 ladders
Stablecoin Issuance Platformsv2026.084 criteria · 1006 rankedLadders complete
Stablecoin Settlementv2026.084 criteria · 1007 rankedLadders complete
Stablecoin Yieldv2026.084 criteria · 1008 rankedNo ladders yet
Stablecoinsv2026.084 criteria · 10011 rankedLadders complete
Stakingv2026.084 criteria · 1007 rankedNo ladders yet
Structured Productsv2026.084 criteria · 1007 rankedNo ladders yet
Tax Softwarev2026.084 criteria · 10011 rankedLadders complete
Token Approval & Revoke Toolsv2026.084 criteria · 1007 rankedNo ladders yet
Token Launch Platformsv2026.084 criteria · 1009 rankedNo ladders yet
Token Launchpadsv2026.084 criteria · 1009 rankedNo ladders yet
Token Screenersv2026.084 criteria · 1007 rankedNo ladders yet
Tokenisation Platformsv2026.084 criteria · 1007 rankedLadders complete
Tokenised Bondsv2026.084 criteria · 1007 rankedLadders complete
Tokenised Carbon Creditsv2026.084 criteria · 1008 rankedNo ladders yet
Tokenised Commoditiesv2026.084 criteria · 1007 rankedNo ladders yet
Tokenised Equitiesv2026.084 criteria · 1008 rankedNo ladders yet
Tokenised Fundsv2026.084 criteria · 1007 rankedNo ladders yet
Tokenised Real Estatev2026.084 criteria · 1006 rankedNo ladders yet
Tokenised T-Billsv2026.084 criteria · 1009 rankedNo ladders yet
Trading Botsv2026.084 criteria · 1009 rankedNo ladders yet
Trading Toolsv2026.084 criteria · 1007 rankedNo ladders yet
Transaction Simulationv2026.084 criteria · 1009 rankedNo ladders yet
Travel Rule Compliancev2026.084 criteria · 1009 rankedLadders complete
Wallet Screeningv2026.084 criteria · 1009 rankedNo ladders yet
Walletsv2026.084 criteria · 1008 rankedNo ladders yet
Web3 Appsv2026.044 criteria · 10010 rankedNo ladders yet
Wrapped Assetsv2026.084 criteria · 1008 rankedNo ladders yet
Yield Aggregatorsv2026.084 criteria · 1007 rankedNo ladders yet
Yield Vaultsv2026.084 criteria · 1007 rankedNo ladders yet
Versions

Published methodology versions

Each version is a dated change to the model. The changelog carries the full entry; the feed names the version every score was computed under.

  1. v2026.04.0-launchFirst publicly versioned methodology. 11 categories with scoring weights, 5-dimension framework (fees, trust, support, control, liquidity), 6-question default decision flow per category.
  2. v2026.04.0Outbound provider links now resolve to region-appropriate URLs at click time. US visitors clicking a US-restricted exchange are routed to the operator's US entity (where one exists) or shown a region-block notice instead of a dead link.
  3. v2026.09.0Trustpilot and App Store averages no longer contribute to any score. They remain visible as evidence on the provider breakdown, labelled as context rather than a scored dimension. The quantitative dimension keeps its 0-18 range: fee and regulatory scoring are rescaled to span it, so the balance between the six dimensions is unchanged.
  4. v2026.09.1scoreAvailability compared each of a product's markets against the visitor's country with String.includes. On the un-personalised path — every /best page, every prerendered route and the rankings.json feed itself — no country is stated, so the needle was the empty string and every market name matched. Two products were silently excluded from every published ranking, and a 20-versus-18 step became "does this row have a non-empty primaryMarkets array".
  5. v2026.09.2profileFit is no longer weighted. It took two values across 934 rows — 14 everywhere except the twelve payment_gateway rows — and was constant inside 114 of 114 categories, so its 20 of 106 points moved every product in a pool by an identical amount and never once decided an order. The published total is now 86 points across five dimensions. profileFit is still computed and still shown in every breakdown; it simply no longer pretends to rank.
  6. v2026.09.3The eligibility gate now reads the decision layer's country verdict for every row before anything is scored. Until now the engine excluded a row only when the visitor's country was one of the 27 the region table maps; a visitor from any of the other 33 questionnaire countries — India, Nigeria, New Zealand, Hungary among them — was ranked against providers whose own market list omits their region, labelled "verify availability" as if it were unknown. The verdict is the same test on the 27 mapped countries (identical on all 26,217 country-by-row pairs) and resolves the other 33 through the wizard's own region at region resolution, which the verdict says. Only an ineligible verdict excludes; unknown is kept and labelled, exactly as before.
Verify it

Verification surfaces

Every claim above is backed by a public surface that exposes the numbers and their history.

Machine-readable schemas for the decision primitives are published at /methodology/spec/ under CC-BY-4.0.

Accountability

Who publishes this

ChainChoice is operated by Simi Ventures GmbH. These are the people behind it; the checks that run on every build are named by script on /why-trust-us.

ROLEManaging director, Simi Ventures GmbH

Mathias Siemonsmeier

Managing director of Simi Ventures GmbH, the company that operates ChainChoice. He is the person named as approver on each methodology version.

Responsibilities
  • Approves methodology versions: each entry in the methodology changelog names him as approver
  • Responsible for content under §18 (2) MStV, as the imprint states
Conflict-of-interest disclosure

Simi Ventures GmbH, the operator, may receive referral commission from providers with a live partner programme. Personal holdings: not published.

ROLEManaging director, Simi Ventures GmbH

Jürgen Siemonsmeier

Managing director of Simi Ventures GmbH, the company that operates ChainChoice.

Responsibilities
  • Managing director of Simi Ventures GmbH, the operator
Conflict-of-interest disclosure

Simi Ventures GmbH, the operator, may receive referral commission from providers with a live partner programme. Personal holdings: not published.

Automated processes

6 processes run in the build, each named by the scripts that implement it.

  • Published ranking feed. Generates the file the published order can be rebuilt from. scripts/generate-rankings-feed.ts
  • Ranking verifier. Checks that the order a reader sees is the order the published inputs produce. scripts/check-published-ranking-verifies.ts · scripts/check-order-reconstructs.ts
  • Commercial firewall. Keeps commercial data out of the code that computes rankings. scripts/check-ranking-path-blind.ts · scripts/check-affiliate-blind.mjs
  • Review cadence check. Holds each category to the re-read interval it publishes. scripts/check-review-cadence-is-kept.ts
  • Research drift check. Keeps shipped scores equal to the research that was verified. scripts/check-pool-matches-research.ts
  • Methodology version check. Keeps every printed version stamp readable in the changelog. scripts/check-methodology-version-published.ts
Disclosure

Conflict-of-interest disclosure

Simi Ventures GmbH, which operates ChainChoice, may earn a commission when a reader follows a referral link and the provider confirms a qualifying action. Providers cannot buy placement, a score or coverage, and there is no sponsored tier. The modules that compute an order cannot import partner, payout or click data, and the build fails if one can.

The people on the roster above, Mathias Siemonsmeier and Jürgen Siemonsmeier, are the managing directors of Simi Ventures GmbH, the company that may receive referral commission. That conflict is why commission is kept out of the ordering code by a build check rather than by a promise. Their personal holdings are not published.

Scrutiny

Questions

If you believe a score is wrong or a fact is out of date, send the page and the fact to the address in the imprint. Published corrections are listed at /methodology/corrections.

ChainChoice
Compare onchain. A brighter future.
© 2026 ChainChoice. All rights reserved.
System statusFeeds last refreshed 9 days ago
Built from commit ba0993b · rankings.json sha256 e1eb24980abb
ChainChoice · The decision layer for crypto · Not financial adviceEducational analysis, not investment advice. Affiliate links may contribute to operations but never alter rankings.

ChainChoice provides informational content only. Nothing on this site constitutes financial, investment, legal, or tax advice. Always do your own research and consult a qualified professional before making financial decisions.