What
Replace the Node CLI 0G Storage upload path with a browser-side upload using @0glabs/0g-ts-sdk. The encrypted SD-JWT VC ciphertext (AES-256-GCM, IndexedDB key) should leave the user's browser directly to 0G Storage; the Merkle root commits to AgentRegistry.encryptedURI.
Why
v0.5 ships AES-256-GCM browser encryption (A.2) but the 0G Storage upload still runs from a Node CLI behind COMPASS_LIVE_STORAGE=1. v0.6 closes that gap so the user-device-only assumption holds end-to-end.
Acceptance
- Browser uploads ciphertext to 0G Storage via the TS SDK.
- Merkle root committed to
AgentRegistry.encryptedURI on mint.
- The /about reality table "0G Storage ciphertext upload" row flips draft → real.
- E2E test covers the upload path.
Refs
- v0.5 reality-table row:
app/src/app/about/page.tsx (search "0G Storage ciphertext upload")
- v0.5 path:
enclave/src/storage.ts
What
Replace the Node CLI 0G Storage upload path with a browser-side upload using
@0glabs/0g-ts-sdk. The encrypted SD-JWT VC ciphertext (AES-256-GCM, IndexedDB key) should leave the user's browser directly to 0G Storage; the Merkle root commits toAgentRegistry.encryptedURI.Why
v0.5 ships AES-256-GCM browser encryption (A.2) but the 0G Storage upload still runs from a Node CLI behind
COMPASS_LIVE_STORAGE=1. v0.6 closes that gap so the user-device-only assumption holds end-to-end.Acceptance
AgentRegistry.encryptedURIon mint.Refs
app/src/app/about/page.tsx(search "0G Storage ciphertext upload")enclave/src/storage.ts