BITCOIN MACHINE PROTOCOL · TRANSPORT 001

QR codes were built for humans.
SV Codes are built for machines.

A machine-native visual matrix that streams cryptographically signed Bitcoin SV payloads — commands, transactions, SPV proofs — from any screen to any camera. No internet. No pairing. No cloud. One pixel is one bit.

● LIVE — this grid is broadcasting a signed, verifiable payload right now
WHY IT EXISTS

A transaction is just bytes. Bytes travel by light.

▦

One pixel = one bit

No character encoding, no mode headers, no Reed-Solomon baggage from 1994. The payload maps raw binary straight onto a 64×64 grid — 2,704 bits per frame, nothing wasted.

◧

Chromatic anchors

Four solid-color corners — cyan, magenta, yellow, red — found by fast HSV color masking. Identity comes from color, not position, so the grid decodes at any rotation, from any angle.

∴

Rateless fountain stream

Frames are Luby Transform encoded: the receiver catches any sufficient subset, in any order, and the original payload snaps back together. Missed frames don't matter. Glare doesn't matter.

LIVE DEMO — TRANSMITTER

Type something. Watch it become light.

≤ 227 bytes → static print mode · larger → animated fountain stream @ 12 fps
BMP envelope bytes—
Stream bytes (len + CRC32 + pad)—
Source symbols (K × 256-bit)—
CRC-32—
Mode—
Frames broadcast—
scan this grid with the receiver below — it's signed

Envelopes broadcast here are signed by the published test authority (poc/vectors/vectors.json) so scanners show a real verification result. Production deployments use their own authority keys.

LIVE DEMO — RECEIVER

Scan it with your phone

camera off — everything runs locally in this page

Open this page on your phone, start the camera, and point it at a grid — the transmitter above on your laptop screen, or a printed static frame. The full SV-0001 §6 pipeline runs in your browser: color masks → homography → fountain solve → CRC32 → secp256k1 verify. No server, no upload.

RECEIVER PIPELINE

How a machine reads it

Color maskCamera frame → HSV. Threshold four masks against the anchor hue ranges. No anchors, no decode — frame dropped.
CentroidsSpatial moments give sub-pixel anchor centers. Color identity resolves rotation and mirroring.
Perspective warp3×3 homography flattens the skewed grid into a canonical 64×64 head-on image.
Binarize & readSample each cell center, majority-vote, adaptive threshold. 2,704 bits, row-major.
Fountain solveSymbols feed the LT solver in any order until rank K. Stream reassembles; length + CRC32 checked.
Verify & actBMP layer checks the ECDSA signature (L1), the raw transaction (L2), or the SPV proof (L3). Only then: actuate.
TRUST MODEL

Three verification tiers

L1

Signed envelope

Fully offline. The machine checks the envelope's ECDSA signature against its provisioned authority key. Permitted only on physically-local transports — presence substitutes for fees.

L2

Raw transaction

The envelope rides inside an OP_FALSE OP_RETURN of a full BSV transaction. Structural validity checked locally; every command cost the sender a real fee.

L3

Full SPV proof

Transaction plus BEEF / Atomic BEEF evidence. Merkle inclusion verified against locally held block headers. Anchored to the chain itself — the economic firewall at full strength.

SPECIFICATIONS

The protocol documents

ROADMAP

What exists today

✓ COMPLETE

1 · Protocol

BMP-0000 and SV-0001 — Stable after two independent decoders (Python + this page's JS) passed the golden test vectors.

✓ COMPLETE

2 · Website

This page — live transmitter and camera receiver implementing the exact wire format.

✓ COMPLETE

3 · Reference PoC

Python package: signed envelopes, fountain codec, OpenCV decoder, webcam scanner, golden vectors. 13 tests passing.

✓ COMPLETE

4 · Browser decoder

The in-page scanner above — the second independent decoder that graduated the specs. Next: on-chain anchoring (L2) and the BMP-BLE transport.