sat rates
METHODOLOGY
No 009 · 2026-08-28
08:20 UTC · methodology 2026.08.1

Methodology

Version 2026.08.1. This document is the product. Anyone can draw a line; the reason to trust this one is that the derivation is written down, the conventions are named, and everything inferred is visibly separated from everything observed. Definitions change by version, never silently — a fixing keeps the version it was computed under.

1 — What is measured, and what is not

Three quantities are routinely called “bitcoin yield”. They are denominated in different things and they do not belong on one axis. BTC-native yield is what you get for depositing sats and receiving more sats. The implied BTC rate is the own-rate for bitcoin that the forward market implies. USD cost against BTC is the price of dollars when bitcoin is the collateral. The first two are the bitcoin curve; the third is a dollar curve that happens to use bitcoin as collateral.

They are never merged, never plotted on one axis, and never summed. The cost panel sits on its own surface, in its own colour, with its own domain, and its title states the denomination. The site's headline series is a subtraction across that boundary, and the chart says so in words: BTC earn minus USD cost, percentage points.

2 — Covered interest parity

At time t you hold one bitcoin and you want bitcoin at T. There are two riskless routes. Lend the bitcoin at the bitcoin own-rate rbtc, and hold erbtcT bitcoin at T. Or sell spot, lend the dollars at rusd and contract now to buy bitcoin back at F, giving S erusdT / F bitcoin at T. Both are contracted at t and both deliver a known quantity of bitcoin. If they delivered different quantities the cheaper would be bought and the dearer sold until they did not.

F = S · e(rusd rbtc)T

Taking logs and defining the annualised basis b as the continuously compounded log premium of the forward over spot:

b = ln(F / S) / T     ⇒     rbtc = rusd b
S
spot price of bitcoin, USD per BTC, from the venue's own index
F
forward or futures price for delivery at T, same venue
T
year fraction to expiry, ACT/365F, computed to the second in UTC
r_usd
continuously compounded USD rate to T, from constant-maturity Treasury yields
r_btc
the bitcoin own-rate implied by the forward — what this site publishes
b
annualised basis, continuously compounded

All rates here are continuously compounded on an ACT/365F basis. That is chosen deliberately: it makes the parity relation exactly additive, with no approximation term in the definition of a published benchmark, and it keeps rates additive across tenors so that interpolation behaves. The first-order form F = S(1 + rusdrbtc)T is accurate to a basis point or two at current levels and is not what is implemented.

3 — The sign convention

A positive basis lowers the implied bitcoin rate. When annualised basis exceeds the dollar rate, the implied bitcoin rate is negative — and negative is the normal state of this curve.

Algebraically, b enters with a minus sign: larger basis, smaller rbtc. In terms of the forward, b > 0 means F > S — contango, bitcoin's usual state — and contango means the market pays you, in dollars, to wait for your bitcoin. Being paid to defer delivery is the same statement as bitcoin's own lending rate sitting below the dollar's. Economically, someone who wants long exposure without posting the full notional bids up the forward; that bid is financed by someone selling the forward and holding spot, whose return is the basis. When that carry exceeds what dollars earn risk-free, the residual — which is exactly the bitcoin own-rate — has to be negative for the arithmetic to close. By precedent, this is the relation the LBMA published for years as GOFO, and gold's lease rate has spent long periods below zero for the same reason.

3.1 — The test that gates the build

Getting this backwards produces numbers that are wrong in a way that looks entirely plausible, so the sign is not merely asserted. Four tests run on live data before anything is published, and the site refuses to build if any of them fails.

  • Direction. Every expiry with F > S must give rbtc < rusd. One violation is a hard failure. Last run: 17 positive-basis points, 0 failures.
  • Identity. Re-deriving the forward from the computed rate must reproduce the observed forward to within one basis point. This catches an inverted or dropped T.
  • Inversion. A synthetic backwardated market must give rbtc > rusd. A sign flip that happens to pass the direction test on contango data cannot pass this one.
  • Magnitude. The absolute implied rate stays inside ±50% p.a. beyond one week. This does not check the sign; it catches a tenor in days used where years were meant, which is the other way to be plausibly wrong.

Last run 2026-08-28T08:20:09Z: PASSED. 17 of 17 implied points were negative, which is expected.

4 — Inputs

4.1 — The dollar rate

