ordspv
Trustless resolution of Bitcoin ordinals inscription content.
An ord:<id> URI resolves to bytes verified
against Bitcoin proof of work, with no trusted ord server. It works the
way ipfs://<cid> does, except the check is
an SPV proof. Inscription content lives in the reveal transaction's
witness, which the txid does not commit to, so "the txid matched" proves
nothing about the bytes. This project specifies the URI scheme profile
and a verification protocol that binds inscription bytes to Bitcoin proof
of work. A verified-fetch client library and a reference gateway
implement both.
Verification levels
- L0
- Trusted gateway: a plain fetch from a server you chose to believe.
Availability only; nothing about the bytes is verified.
- L1
- Integrity pin: a #integrity= sha256 over the
stored body bytes, checkable with zero Bitcoin infrastructure.
- L2
- Tapscript commitment (BIP-341): the reveal
input named by the txid points at a commit output whose taproot key
must commit to the served envelope script. The proof is about
0.9 KB and available from any esplora instance.
- L3
- Witness commitment (BIP-141): the coinbase
commitment pins the exact reveal witness bytes through the wtxid
tree, the same check a full node enforces.
Start here
-
Fetch and verify inscription 0 client-side in your
browser, from the PoW-checked header through merkle inclusion to the
BIP-341 commitment.
-
An ERC-721 token whose image is a Bitcoin inscription:
the ord: URI and integrity pin come out of the
token's own metadata, and your browser resolves and verifies the image
against Bitcoin proof of work.
-
Generated documentation for
@ordspv/core (zero-IO primitives and proof
verification) and @ordspv/fetch (the
verified resolver, plus the node-only
/headersync subpath).
-
Specifications
-
@ordspv/core,
@ordspv/fetch,
@ordspv/gateway,
@ordspv/cli,
@ordspv/proof-sidecar
-
Code, specs, research notes, and the roadmap.