Data Flow Diagram
How your data moves through our system during watermarking and verification.
Watermark Embedding (Protect)
Your Browser
You select an image. It is read into browser memory and sent via an encrypted HTTPS connection.
Next.js API Server
The image is held in memory. A SHA-256 hash is computed to generate a unique Watermark ID. The image is forwarded to the GPU service.
Retention: image bytes zeroed after forwarding. Not saved to disk.
WAM GPU Service
The image is resized to 256x256, the neural watermark is embedded, and the result is upscaled back to the original resolution. Image tensors are cleared from GPU memory after processing.
Retention: tensors deleted + gc.collect() after response. Not saved to disk.
Response to Browser
The watermarked image is returned to your browser. You download it locally. All server-side image data is discarded.
Retention: nothing retained on server after response.
Video Watermark Embedding (Protect)
Video watermarking uses temporary Cloud Storage because video files are too large to hold entirely in server memory.
Your Browser
You select a video. Your browser requests a time-limited upload URL from our API server and uploads the video directly to Google Cloud Storage. The video does not pass through our API server.
API Server + GPU Processing
Our API server downloads the video from Cloud Storage, forwards it to the GPU service for frame-by-frame watermark embedding, and uploads the watermarked result back to Cloud Storage.
Download + Cleanup
Your browser downloads the watermarked video from Cloud Storage using a time-limited URL. Both the original and watermarked video files are deleted from Cloud Storage immediately after download, and automatically within 24 hours by a lifecycle policy.
Retention: Cloud Storage files auto-deleted within 24 hours.
Blockchain Registration (Optional)
On-Chain Registration
If you choose to register, your wallet address and Watermark ID are recorded on the Base blockchain via a smart contract transaction signed in your browser.
Retention: permanent and immutable. No image data is stored on-chain.
Watermark Verification (Verify)
Verification follows the same path as embedding (steps 1-3) but in reverse: the GPU service detects the watermark instead of embedding one. The image is processed in memory, the Watermark ID is extracted, and a verification result is returned. No image data is retained.
Data Retention Summary
| Stage | Data | Retention |
|---|---|---|
| Browser | Image or video file | Local only (your device) |
| Cloud Storage (video only) | Video bytes | Temporary (auto-deleted within 24 hours) |
| API Server | Image bytes | In memory during processing, then zeroed |
| GPU Service | Image tensors | GPU memory during processing, then cleared |
| Blockchain | Wallet address, Watermark ID | Permanent (only if you register) |