Skip to main content
btc$78,766+0.72%eth$2,469-0.62%usdt$0.9999+0.01%bnb$693.65-1.14%xrp$1.47-1.38%usdc$1.0000+0.01%sol$97.97+2.62%trx$0.3424-0.40%figr_heloc$1.04hype$79.90+0.16%zec$830.46-1.07%doge$0.0897-2.28%rain$0.0145+3.18%usds$1.00+0.01%leo$9.37-0.02%link$11.50-1.33%btc$78,766+0.72%eth$2,469-0.62%usdt$0.9999+0.01%bnb$693.65-1.14%xrp$1.47-1.38%usdc$1.0000+0.01%sol$97.97+2.62%trx$0.3424-0.40%figr_heloc$1.04hype$79.90+0.16%zec$830.46-1.07%doge$0.0897-2.28%rain$0.0145+3.18%usds$1.00+0.01%leo$9.37-0.02%link$11.50-1.33%
CoinPulse

Which hardware wallets actually stay up

Best measured: Ledger9.82/10 on the 100% we could measure.

Runner-up: OneKey9.8/10.

Not rankable: 1 of 15 — too little published about them to measure.

Last collection 2026-08-25: probed 252 services, measured 233, over a 90-day window. Collected by our own script, not by hand — the numbers are reproducible, and reproducibly boring.

The ranking

#ServiceScoreAgeLatencyMedian fixStatus feed
1Ledger9.82100%12.7y107 ms32 minstatuspage
2OneKey9.8100%7.7y351 msstatuspage
3Trezor8.6682%13.7y111 msunknown
4NGRAVE7.9382%8.7y622 msunknown
5BitBox7.8582%11.7y91 msnone
6Keystone7.6182%8.7y225 msnone
7GridPlus7.6182%9.7y221 msnone
8Ellipal7.6182%8.7y243 msnone
9Cypherock7.6182%6.7y328 msnone
10Arculus7.6182%5.6y332 msnone
11KeepKey7.6182%11.7y373 msnone
12Tangem7.1282%9.7y669 msnone
13Coldcard7.1282%8.7y790 msnone
14SafePal7.1282%8.7y590 msnone

Every figure carries the date it was taken, on the service’s card below, linked to its open source. Score is out of what we could measure — the % next to it is coverage.

How we scored this

These weights belong to this category alone. Signature measurement here: Age and status/latency of the companion serviceA device in a drawer has no TVL and no uptime; age is the trust signal, plus the reliability of its companion service.

TRACK
40%22
Track record

Time the service has been live and continuously operating, from DefiLlama's listing date or the documented launch. Survi

PERF
20%10
Latency

Median time to first byte from a public endpoint, our own probe, slowest sample discarded, single location. Scored withi

STATUS
22%12
Status transparency

Whether a public, machine-readable status page exists (statuspage / incident.io / instatus). A service you can audit fro

INCID
18%10
Incident repair time

Median minutes from published report to published resolution across the incidents a service logged, from its own status

Latency in this category is timed at the live interface for every service, so the comparison is like-for-like. We never compare latency across categories — a DEX interface and an exchange API are not the same thing, and pretending otherwise would just reward whoever we happened to probe more cheaply.

The brief also defines FEES and UX (0%, 0%). We don’t publish them: we can’t measure them ourselves, and an estimate dressed as a measurement is worse than a gap. Full methodology

The services

9.82 / 10100% measured
Criteria
TRACKTrack record
40% weight10/10

