Assemble a proof bundle for an inscription from any proof backend.
Everything fetched here is UNTRUSTED input; the caller verifies the bundle
with verifyProofBundle afterwards; nothing here is trusted for soundness,
only availability. The JSON-served answers the bundle carries in checked
positions (the height and the block hash, and on L2 the txCount, the
position and the branch) are validated here as well: a backend serving
values the verifier would refuse fails its own attempt, under a message
naming the answer, so every rotating caller records the cause and asks the
next backend instead of dying at verification with the defect blamed on
the bundle. The header and every transaction come from text endpoints,
strings by transport, and their contents stay verification's job.
L2 cost: 4 small requests (reveal hex, merkle proof, header, block info)
+ 1 for the commit tx.
L3 cost: 2 requests, one of which is the full raw block (~1-2 MB typical),
from which both merkle branches and the coinbase are derived.
Assemble a proof bundle for an inscription from any proof backend. Everything fetched here is UNTRUSTED input; the caller verifies the bundle with
verifyProofBundleafterwards; nothing here is trusted for soundness, only availability. The JSON-served answers the bundle carries in checked positions (the height and the block hash, and on L2 the txCount, the position and the branch) are validated here as well: a backend serving values the verifier would refuse fails its own attempt, under a message naming the answer, so every rotating caller records the cause and asks the next backend instead of dying at verification with the defect blamed on the bundle. The header and every transaction come from text endpoints, strings by transport, and their contents stay verification's job.L2 cost: 4 small requests (reveal hex, merkle proof, header, block info) + 1 for the commit tx. L3 cost: 2 requests, one of which is the full raw block (~1-2 MB typical), from which both merkle branches and the coinbase are derived.