Frequently Asked Questions
← Back to Add Content

βš–οΈ Wallflower vs. TAMS (Time-Addressable Media Store): The Gateway-Store Relationship

Wallflower is the TAMS Ingestion Gatewayβ€”it handles the real-time, client-facing problems that TAMS delegates to the client ecosystem.

Feature TAMS Specification (The Store) Wallflower Specification (The Gateway) Relationship
Primary Goal Immutable storage, unique addressing, copy-on-write referencing. Authoritative Wall-Clock Timecode (WCT) stamping, low-latency sync, two-phase submission. Complementary: Wallflower creates the high-integrity data that TAMS stores.
Transport Protocol HTTP/S (REST API calls for metadata and segment URLs). WebSocket over TLS (Planned migration to WebTransport/QUIC). Translator: Wallflower handles the real-time WSS (or future QUIC) connection to the client and translates the session data into TAMS-compatible HTTP API calls.
Time Model Time-addressable Flow segments defined by a nanosecond-precision timeline (Flow timeline). Provides Authoritative Server WCT via a WebSocket heartbeat and estimates client clock Offset. WCT Anchor: Wallflower establishes the reliable WCT, which is the necessary anchor point for registering the Flow segments in TAMS.
Submission Model Assumes the client can post fully-formed, segmented media data (Flow Segments) via PUT to S3 URLs. Implements a Two-Phase Submission to lock the WCT at the moment of creation (POST /claim-submission) independent of the slow upload. Gap Filler: Wallflower solves unreliable internet uploads by decoupling WCT from upload duration, a capability TAMS leaves to clients.
Data Handling Uses Flows and Grains (frames) as atomic units. Segments are media chunks. Stores a SubmissionRecord with serverWCT and clientMonotonicTs. Uses R2 for video blob storage. Pre-Flow Metadata: Wallflower provides the metadata (WCT, offset, client IP) required before a Flow can be registered into TAMS. R2 acts as the underlying essence storage, mapping to TAMS's model of delegating storage to a cloud service.
Source Verification Focuses on immutability of the stored reference (UUID and timerange). Tracks the clientIp and locks the WCT at the point of claim. Provenance Enabler: Wallflower captures the required real-time telemetry (time, source IP) to hash submissions into the Wallflower Provenance Ledger (WPL), an internal SHA-256 hash chain for content provenance.

πŸ’‘ Conclusion: Wallflower is the "TAMS Ingestion Engine"

Wallflower is not a competitor to TAMS; it is the missing front-end component required to utilize TAMS effectively for mass-scale, unsynchronized consumer devices:

  1. Bridging the Client Gap: Wallflower provides the necessary WebSocket (and future WebTransport) client SDK and server orchestration (Durable Object) to manage the session state and time sync complexity that TAMS intentionally ignores.
  2. Enforcing Timing Integrity: The Two-Phase Submission guarantees that the time stamp is accurate to the fan's experience, even when upload speeds are poor. This enables synchronization of the reaction with the "Game Book" data.
  3. TAMS Formatting Pipeline: The Wallflower Worker and Durable Object will house the logic to take the raw client submission and its accurate WCT metadata, segment the video from R2, and execute the final POST /flows/<flow_id>/segments calls against a TAMS API instance.

πŸ” Provenance and Content Credentials

Wallflower provides provenance tracking through three complementary systems:

TAMS Source/Flow Integration

Every client session creates a TAMS Source as the immutable anchor for all submissions. Both text and video contributions are tracked with Flows:

Flow Type Full Name Purpose
PPP Metadata Participant Profile/Provenance Created for all submissions. Records who submitted, when, and from where.
FRP Media Fan Reaction Production Created for video submissions only. Contains the actual video essence stored in R2.
Game Book Reference Broadcast Event Sync Tuple Created when a submission is within 30 seconds of a Game Book marker. Links the fan's reaction to the official broadcast moment.

The Game Book Reference answers the question: "What official broadcast event was this fan reacting to?" It stores the marker ID, the broadcast event timestamp, the reaction timestamp, and the offset between them.

WPL (Wallflower Provenance Ledger)

Every completed submission generates a SHA-256 transaction hash that includes:

This creates an internal provenance chain for rights management within the Wallflower ecosystem.

C2PA Content Credentials

Wallflower prepares C2PA manifest data for each submission, enabling industry-standard content authenticity when media is exported. The C2PA manifest includes:

C2PA signing requires a valid certificate and occurs at export time via an external signing service.

πŸ”— How They Work Together

  1. WPL provides internal provenance for the Wallflower ecosystem
  2. C2PA provides external provenance that travels with exported media
  3. TAMS Source/Flow provides the architectural framework linking both systems

See the Technical Specification for implementation details.

πŸ“ Named Source Collections

Wallflower supports Named Source Collections, allowing users to organize their contributions into named groups instead of automatic session-based assignment.

What is a Source Collection?

A Source (in TAMS terminology) is a container for related Flows. Each submission creates Flows (metadata, media, references) that belong to a Source. Users can:

