Data Flow Diagram

How your data moves through our system during watermarking and verification.

Watermark Embedding (Protect)

1

Your Browser

You select an image. It is read into browser memory and sent via an encrypted HTTPS connection.

Data: image bytes
2

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.

Data: image bytes (in memory)Generated: Watermark ID

Retention: image bytes zeroed after forwarding. Not saved to disk.

3

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.

Data: image tensors (GPU memory)Output: watermarked image

Retention: tensors deleted + gc.collect() after response. Not saved to disk.

4

Response to Browser

The watermarked image is returned to your browser. You download it locally. All server-side image data is discarded.

Data: watermarked image (returned to you)

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.

1

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.

Data: video bytes → Cloud Storage (direct upload)
2

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.

Data: video bytes (in memory during processing)Output: watermarked video → Cloud Storage
3

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.

Data: watermarked video (returned to you)

Retention: Cloud Storage files auto-deleted within 24 hours.

Blockchain Registration (Optional)

5

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.

On-chain: wallet addressOn-chain: Watermark IDOn-chain: timestamp

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

StageDataRetention
BrowserImage or video fileLocal only (your device)
Cloud Storage (video only)Video bytesTemporary (auto-deleted within 24 hours)
API ServerImage bytesIn memory during processing, then zeroed
GPU ServiceImage tensorsGPU memory during processing, then cleared
BlockchainWallet address, Watermark IDPermanent (only if you register)