Keep the three fields needed to retrieve a Celestia blob

A payment transaction hash identifies a transaction. To fetch one regular blob later, a rollup also needs the height, namespace and blob commitment.

Build a receipt per blob

Suppose a submission contains batches A and B in one namespace. Keep two receipt rows with the same height and different commitments. Record the network and the byte encoding used by your client. On readback, pass B's tuple to blob.Get and compare the returned bytes with the original encoded batch B.

receipt: height H, namespace N, commitment C
read: blob.Get(H, N, C)

Diagnose an empty lookup

Check the submission network, the inclusion height and the exact namespace bytes before treating a miss as data loss. A local submission timestamp cannot substitute for block height. Historical retrieval additionally depends on access to a peer or archive that retains the data.

Sources