Pearlascope · study notes← Back to Pearlascope
Pearl (PEARL), uni level

The maths behind Pearl

Four bits of maths run the whole chain: a hyperbola for supply, a lottery for blocks, a ratio for your income, and a matrix trick for useful work. Each one comes from the Pearl source code, and every Pearlascope number is recomputed below from live data, with a link to where it sits on the site.

Block height (implied)—
Difficulty—
Supply mined—
Data as of—
01 · Supply

The emission curve: a telescoping sum

Bitcoin pays 50 BTC per block and halves every 210,000 blocks, so its supply is a geometric series: \(21\text{M} = 210{,}000 \times 50 \times \sum_{k\ge0} 2^{-k}\). Pearl drops the halvings. The block reward in validate.go → CalcBlockSubsidy is:

$$r(h) = \frac{S\,K}{(h+K)(h-1+K)}, \qquad S = 2.1\times10^{9}, \quad K = \frac{4 \cdot 365 \cdot 86400}{194} = 650{,}226$$

Look at \(K\): it's the number of 194-second blocks in four years. Now split the fraction into partial fractions, \(\frac{K}{(h-1+K)(h+K)} = K\left(\frac{1}{h-1+K} - \frac{1}{h+K}\right)\), and add up every block from 1 to \(H\). Almost everything cancels (that's a telescoping sum):

$$\text{Supply}(H) = \sum_{h=1}^{H} r(h) = S\,K\left(\frac{1}{K} - \frac{1}{H+K}\right) = \frac{S\,H}{H+K}$$

That's a hyperbola (the same shape as Michaelis–Menten in biology). Three things fall out of it:

Dilution in closed form

Let \(B = 365 \cdot 86400/194 \approx 162{,}556\) be a year of blocks. The supply growth over the next year is:

$$g(h) = \frac{\text{Supply}(h+B)}{\text{Supply}(h)} - 1 = \frac{B\,K}{h\,(h+B+K)}$$

At today's height that's —. The \(h\) in the denominator is why the early years are brutal: the chain is only about six months old, so the supply is still small next to what's coming.

On Pearlascope: The dilution wallHero: Minted per dayValuation ladder: supply in 12 months
Exercise: when does Pearl's yearly inflation drop under Bitcoin's ~0.8%?
Solve \(\frac{BK}{h(h+B+K)} = 0.008\) for \(h\). It's a quadratic, \(h^2 + (B+K)h - BK/0.008 = 0\), so \(h \approx 3.2\text{M}\) blocks, about 20 years after launch. Pearl has more inflation than Bitcoin for a long time, but it never stops falling.
02 · The lottery

Difficulty, hashrate and the 248

Mining is a lottery. Each attempt produces a 256-bit number, and you win if it's below a target. If attempts behave like uniform random draws, one attempt wins with probability \(p = \text{target}/2^{256}\), so the expected number of attempts per block is \(1/p\).

Difficulty is just the target turned upside down: \(D = T_1/\text{target}\), where \(T_1\) is the easiest target the chain allows. Pearl's mainnet sets PowLimitBits = 0x1b00ffff, which decodes to \(T_1 = \texttt{0xffff}\cdot 2^{8(\texttt{0x1b}-3)} = 65535 \cdot 2^{192}\). So:

$$\mathbb{E}[\text{attempts per block}] = \frac{2^{256}}{\text{target}} = D\cdot\frac{2^{256}}{65535\cdot2^{192}} = D\cdot\frac{2^{64}}{65535} \approx D\cdot 2^{48}$$

Bitcoin uses 0x1d00ffff and gets \(D\cdot 2^{32}\). Same structure, two bytes over, so a Pearl "attempt" is a unit \(2^{16}\) times finer. (That's also why HeroMiners quotes a difficulty \(2^{16}\) times bigger than the chain's: different unit, same number.) prlstats publishes the exact factor as work_per_diff = 281,479,271,743,489, which is \(2^{64}/65535\) to the digit.

From difficulty to hashrate

Blocks target one every \(T = 194\) s. If the chain is on schedule, network hashrate is attempts per block divided by seconds per block:

$$\hat{H}_{\text{net}} = \frac{D \cdot 2^{48}}{T}$$

With D = —, that's —