How to Use Source Collections

On the Submit page, you'll see a "Contribution Source" section with three options:

Benefits

πŸ“Š Viewing Collection Data

Named collections appear in several places:

  1. Contribution Log: Filter by collection, see source in expandable details
  2. Provenance Page: View all Sources with their associated Flows
  3. Submit Page: Dropdown shows your available collections

πŸ• Universal Time Access

Wallflower provides Universal Time Access (UTA) - the ability to query any frame in any submitted video by its absolute wall-clock timestamp, enabling multi-source media correlation.

What is Universal Time Access?

Every frame in every submitted video has a unique address on the universal timeline:

universal_timestamp = submission_WCT + media_offset

For example, if a video was submitted at exactly 2:30:00 PM, the frame at 10.5 seconds into that video has a universal timestamp of 2:30:10.500 PM. This works across all sources, all contributors, all devices.

What can I do with it?

Use Case How It Works
Multi-angle reconstruction Query a specific moment and get all videos from different fans showing that exact instant
Broadcast correlation Link fan reactions to official Game Book markers - "what were fans doing when the goal was scored?"
Cross-source sync Synchronize videos from multiple contributors even if they started recording at different times
Temporal search Find all content created during a specific time window across all sources

How does duration extraction work?

When you submit a video, the client SDK automatically extracts the video duration using the browser's HTMLVideoElement. This duration is sent to the server during the claim phase, before upload begins. The server then calculates:

Nanosecond precision is used for TAMS compliance, ensuring compatibility with professional broadcast systems.

API Endpoints

Endpoint Purpose
GET /api/universal-time?time=X Find all videos containing moment X (with tolerance window)
GET /api/flows/{id}/segments Get TAMS-compliant segments for a specific flow

🎬 Example: Stadium Multi-Cam

Imagine 50 fans in a stadium, each recording with their phones. When the winning touchdown happens at exactly 4:32:15.000 PM:

  1. Call GET /api/universal-time?time=1709634735000&tolerance=2000
  2. Get back all 50 videos with exact seek positions
  3. Create a synchronized multi-angle view of that moment

Each response includes seekTimeSeconds - exactly where to jump in each video to see that precise moment.

πŸ‘€ User Identity for Provenance

Wallflower includes a user identity system that adds contributor attribution to the provenance chain. This allows you to see who submitted content, not just when and what.

How does it work?

  1. First Visit: You'll be asked to enter your display name
  2. Cookie Storage: Your name is saved in a browser cookie
  3. Every Submission: Your name is sent with text and video contributions
  4. Provenance: Your name is recorded in the WPL hash chain
  5. Switch User: Click "Switch User" in the header to change identity

What does the username prove?

Important: This is a self-declared identity with no verification. It proves that someone claimed to be that name when submitting, but not that they actually are that person. Think of it like signing a guest book.

Provenance Claim Strength
Who submitted (username) Weak (self-declared, no verification)
When submitted (timestamp) Strong (server-authoritative)
What was submitted (content hash) Strong (SHA-256 integrity)
Submission order Strong (WPL hash chain)

Can I change my username?

Yes! Click the "Switch User" button in the header. This clears your saved username and prompts you to enter a new one. Your previous submissions will still show the old name in the provenance records.

🏈 Sample Application

What is the Sample Application?

The Sample Application is a Super Bowl LX simulation that demonstrates Wallflower's real-time capabilities. It plays through a complete football game with play-by-play data, allowing users to submit reactions that get timestamped and correlated with game events.

How does the simulation work?

The simulation loads a Game Book JSON file containing 72 plays with timestamps starting from kickoff (February 8, 2026 at 6:30 PM ET). You can run it in real-time or accelerated (5x, 25x, 100x). As plays occur, you can submit text reactions that capture the current game context (quarter, clock, score).

What does this demonstrate?

πŸ“– Glossary

Acronym Full Name Description
WCT Wall-Clock Timecode Authoritative server timestamp in milliseconds since Unix epoch. The "moment of truth" for when a contribution was created.
RTT Round-Trip Time Time for a message to travel from client to server and back. Used to estimate network latency.
TAMS Time-Addressable Media Store BBC R&D specification for time-indexed media storage. Wallflower acts as the ingestion gateway for TAMS.
WPL Wallflower Provenance Ledger Internal SHA-256 hash chain tracking content provenance within the Wallflower ecosystem.
C2PA Coalition for Content Provenance and Authenticity Industry standard for content credentials. Enables authenticity verification when media is exported.
FRP Fan Reaction Production Flow type containing video essence (the actual recorded video file).
PPP Participant Profile/Provenance Flow type containing metadata about who submitted, when, and from where.
SFCE Synchronized Fan Contribution Engine Wallflower's product name - the system that synchronizes fan contributions to a common timeline.
UTA Universal Time Access The ability to query any media frame by its absolute wall-clock timestamp.
FlowSegment TAMS Flow Segment A time-indexed chunk of media content within a Flow, with nanosecond-precision timerange.