Build1 distinct publisher3 min readUpdated
A live demo replaces API keys, Stripe and a dashboard with one question per call: pay 10 sats or grind a SHA-256 puzzle. The arithmetic is better than the advertised timing suggests.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A developer publishing as zekebuilds has put a working per-request toll booth on the open internet at gate.powforge.dev, where every call is priced in one of two currencies: a SHA-256 proof-of-work solution, or 10 sats settled over Lightning [1][4][7]. The interesting part is not the crypto plumbing, it is the deletion: no signup, no email, no key to store, no rate-limit table to maintain [11].
The argument in the post is an operator's argument. The standard answer to scrapers hitting an endpoint a thousand times a minute is API keys, a signup flow, a Stripe integration, a dashboard, and a support inbox for people who lost their key [3][2]. All of that exists to answer one question: did this caller give up something real [2].
The mechanics are small enough to audit. A GET to /api/challenge returns a fresh nonce and a difficulty, 20 in the published example [5]. Difficulty 20 means the caller must find a string whose SHA-256, appended to the nonce, begins with 20 leading zero bits, and there is no shortcut but grinding candidates [6]. The solver is about twenty lines of Node with no dependencies [14]. Server-side verification is the same hash test run once, O(1) no matter how long the caller ground [10]. Post the solution to /api/solve and you get a token, a method field, and the gated content [9]. In a browser the loop goes in a Web Worker [12]. Callers who would rather not spin a fan take the Lightning path, which the post says speaks L402, though the material supplied cuts off mid-sentence there [13].
Now the numbers, because the headline timing is a lucky draw. The published run found a solution in 113,275 attempts and 1,277 milliseconds on one core [8]. That is roughly 88,700 hashes per second [15]. But difficulty 20 has an expected cost of 2^20, or 1,048,576 attempts [16], so that run took about nine times fewer attempts than average [17]. At the same hash rate, the mean call costs closer to 11.8 seconds of one core, not 1.3 [18].
That is bad news for the demo and good news for the defence. A million calls at the mean is about 11.8 million CPU-seconds, roughly 137 core-days [19]. The sats path prices the same volume at about $1 per thousand calls and $1,000 per million [20], and a scraper running at the thousand-a-minute rate cited in the post would be spending about $1 a minute, or $60 an hour, to keep doing it [21]. Either way the cost curve bends against the abuser and the operator's verification cost stays flat [10].
What the scheme gives up is identity. There is no caller to revoke, no quota to grant a partner, no audit trail to hand a customer who asks why their bill moved. The post shows a token coming back in the solve response but, in the material supplied, does not state its lifetime, its scope, or whether it can be replayed [22]. That is the load-bearing detail for anyone considering this in production: a per-request price that mints a reusable token is not a per-request price.
Watch for whether difficulty is tuned per caller or per route, and for the L402 half of the story, which is where refunds, retries and wallet failure modes live.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
For callers who do not want to burn CPU, the post says the gate speaks L402, described as HTTP-native Lightning; the supplied text cuts off mid-sentence at that point.
A dev.to post by zekebuilds, titled "Paywall Any API Endpoint With Two Prices: Sats or Compute", walks the scheme end to end against a live server at gate.powforge.dev, and states that every number and response shown came off a real request.
The post describes the usual anti-abuse fix as API keys, a signup flow, a Stripe integration, a dashboard and a support inbox for people who lost their key, and calls it a lot of plumbing to answer one question: did this caller give up something real to reach me?
The post frames the problem as bots hammering an endpoint a thousand times a minute, running up the operator's compute bill and giving nothing back.
The gate hands the caller a choice for every request: solve a SHA-256 partial collision (paying in CPU and electricity), or settle a Lightning invoice (paying in money). Both paths return the gated response.
A GET to https://gate.powforge.dev/api/challenge returns a fresh nonce and a difficulty; the published example returned difficulty 20.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Reproducible code and traces, single self-reported source
The mechanism is documented at an unusually verifiable level for a self-published post: full client solver, full server verifier, raw challenge and solve JSON, and a live 402 response with macaroon and invoice, all against a named endpoint readers can hit. But there is exactly one source, it is the operator of the demo describing his own service, no independent party has reproduced the run, and the one performance figure offered is a single sample that its own arithmetic shows to be about nine times better than average.
Author's own demo endpoint only
The only observed deployment is the author's own gate at gate.powforge.dev, plus its disclosed 10-sat price. No third-party integration, downstream user, library release, install count or other operator adopting the pattern appears anywhere in the supplied material, so adoption is effectively a single self-run demo.
Mechanism as described; showcased timing flatters the caller experience
Slightly overstated overall. The core technical claims hold up on their face and are checkable from published code: the asymmetry is real, verification is one hash, and the two-price choice is demonstrated end to end. The overstatement is narrow but material: the headline caller experience of one and a third seconds is a lucky sample against an ~11.8-second expected solve, and the 'no plumbing' claim is asserted while the token semantics that would make per-request charging real go unstated. Notably, the anti-abuse economics run the other way and are understated: at the post's own figures a million calls is about 137 core-days or roughly $1,000, which argues the deterrent is stronger than advertised.
Author promoting a scheme running on his own domain
The single source is a self-published developer-platform post whose author demonstrates a gate on his own powforge.dev infrastructure, with the gated payload consisting of Bitcoin advocacy strings and the payment path built on Lightning and L402. The author therefore has a clear promotional interest in the pattern and its ecosystem, and no editorial, independent or adversarial voice appears in the cluster to offset it. Incentive strength is inferred from the source's own byline, domain, framing of the alternatives and content, not from any disclosed commercial relationship.
Mechanism claims solid, generalization untested
Confidence is moderate. What the scheme does is documented in code and raw HTTP traces and the corrective arithmetic is deterministic, so the descriptive and derived claims are reliable. What remains uncertain is everything about behaviour beyond the demo: no independent replication, no second publisher, unspecified token lifetime and difficulty policy, and no evidence of anyone else running the pattern in production.
build
The npm audit that works because it never installs the package1 distinct publisher
build
OpenAI-compatible image APIs normalize transport, not fallback routing1 distinct publisher
build
A GAN beauty filter is a device budget allocation, not a feature toggle1 distinct publisher
build
Every viewer hits your HLS key endpoint in the same second, and almost nobody tests it1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 15, 2026