Technical Components
Client
- Connects to operators over WebSocket.
- Sends ping and ack messages.
- Provides claimed coordinates for verification.
Operator
- Registers as a decentralized witness.
- Timestamps packets with nanosecond precision.
- Computes geodistance (Haversine formula).
- Validates RTT against theoretical latency bounds.
- Signs & submits results to
HelloWorldServiceManager
.
Smart Contracts
- Service Manager: Manages verification tasks & operator responses.
- Delegation Manager & AVS Registry: Handle operator staking & registration.
- ECDSA Registry: Validates operator signatures.

System Flow
1. Commitment Creation
- Client → Backend: Requests geohash commitment of claimed location.
- Backend → Contract: Submits the commitment.
2. Operator Discovery
- Backend → Client: Returns list of registered operators.
- Operators: Act as decentralized witnesses.
3. Connection Establishment
- Client Frontend: Opens WebSocket connections with operators.
- Each connection enables latency-based verification.
4. Ping / Pong Exchange
- Client → Operator: Sends a ping with claimed coordinates.
- Operator: Records timestamp, saves claim, responds with pong.
5. Ack for RTT Measurement
- Client → Operator: Sends ack message.
- Operator: Calculates RTT and compares to expected latency.
6. Location Verification
- Operator computes:
- Geodistance (Haversine formula)
- Min RTT (speed-of-light bound)
- Actual RTT (measured)
If out of bounds → Claim is rejected
7. Onchain Response
- Operator → Contract: Signs result and calls
respondToTask
. - Submission includes metadata, claim, and verification status.
8. Aggregation (Indexer Layer)
- Collects responses from multiple operators.
- Aggregates into a final proof.
- Publishes proof onchain for smart contracts to consume.