⚡ nft.sale

The Blockchain Battery v1.0 — the source, on chain, Apache-2.0

The Blockchain Battery v1.0 — the source, on chain, Apache-2.0

Value sits still on chain. Ownership moves at the speed of light.

This is a design paper for anchor transfers — handing a covenant from one
wallet to the next by signing it forward, while the value it carries stays
locked at an anchor point on chain. A transfer is a signature handed over: no
block, no confirmation, no consensus round. Taipei to London in 48 milliseconds
against 600,000 for a block, and the only remaining term is physics.

It did not begin as a theory about money. It began as a game. grafverse needs
items that move — a painted object handed between players, an inventory that
travels between worlds, an asset acquired on the far side of a gate — and a fee
per transfer kills every one of those. A game that charges you to hand someone a
sword is not free, whatever the download costs. Three requirements collided:
genuinely owned, moves for nothing, always redeemable. It turns out that is a
description of cash.

Any current holder can return the covenant to its anchor and spend normally
again — unilaterally, needing nobody's permission. And the covenant IS the
token: no token layer, no indexer, no registry. Genesis txid is the asset id,
the rules are the script, and the script reads back through a decompiler, so a
buyer decompiles what they are buying instead of trusting a metadata server.
Transfers cost nothing; finality is bought per transfer, only when the value
justifies it. That is why it scales — no participant ever verifies anyone
else's assets, so there is no aggregate to bottleneck. Cash is denominated, not
divisible: nobody cuts a note in half, and neither does this.

v0.1 is design, not deployment. Nothing is built, and the paper names the three
problems it has not solved — finding the tip at scale, a seller exiting
mid-sale, and how often the anchor must advance. It is published this way on
purpose: a timestamped disclosure is prior art, which is what actually protects
an idea, while a licence only governs the text.

A covenant with no key.

It pays its own fee out of its own value. It counts its own state. It rebuilds itself on every spend, with the same script and the counter advanced by one. No signature, no owner, nobody to ask — the authorisation is the transaction itself, checked by the script against a public constant. It has been running on mainnet since August 2026 and anybody has always been able to watch it.

This is its source. Eighteen files: the covenant, the transaction builder, the OP_PUSH_TX preimage handling it is built on, the command-line tool that mints and drives it, the tests, the runbook, and the live demonstration page.

Publishing it permanently means the thing you can watch running is the thing you can read. A covenant you can only observe is a black box; a covenant you can read is a claim you can check — and this one makes a specific claim worth checking: the value rule is a floor, not a cap. out >= V - MAX_FEE. Bounded on the way out, unbounded on the way in, which is why it can always be recharged.

Start at tools/BATTERY.md. It carries the constants and the list of things that have already gone wrong, which is more useful on a first pass than the code.

@bsv/sdk is a declared dependency, not a bundled one. The TypeScript here imports it; it does not contain it. Open BSV clause 2 attaches to your use of that SDK — not to this code, which is Apache-2.0 and may be used anywhere, on any chain or none. Attribution is a condition, not a courtesy.

See it live & get a copy →