📸 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"}'png (default) or pdf — paginated A4, the format archives expectOP_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
{ url, format?, thorough? }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.