Live 12.7 yr (since founding (2014), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
22% weight10/10

Publishes a machine-readable incident archive (statuspage) — its whole record can be checked by anyone, including against us.

measured 2026-08-25 11:09 UTCevidence ↗
PERFLatency
20% weight10/10

Median 107 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
18% weight9/10

Median 32 min from published report to resolution across 50 logged incidents. Scored on repair speed, not on how many it logged.

measured 2026-08-25 11:09 UTCevidence ↗
Incident history · 90 days
Check it against the source ↗
nothing logged minor major critical no data (7d)

The provider’s feed returns its 50 most recent incidents and no more, which here reaches back 83 days. The remaining 7 are blank because we cannot see them — not because nothing happened.

Measured, but not scored
Incidents logged18.07 / 30 days

Over the 83 days the feed covers. Not scored — logging granularity varies between services.

O
9.8 / 10100% measured
Criteria
TRACKTrack record
40% weight10/10

Live 7.7 yr (since founding (2019), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
22% weight10/10

Publishes a machine-readable incident archive (statuspage) — its whole record can be checked by anyone, including against us.

measured 2026-08-25 11:09 UTCevidence ↗
PERFLatency
20% weight9/10

Median 351 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
18% weight10/10

No incidents at all in the 90 days its feed covers — we read the feed and it is empty.

measured 2026-08-25 11:09 UTCevidence ↗
Measured, but not scored
Incidents logged0 / 30 days

Over the 90 days the feed covers. Not scored — logging granularity varies between services.

T
Not publishedFull review →
8.66 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 13.7 yr (since founding (2013), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight5/10

A status page exists but publishes no feed we could parse — readable, not auditable. Part of that may be our blind spot (we read three platforms).

measured 2026-08-25 11:09 UTCevidence ↗
PERFLatency
24% weight10/10

Median 111 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: A status page exists but publishes no feed we could parse — readable, not auditable. Part of that may be our blind spot (we read three platforms).

N
Not publishedFull review →
7.93 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 8.7 yr (since founding (2018), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight5/10

A status page exists but publishes no feed we could parse — readable, not auditable. Part of that may be our blind spot (we read three platforms).

measured 2026-08-25 11:09 UTCevidence ↗
PERFLatency
24% weight7/10

Median 622 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: A status page exists but publishes no feed we could parse — readable, not auditable. Part of that may be our blind spot (we read three platforms).

B
Not publishedFull review →
7.85 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 11.7 yr (since founding (2015), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight10/10

Median 91 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

K
7.61 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 8.7 yr (since founding (2018), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight9/10

Median 225 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

G
7.61 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 9.7 yr (since founding (2017), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight9/10

Median 221 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

E
Not publishedFull review →
7.61 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 8.7 yr (since founding (2018), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight9/10

Median 243 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

C
7.61 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 6.7 yr (since founding (2020), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight9/10

Median 328 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

A
Not publishedFull review →
7.61 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 5.6 yr (since founding (2021), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight9/10

Median 332 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

K
Not publishedFull review →
7.61 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 11.7 yr (since founding (2015), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight9/10

Median 373 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

T
Not publishedFull review →
7.12 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 9.7 yr (since founding (2017), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight7/10

Median 669 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

C
Not publishedFull review →
7.12 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 8.7 yr (since founding (2018), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight7/10

Median 790 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

S
Not publishedFull review →
7.12 / 1082% measured
Criteria
TRACKTrack record
49% weight10/10

Live 8.7 yr (since founding (2018), public record). Most failures happen young, so time survived is real signal.

measured 2026-08-25 11:09 UTCevidence ↗
STATUSStatus transparency
27% weight2/10

No public status page found. Nothing about its reliability can be verified from outside — including by us.

measured 2026-08-25 11:09 UTC
PERFLatency
24% weight7/10

Median 590 ms to first byte from the live interface, our own probe, slowest sample discarded, single location. Compared only within this category.

measured 2026-08-25 11:09 UTCevidence ↗
INCIDIncident repair time
n/a

No incident feed we can read, so no repair time to compute.

Where we docked points

Status transparency: No public status page found. Nothing about its reliability can be verified from outside — including by us.

Who this is NOT for

Anyone who needs to know when it breaks: no status feed, so you find out it is down by discovering it yourself.

Who we left out, and why

We looked at 15, ranked 14, and could not measure 1.

ServiceStatus feedWhy it isn’t ranked
Blockstream Jadeunknown1 of 4 criteria measurable, 22% of this category’s weight — under the 25% a place in the ranking needs. Left unranked on purpose: the less we measure, the fewer criteria there are to dock points on, so a thinly-measured service drifts upward for no reason but our ignorance.

Head to head

Questions

Why isn’t the biggest name at the top?+

Because we rank on whether a service works and can be checked, not on how big it is. Size is not a criterion here — a large service that publishes no status feed cannot demonstrate its reliability to anyone, and it scores accordingly.

What does "62% measured" mean under a score?+

It is the share of our criteria weight we actually measured for that service. The rest is n/a — we did not measure it, so its weight was redistributed across what we did measure rather than counted as zero. A high score at low coverage is a narrower claim than the same score at high coverage, and we would rather show you that than hide it.

Where do the incident numbers come from?+

From each provider's own status page, which several publish as a machine-readable feed. We compute repair time from their published report and resolution timestamps, and link the source on every figure so you can check it. It is their record — we just do the arithmetic and refuse to round it in their favour.

No affiliate links or paid placements in this section. How this is funded · Methodology