FRED series DGS1MO, DGS3MO, DGS6MO and DGS1 — constant-maturity Treasury yields, quoted on an investment basis. SOFR is fetched as an overnight anchor and cross-check but does not build the term points, because a free unlicensed term SOFR curve does not exist and inventing one would be worse than using bills. Quoted yields are converted by rusd = ln(1 + y T) / T, which moves the rate about two basis points at three months and 4%. Between the quoted tenors the curve is linear in year fraction; outside them it is held flat, and any point priced against a flat-extrapolated dollar rate carries the interpolation flag. Today's curve is dated 2026-08-26.

4.2 — Spot, and why it is the venue's own index

The spot used for a venue's basis is that venue's own index. This is not a convenience. Using a foreign spot injects the spot dispersion between venues into the basis, where it appears as a rate difference that is not one — and venue divergence is a series this site publishes, so it has to mean what it says.

4.3 — The forward

Where a future is listed, the future is the forward: the mid of the best bid and offer where both are present, the venue's mark where the book is one-sided, and which of the two was used is recorded per point. Where a venue lists options but no future at an expiry, the forward is recovered from put–call parity, F = K + erusdT(CP), taken as the median across the three strikes nearest the money so that one wide quote cannot move a fixing. On these venues bitcoin options are inverse and quoted in bitcoin; their USD value is the quoted premium times the index, and the USD-valued premia satisfy ordinary parity.

Perpetual swaps are not forwards and are excluded from the curve. A perpetual has no expiry, so it has no T, so it has no place on a term structure. Perpetual funding is fetched and published as a carry diagnostic and never as an implied rate.

A futures contract is not a forward contract. Futures are margined daily, so the implied rate embeds the venue's margin regime, funding cost and credit. That is not a defect to be corrected away — it is the substance of venue divergence and of the custody dimension. What this site publishes is the rate implied by tradeable instruments at named venues, not a Platonic risk-free bitcoin rate, and every figure carries its venue.

4.4 — Tenor

ACT/365F from the observation timestamp to expiry, both UTC. Expiries inside three days are discarded: the denominator is small enough that quote noise dominates, and a one-dollar wobble at two days moves the implied rate by hundreds of basis points. Published tenors are 1W, 1M, 3M, 6M and 1Y; a listed expiry inside ±4 days at 1W or ±10 days elsewhere is an observation, and anything else is interpolated, dashed, and marked with a degree sign in tables.

5 — Venues, and how the curve degrades

Each venue adapter is independent. A venue that is unreachable, rate-limited or delisted contributes nothing and is recorded as absent; points are never carried forward from a previous day to fill a gap, and a tenor with no reachable venue is missing rather than interpolated across. Two degradations are live today and are the normal condition, not an incident.

  • CME settlement prices come from CME Group's published daily settlements for Bitcoin futures (BTC), at cmegroup.com. The trade date of the settlement run is the as-of date for every CME point. A CME point is a settle, never a mid.
  • Bybit trade prints come from Bybit's published public trading archive at public.bybit.com, one file of prints per symbol per UTC date, and that UTC date is the as-of date for every Bybit point. The forward is the last print at the reference instant — a settlement-style forward rather than a live mid — and a print more than three hours stale is dropped.
  • The daily settlement instant is 15:00 Central, not 16:00 London. The London fix is CME's final settlement at expiry; the daily settlement is the CME close. On 19 August 2026 the front month settled at 68,575: against the London fix that is +3.92% over nine days, roughly 175% annualised; against the actual settlement instant it is +0.27%, ordinary contango. Both parse cleanly and only one is a rate. The offset is computed from the daylight-saving rule rather than assumed.
  • F and S must be the same instant. A once-a-day forward priced against a live spot turns everything the market did since that instant into basis. Each settlement-basis venue is priced against the index at its own reference instant, and Bybit is aligned to CME's instant where CME settled that day — two daily venues compared four hours apart produce a divergence that is partly the move between them.
  • What that does not fix. Deribit and OKX are read live; CME and Bybit are the previous session's settlement instant. A live mid and a prior-session settle are not simultaneous, and at three months a 1% move between them is worth roughly four percentage points of implied rate. Every venue publishes its own observation basis and timestamp, and the regulated-versus-offshore comparison is drawn between the two settlement-basis venues, which are simultaneous.
  • The product is validated, not assumed. CME's service is keyed by an internal numeric id and a wrong id returns a well-formed payload for a different contract; every response is checked against a plausible price band first. Contract months with zero volume and zero open interest are dropped — their settle is exchange-derived rather than transacted, so it is not an observation.

