OPERATIONAL anchoring on mainnet · 0 anchors this hour (0/1000 all services) no issues in 18h 43m report a problem

📸 Notarized capture

A PNG or PDF of a live page, delivered to you with an on-chain receipt committing to the exact file. "This is what that page looked like, and here is the chain saying when" — the thing evidence, compliance and dispute workflows actually need.

API-only and paid (first few calls free — see pay-per-call). Pay per call: attach the payment as a PAYMENT-SIGNATURE header (x402, one round trip), or POST once with no payment to get a 402 invoice:

curl -X POST https://bsv.cx/shot -H "payment-signature: <x402 payment>" \
  -H 'content-type: application/json' \
  -d '{"url":"https://example.com","format":"pdf"}'
price💳 paid 400 sat per call — see pay-per-call
formatspng (default) or pdf — paginated A4, the format archives expect
on-chainOP_RETURN bsv.cx shot1 <manifestHash>

How this differs from the archiver

The web-page archiver is free and public: it captures pages into a gallery anyone can browse. This is a product — a file delivered to you, plus a receipt you can show a third party. Use the archiver to make something publicly citable; use this when you need the file and the proof in your own hands.

Endpoints

POST /shot💳 paid { url, format?, thorough? }
GET /shot/:hashthe proof record — free
GET /shot/:hash/manifestthe exact bytes that hash to the receipt id — free
GET /shot/:hash/imagethe exact file delivered — free
curl -X POST https://bsv.cx/shot -H "payment-signature: <x402 payment>" \
  -H 'content-type: application/json' \
  -d '{"url":"https://example.com","format":"pdf"}'

The manifest records the format actually produced, not the one requested — an oversized PNG is degraded to JPEG, and a manifest that misdescribed the file would be a broken proof.

And you don't have to trust an explorer for this, either. bsv.cx runs its own block-headers service, syncing the chain's headers directly over the BSV peer-to-peer network. For every anchor it recomputes the transaction's block Merkle root from an SPV proof and confirms it against those headers before publishing the proof on the record. Look for the green "✓ Independently verified against bsv.cx's own block headers" line on any proof page, open it, and recheck the same proof against any header source you trust — no explorer, and no bsv.cx, in the trust path.

← back to bsv.cx