Today we are releasing our last blog post of the year, wishing you a merry Christmas and happy holidays! Our last technical post for 2025 is centered on LS3, xANS-104 and provenance intersection at the agent level - we’re shipping the chronological provenance audit feature for LS3 dataitems!
What Load S3 fixes that vanilla S3 can’t
We’ve written before about how S3 is a sensible and battle-tested storage default that’s popular with millions of developers… but it has missing features that the properties of blockchains and cryptography patch.
Vanilla S3 does not provide content integrity guarantees, cryptographic ownership, or tamper-proof suitable timestamps. We fixed ownership and content integrity by adopting ANS-104 DataItems as the default format for s3-agent, and now are adding chronological provenance via Arweave-anchored timestamps.
Circling back to the v0.9.0 release:
In today’s release, we introduced a simple optional field to the agent’s upload endpoint - offchain_provenance, if set to true, the agent will publish to Arweave the ID of the LS3 dataitem in the same upload process. Now Arweave (auditable public datalake) is aware of when you have created the public/private offchain LS3 dataitem, without revealing its content, owner or any other metadata.
The deterministic ID of the ANS-104 dataitem across permanent and offchain layers is proof that you have created an offchain dataitem, and it confirms (think of sealed timestamp provenance) once you anchor the offchain dataitem to Arweave.
With that simple feature, LS3 xANS-104 dataitems uploaded to Load S3 via the s3 agent have the optionality to publish a timestamped proof: a receipt that an offchain dataitems has been created, and it may be anchored to Arweave at some point in the future.
This solves the black box nature of S3 with the exact tools that were built for the job and are adjacent to the Load stack. Now, S3 DataItems can have full onchain provenance while staying flexible within the xANS-104 paradigm – the content object remains either deletable or anchorable to Arweave with the same ID on both layers.
LS3 with auditable provenance’s timestamp
With today’s release (0.9.9) we are extending the v0.9.0 feature by introducing the /provenance/{ls3_dataitem_id} method: returns a timestamps receipt for the offchain dataitem’s provenance:
- When it was “first seen” on Arweave - as ID publishing
- When it was anchored to Arweave - dataitem -data- settlement
In this query we got two important chronological events:
- The Arweave blockheight and timestamp of when the offchain dataitem was created (
proof_block) - The Arweave blockheight and timestamp of when the offchain dataitem was settled on Arweave (onchain settlement)
With those events, LS3 users have complete audits of the lifecycle of their S3 objects: permanent, tamper-proof, verifiable receipts. For more details and usage guide, check the agent docs.
Conclusion
Today’s release, despite being technically simple, is a powerful tool to audit the lifecycle of an offchain dataitem, and powers the S3 objects with a feature it lacks: permanent receipts for tamper-proof auditability.
On the non-technical side, we wish you happy holidays!
The Load team is loaded for 2026, LFG!
