Skip to main content

Network Status

Monitor the real-time health and uptime of Lit Protocol’s core network endpoints across different environments.

Status Pages

Development Network

Naga Dev Network Status Live monitoring dashboard for the development network, tracking real-time metrics for all core SDK operations.

Test Network

Naga Test Network Status Live monitoring dashboard for the test network, providing visibility into network health and performance.

Monitored Operations

These dashboards track the uptime and performance of core SDK methods:
OperationDescription
decryptDecryption operations for encrypted data
executeJsJavaScript execution in Lit Actions
handshakeNode handshake and connection establishment
pkpSignPKP signing operations for transactions and messages
signSessionKeySession key signing for authentication

Programmatic Access

Experimental Feature: The Lit Status SDK is currently in active development and should be considered experimental. APIs and features may change without notice.
You can access network metrics programmatically using the Lit Status SDK for read-only monitoring and analytics.

Prerequisites

To access the Status API, you’ll need a read-only API key. Request access by filling out the Lit Protocol Contact Form.

Installation

npm install @lit-protocol/lit-status-sdk

Example Usage

import { createLitStatusClient } from '@lit-protocol/lit-status-sdk';

(async () => {
  const client = createLitStatusClient({
    url: process.env.API_URL,
    apiKey: process.env.READ_KEY,
  });

  // Get available filter options
  const filterOptions = await client.getFilterOptions();
  console.log('Available networks:', filterOptions.networks);
  console.log('Available functions:', filterOptions.functions);

  // Register and retrieve function references
  const functions = await client.getOrRegisterFunctions({
    network: 'naga-dev',
    product: 'js-sdk/naga',
    functions: ['executeJs', 'pkpSign', 'decrypt'],
  });

  // Get recent metrics for a specific function
  const executeJsMetrics = await client.getFunctionMetrics(
    functions['executeJs'].id,
    {
      startDate: new Date(Date.now() - 24 * 60 * 60 * 1000), // Last 24 hours
      endDate: new Date(),
    }
  );

  console.log('ExecuteJs Metrics:', {
    uptime: `${executeJsMetrics.uptime}%`,
    successRate: `${executeJsMetrics.successRate}%`,
    avgResponseTime: `${executeJsMetrics.averageResponseTime}ms`,
    totalExecutions: executeJsMetrics.totalExecutions,
  });

  // Get time-series data for charting
  const timeSeries = await client.getFunctionMetricsTimeSeries(
    functions['executeJs'].id,
    {
      startDate: new Date(Date.now() - 24 * 60 * 60 * 1000),
      endDate: new Date(),
    },
    'hour'
  );

  timeSeries.buckets.forEach((bucket) => {
    console.log(
      `${bucket.timestamp}: ${bucket.successRate}% success, ` +
        `${bucket.averageResponseTime}ms avg`
    );
  });
})();