6 — Venue divergence

Where two venues quote a forward at the same tenor they imply two bitcoin rates, and the difference is not noise to be averaged away. It is the price of the difference between the two venues: their credit, their margin regimes, and the capital constraints of the people who would otherwise arbitrage them. The tier curve drawn on the front page is the median across its tier's venues, not the mean, so that one stale or one-sided book cannot drag a fixing. The series covers four venues — Deribit, OKX, CME and Bybit — and where the regulated leg has no settle at a tenor it is reported absent, never as zero, because a zero would assert that the regulated and offshore curves agree.

7 — Interpolation

Connecting points is a modelling choice, not a rendering choice, so it has rules. Interpolate only within a curve and within a custody tier. Never across tiers: that would imply an exchange rate between hot-key risk and counterparty risk, and no such rate exists.

The implied curve is dense, homogeneous and built from one methodology, so standard curve fitting applies: within a venue and tier, rbtc is interpolated linearly in T on the continuously compounded rate, which is equivalent to log-linear interpolation of the discount factor and keeps forward rates between pillars constant instead of oscillating. No spline — a spline invents curvature between two pillars that no instrument observed. There is no extrapolation past the last observed pillar; the curve ends where the instruments end.

Observed BTC-native yield does not support interpolation at all — too few points, too heterogeneous, every one a different contract at a different size with a different counterparty. Observed points are plotted as points and are never connected by a line. Solid means observed, dashed means inferred, a shaded band with a hollow marker means quoted but unfilled, and any segment touching an interpolated node is dashed for its whole length. This holds in the page, in the tables, in exported images and in the social preview images, with no exceptions.

8 — The custody dimension

The same nominal yield is not the same yield. The ladder runs T1 self-custody cold, T2 self-custody hot, T3 collaborative, T4 custodial, T5 custodial with rehypothecation — and it is ordered so that risk increases monotonically, because it is plotted as an ordinal risk axis and an axis whose second station is safer than its first cannot carry a frontier.

The tier is metadata on the source, not on the datapoint. It is recorded once, with its basis, in a curated file, alongside loan-to-value, rehypothecation disclosure and proof-of-reserves status where those are disclosed. A datapoint inherits its source's tier. Tiers are arguable, and the argument should happen in one auditable place with a citation rather than silently per row. For a venue on the implied curve the tier reflects where collateral must sit to realise the rate: you cannot capture a Deribit basis from cold storage.

9 — Observed BTC-native yield

Filled and quoted are different data and are stored in different files. A filled order is a transaction: someone paid that rate. An open offer is an ask that may never clear, and a market thin enough that most asks never clear will quote a much higher rate than it transacts at. Filled renders as a solid point and a plain figure; quoted renders as a shaded band with a hollow marker and appears in tables in parentheses. A quoted figure never gets a filled point — and that is enforced in code, not by convention: the renderer takes its marker from the datum's declared confidence and there is no code path from quoted to filled.

Amboss Magma supplies both sides. Cleared leases carry Amboss's published annualised rate with the term in blocks and the size in sats; open offers carry published fee fields from which this site computes the ask rate itself, using cost = base fee + size × fee rate, annualised over the term. Those two conventions coincide exactly — Amboss's rate satisfies fee = rate × size × blocks / 52560, which is the same 365-days-per-year simple annualisation — so the two sides are comparable, which is why the arithmetic is stated rather than assumed. A lease term in blocks is converted at 600 seconds per block, and that assumption is stated wherever a lease tenor is shown.

Core Lightning liquidity ads are read from the public graph. The lease term is not in the advertisement: it is the protocol constant 4032 blocks, about 28 days. An earlier draft of this document said the term was read from the advertisement, and that was wrong in a way that mattered — annualising a 0.44% lease fee over four days rather than twenty-eight overstates the rate by exactly seven, putting a point at 40% p.a. instead of 5.7%. Because the base fee amortises, one advertisement implies a different rate at every channel size, so each ad becomes a band across a reference size range and never a point. These are asks, and they render as bands without exception.

9.1 — Boltring, and what it costs the reader