Hashrate itself can't be observed. You only see blocks arrive. Block arrivals are a Poisson process, so if you count \(n\) blocks over time \(t\), the estimate \(\hat H = n D 2^{48}/t\) carries a relative error of about \(1/\sqrt{n}\). That's why the three numbers you'll see for Pearl's hashrate disagree:

Difficulty at 194 s target—
Last 24h of blocks (—, ±—)—
Explorer, last 50 blocks (±14%)—

The explorer's 50-block window is the noisiest by far. Pearlascope uses the difficulty-implied number because it matches the 194-second schedule the daily mint is also computed on, so the calculator's inputs are consistent with each other.

How difficulty catches up

Pearl retargets every block with a WTEMA filter (weighted-target exponential moving average). In its standard form, each block nudges the target by its own solve time \(t\):

$$\text{target}_{n+1} = \text{target}_n\left(1 + C\left(\frac{t}{T} - 1\right)\right), \qquad C = \frac{T}{\text{half-life}} = \frac{194}{604{,}800} \approx \frac{1}{3118}$$

A fast block (\(t < T\)) lowers the target a hair, which raises difficulty. With a one-week constant, a sudden jump in hashrate shows up as blocks arriving early for days before difficulty fully absorbs it. That's happening right now: —.

On Pearlascope: Calculator, "EH/s, from difficulty"Hashrate chart
Exercise: how sure can you be about the hashrate after one day?
About 445 blocks a day gives \(1/\sqrt{445} \approx 4.7\%\) relative error at one standard deviation. To get under 1% you need \(n \ge 10{,}000\) blocks, which is about 22 days. By then the hashrate has moved, so a hashrate figure is always a blurry photo.
03 · Your slice

Miner economics: income, luck and payback

If your card makes \(H\) attempts a second, your expected share of blocks is \(H/H_{\text{net}}\). Multiply by the reward and by blocks per day, \(86400/T\), and watch \(T\) cancel:

$$\text{PEARL/day} = \frac{H}{D\cdot 2^{48}/T}\cdot r(h)\cdot\frac{86400}{T} = \frac{H \cdot r(h)\cdot 86400}{D\cdot 2^{48}}$$

Your income depends only on your speed, the reward and the difficulty, not on the block time. An RTX 4090 at 305 TH/s earns — PEARL a day (before pool fees).

Cost to make one coin

$$\text{\$ per PEARL} = \frac{\text{watts}\times 24 \times \text{\$/kWh}}{1000 \times \text{PEARL/day}}$$

For the 4090 at $0.08 to $0.15 per kWh, that's — per PEARL. This is the "gaming card" floor in the thesis.

Luck: why everyone joins a pool

Solo, you win blocks at Poisson rate \(\lambda = (H/H_{\text{net}})\cdot 445\) per day. For one 4090 that's a block every — on average, and only a — chance of winning anything in a month: \(1-e^{-30\lambda}\). A pool swaps that lottery for a steady trickle at the same expected value, minus a fee.

Payback when the reward keeps shrinking

Hold the network hashrate flat. The reward decays as \(r(t) = r_0\left(\frac{h_0}{h_0 + \beta t}\right)^2\), where \(h_0 = h+K\) and \(\beta \approx 445\) blocks a day. Integrate to get the total coins mined by day \(t\):

$$\int_0^t r(s)\,ds = \frac{r_0\,h_0\,t}{h_0 + \beta t} \;\xrightarrow{\;t\to\infty\;}\; \frac{r_0\,h_0}{\beta}$$

So a card has a lifetime ceiling even before anyone else joins. For a 4090 at flat network hashrate that's about — PEARL, ever. Payback is the first \(t\) where cumulative PEARL × price − cumulative power cost ≥ card price. Pearlascope solves it day by day, and it also stops if the daily reward falls under the power bill.

Big caveat: in practice the network hashrate doesn't stay flat. If it doubles, your share halves. The Pearlascope payback assumes difficulty is frozen, so treat it as a best case.

On Pearlascope: Mining calculatorPayback chartThe gap FP8 has to close
Exercise: an H100 rents for $1.63/hr. What does one PEARL cost to make on it?
At 735 TH/s it mines \(735/305 \approx 2.41\times\) a 4090, so about — PEARL a day. Renting costs $1.63 × 24 = $39.12 a day, so it's — per PEARL. That's above today's price, which is the whole "AI servers don't mine" problem.
04 · Useful work

Proof of useful work: the matrix trick

