DA Layer Visualization

Real-time view of blob submissions from the sequencer node to the Data Availability layer.

{{if .IsAggregator}} {{if .Submissions}}

Recent Submissions: {{len .Submissions}} (last 100) | Last Update: {{.LastUpdate}}

{{else}}

Node Type: Aggregator | Recent Submissions: 0 | Last Update: {{.LastUpdate}}

{{end}} {{else}}

Node Type: Non-aggregator | This node does not submit data to the DA layer.

{{end}}
{{if .IsAggregator}}

Available API Endpoints

GET /da

Returns this HTML visualization dashboard with real-time DA submission data.

Example: View Dashboard

GET /da/submissions

Returns a JSON array of the most recent DA submissions (up to 100) with metadata.

Note: Only aggregator nodes submit to the DA layer.

Example: curl http://localhost:8080/da/submissions

Response:
{
  "submissions": [
    {
      "id": "submission_1234_1699999999",
      "height": 1234,
      "blob_size": 2048,
      "timestamp": "2023-11-15T10:30:00Z",
      "gas_price": 0.000001,
      "status_code": "Success",
      "num_blobs": 1,
      "blob_ids": ["a1b2c3d4..."]
    }
  ],
  "total": 42
}

GET /da/blob?id={blob_id}

Returns detailed information about a specific blob including its content.

Parameters: id - Hexadecimal blob ID

Example: curl http://localhost:8080/da/blob?id=a1b2c3d4...

Response:
{
  "id": "a1b2c3d4...",
  "height": 1234,
  "commitment": "deadbeef...",
  "size": 2048,
  "content": "0x1234...",
  "content_preview": "..."
}

GET /da/stats

Returns aggregated statistics about DA submissions.

Example: curl http://localhost:8080/da/stats

Response:
{
  "total_submissions": 42,
  "success_count": 40,
  "error_count": 2,
  "success_rate": "95.24%",
  "total_blob_size": 86016,
  "avg_blob_size": 2048,
  "avg_gas_price": 0.000001,
  "time_range": {
    "first": "2023-11-15T10:00:00Z",
    "last": "2023-11-15T10:30:00Z"
  }
}

GET /da/health

Returns health status of the DA layer connection.

Example: curl http://localhost:8080/da/health

Response:
{
  "status": "healthy",
  "is_healthy": true,
  "connection_status": "connected",
  "connection_healthy": true,
  "metrics": {
    "recent_error_rate": "10.0%",
    "recent_errors": 1,
    "recent_successes": 9,
    "recent_sample_size": 10,
    "total_submissions": 42,
    "last_submission_time": "2023-11-15T10:30:00Z",
    "last_success_time": "2023-11-15T10:29:45Z",
    "last_error_time": "2023-11-15T10:25:00Z"
  },
  "issues": [],
  "timestamp": "2023-11-15T10:30:15Z"
}

Health Status Values:

{{end}} {{if .IsAggregator}}

Recent Submissions

{{if .Submissions}} {{range .Submissions}} {{end}}
Timestamp Height Status Blobs Size (bytes) Gas Price Message
{{if not .Timestamp.IsZero}}{{.Timestamp.Format "15:04:05"}}{{else}}--:--:--{{end}} {{.Height}} {{.StatusCode}} {{.NumBlobs}} {{if .BlobIDs}} {{$namespace := .Namespace}} {{$numBlobs := len .BlobIDs}} {{if le $numBlobs 5}}
{{range .BlobIDs}} {{slice . 0 8}}... {{end}}
{{else}}
{{range $i, $id := .BlobIDs}}{{if lt $i 3}}{{slice $id 0 8}}...{{end}}{{end}}
{{range .BlobIDs}} {{slice . 0 8}}... {{end}}
{{end}} {{end}}
{{.BlobSize}} {{printf "%.6f" .GasPrice}} {{.Message}}
{{else}}

No submissions recorded yet. This aggregator node has not submitted any data to the DA layer yet.

{{end}} {{else}}

Node Information

This is a non-aggregator node. Non-aggregator nodes do not submit data to the DA layer and therefore do not have submission statistics, health metrics, or DA-related API endpoints available.

Only aggregator nodes that actively produce blocks and submit data to the DA layer will display this information.

{{end}}

Auto-refresh: 30s | Refresh Now