Boltring coordinates rebalancing cycles across Lightning nodes and observes what liquidity actually cleared at. It is operated by Delta Gamma LLC, which also operates this site. It is categorically better data than the sources above, because it sees transactions rather than asks — and it is the one input on this site you cannot check. That is a real limitation and it is stated as one.

  • Every Boltring-derived figure carries a diamond marker in charts and a double dagger in tables, keyed to the line proprietary input — not independently verifiable. The mark is inherited: a derived figure with a Boltring input anywhere upstream keeps the dagger.
  • The curve renders without it. As of this fixing it has not begun exporting, and everything on this site is computed and published without it.
  • k-anonymity. Any bucket with fewer than five participants is suppressed at source and suppressed again on arrival. A suppressed bucket is missing data: never interpolated, never merged into a neighbour, never presented as observed. It renders as an explicit gap.
  • The raw feed is never republished. This site publishes derived aggregates and cites proprietary transaction data with a stated methodology.

Rebalancing fees are not annualised. A rebalance is instantaneous. Annualising an instantaneous fee divides by a tenor of approximately zero and produces a number that is large, precise and meaningless. Clearing prices are published in parts per million per rebalance, by size bucket, on their own axis — they anchor the near end of the curve and they do not extend it.

10 — USD cost against bitcoin

Published rate cards, refreshed weekly, each stored with the URL it came from and the date it was fetched, because these are marketing pages that change without notice and without a changelog. Rates are recorded as quoted and are not adjusted for origination fees, minimums, or the gap between an advertised headline and what a given borrower is actually offered. Every marker in the cost panel is a diamond, because a rate card is an advertisement and not an observed transaction.

A figure enters the published curve only when a second pass has loaded the cited URL and seen the quoted string. That discipline currently admits 2 desks and holds 9, each with its reason listed on sources. It is a thin panel. It is thin because the alternative was a full-looking one containing a quote that turned out not to exist on the page it was attributed to.

11 — t = 0 is not zero

Bitcoin has a storage cost — custody fees, hardware, operational overhead, and a non-zero rate of permanent loss — so its risk-free rate is slightly negative, exactly as gold's is. This site anchors at zero for v1 and says so. A stated simplification is defensible; an unstated one is not. A defensible negative anchor would need an aggregate permanent-loss rate, for which no credible current estimate exists that is not a decade-old chain-analysis extrapolation; an average self-custody cost, which is not observable; and an operational node cost, which varies by two orders of magnitude across operators. The anchor is revisited when there is a defensible estimate, and that will be a new methodology version.

12 — Same-operator disclosure

Delta Gamma LLC operates Sat Rates, Sats per Share, Elliptic Curve, Boltring, ln.watch and ln.university. dlgm.co carries the canonical list. This is disclosed here and not only in the footer, because §9.1 takes a proprietary input from a sibling product. A curve anchored by data from a company you also own is defensible when disclosed and indefensible when discovered. No independence is claimed.

13 — Versioning and citation

The methodology carries a version and it travels with every fixing, so a citation does not silently change meaning. /history/2026-08-28 is the curve as fixed on that date under the version recorded in it, and it does not change when the methodology does. Changing a definition creates a new version; old fixings keep the old one. Every exported chart carries a watermark with the data date, not the export date — an undated curve circulating months later is worse than no curve.

14 — Known limitations

Stated plainly, because a methodology page that lists none is not credible.

  • The implied curve is not a risk-free rate. It is implied by margined instruments at named venues and embeds their credit and funding.
  • Boltring cannot be independently reproduced.
  • The four venues are not read simultaneously. Deribit and OKX are live; CME and Bybit are the previous session's settlement instant. See above for the magnitude and for which comparison is safe.
  • The CME spot leg is a venue index, not the CF Bitcoin Reference Rate, which is not published on the settlement service. That fixes the timing but not the composition.
  • Observed BTC-native data is thin. That thinness is itself the finding the site exists to publish, but it means the observed series is a handful of points and should not be read as a curve.
  • Rate cards are advertisements, and at least one of them contradicts itself across three schedules in a single page load.
  • The zero anchor is a stated simplification.
  • A quoted Magma tenor is a floor, not a term. An open offer publishes the shortest term its seller will accept; the actual term exists only on a filled order.
  • Custody tier assignment is a judgement, recorded once with a citation so that it can be argued with — but a judgement.
  • There is no email list and no API. Both are specified and neither is built; the specification records the omission as deliberate. Nothing on this site collects an address, and there is no JSON endpoint — the computed data lives in the repository.
  • Nothing here is investment advice, a recommendation, or an offer. Full disclaimer.