The founding paper (arXiv 2504.09971) asks a hard question: can mining be a real computation, chosen by the miner, with almost no extra cost? Its answer is matrix multiplication, the core operation of AI, with \(1+o(1)\) overhead.

Here's the problem the paper solves. If miners pick their own matrices \(A, B\), a cheater picks easy ones (zeros, repeats) and wins the lottery cheaply. The fix is to add random low-rank noise, derived from the block, so every product looks random. Take \(E = UV^{\top}\) and \(F = PQ^{\top}\) with rank \(r \ll n\):

$$(A+E)(B+F) = AB + AF + EB + EF$$

The miner multiplies the noisy matrices (about \(n^3\) work, the same as the job itself), hashes pieces of the computation as lottery tickets, and then recovers the real answer:

$$AB = (A+E)(B+F) - A\,P\,Q^{\top} - U\,(V^{\top}(B+F))$$

Every correction term is a product with a thin \(n\times r\) matrix, so it costs \(O(n^2 r)\). The overhead ratio is:

$$\frac{n^3 + O(n^2 r)}{n^3} = 1 + O\!\left(\frac{r}{n}\right) \to 1$$

For big AI matrices that's close to free. The paper conjectures security by reducing it to solving a batch of low-rank random linear equations. You can see the parameter in the live code: the RankPenaltyForkHeight rule requires a proof's noise rank to meet a minimum, and scales the jackpot bound with it.

Why FP8 is hard: floats don't add like numbers

The lottery hashes intermediate results, so a verifier must reproduce them bit for bit. Floating-point addition isn't associative. FP8 (E4M3) has 3 mantissa bits, so between 16 and 32 it can only store every second integer. Watch:

$$(16 + 1) + 1 = 16 + 1 = 16 \qquad\text{but}\qquad 16 + (1 + 1) = 18$$

(17 is exactly halfway between 16 and 18, and round-to-nearest-even picks 16.) Different GPUs add in different orders, with different accumulator widths, so they get different bits. That's why the FP8 proposal is tied to specific architectures (Hopper and Blackwell) and has miners declare their hardware, and why older chips without matching FP8 behaviour fall out.

On Pearlascope: Thesis, "The fix: FP8"Useful Work Watch
05 · Price arithmetic

Valuation: always divide by the right supply

Market cap = price × circulating supply. FDV = price × 2.1B. Because supply grows — in a year, a market-cap target has to be divided by next year's supply, not today's:

$$P_{\text{target}} = \frac{\text{cap}}{\text{Supply}_{\text{now}}\,(1+g)}$$

Same cap, fewer dollars per coin. That's dilution in one line. Pearlascope's bear, base and bull prices (—) are exactly this division. One more number shows the pressure on price: each day's new coins are worth — of a day's trading volume.

On Pearlascope: Bear / Base / Bull cardsWhere the price could land
06 · Audit

Every Pearlascope number, recomputed

Recomputed in your browser from data.json (the same file the site reads) using the formulas above, so this table re-checks itself on every refresh.

Number on the siteWhereFormulaSite showsRecomputed

What the audit found

  1. All the maths matches Pearl's source code. The emission constant, reward, daily mint, dilution curve, difficulty factor, and per-coin targets all reproduce to rounding.
  2. Independent cross-check on supply. The formula at block — gives —. CoinGecko reports —. Two unrelated sources agree to within about 17 blocks, so the emission curve is right.
  3. Blocks are running fast. — So miners are earning a bit more than the calculator shows today. It's temporary, until the WTEMA filter catches up.
  4. Payback is a best case. It holds the network hashrate flat. Worth adding a "network growth" slider so you can see the range.
  5. The AI-server cost in the gap chart is, if anything, generous. Blockworks says $1.33–3.15 per PEARL. Pricing an H100 at prlstats spot rent gives —, so the "AI servers don't mine today" point is stronger than the chart shows.
  6. The "16x since day 1" line. On Pearlascope's series, hashrate is up — since the first recorded day (May 2, five days after the 27 April mainnet). 16x doesn't match day 1. It's closer to the multiple since mid-May.

Sources: Pearl node source (node/blockchain/validate.go CalcBlockSubsidy, chaincfg/params.go mainnet params), prlstats.com /api/status, prlscan, CoinGecko pearl-2, Blockworks Research, arXiv 2504.09971. Not financial advice.