Monitoring and Tools

← Back to Building Amendments: Lifecycle and Core Protocol Impact


Introduction

Effective amendment monitoring is crucial for node operators, validators, exchanges, and any entity depending on XRPL. Proper monitoring allows detection of imminent changes, planning of updates, and quick response to problems.

In this section, we explore the available tools for monitoring amendment status: the feature RPC command, interpretation of status fields, blockchain explorers, and advanced techniques for tracking an amendment's progression across the network.

These tools are indispensable for maintaining a robust and responsive XRPL infrastructure.


RPC feature Command

Basic Usage

The feature command is the primary tool for querying amendment status on a rippled node.

Syntax:

# List all amendments
rippled feature

# Query a specific amendment
rippled feature <amendment_hash>

# Enable voting (admin only)
rippled feature <amendment_hash> accept

# Disable voting (admin only)
rippled feature <amendment_hash> reject

Example for Subscriptions:

Response Format

Complete response:

Field Interpretation

count

Type: number

Meaning: Number of UNL validators currently voting for the amendment.

Example: "count": 28 means 28 validators have included this amendment in their recent validations.

Usage: Compare with threshold to know if the 80% threshold is exceeded (count > threshold).

enabled

Type: boolean

Meaning: Is the amendment activated on the network?

  • true: The amendment is activated and its rules are applied

  • false: The amendment is not yet activated

Example: "enabled": false means Subscriptions is not yet active.

Usage: Determines if new features are available.

majority

Type: number (XRPL Time) or null

Meaning: Timestamp (in seconds since 2000-01-01 00:00:00 UTC) when the amendment first exceeded the 80% threshold (count > threshold).

  • Present: The amendment exceeded the threshold and is in stability period

  • null: The amendment has not exceeded the threshold

Example: "majority": 806021535

Human date conversion:

Usage: Calculate when the amendment will be activated (majority + 2 weeks).

name

Type: string

Meaning: Human-readable name of the amendment.

Example: "name": "Subscriptions"

Usage: Human identification of the amendment (the hash is hard to memorize).

supported

Type: boolean

Meaning: Does this node support the amendment (does it have the implementation code)?

  • true: The node can apply the amendment rules

  • false: The node does not recognize or does not support the amendment

Example: "supported": true

Usage: Know if the node is up to date. If supported: false and the amendment has a majority, urgent upgrade is needed.

threshold

Type: number

Meaning: Absolute number calculated as floor(validations * 0.8). To reach majority, count > threshold (strictly greater) is required.

Calculation: threshold = floor(validations * 0.8)

Example: "threshold": 28 with 35 validations

  • To exceed 80%: count > 28, so minimum 29 votes required

  • Actual percentage: 29/35 = 82.9% > 80% ✓

Usage: Know how many additional votes are needed to reach majority (count must be > threshold).

validations

Type: number

Meaning: Total number of trusted validators (UNL) for the node.

Example: "validations": 35

Usage: Calculate current support percentage: (count / validations) * 100


Activation ETA Calculation

Formula

When an amendment has a majority, you can calculate when it will be activated:

In seconds:

Calculation Script

JavaScript:

Python:

Automated Monitoring

Continuous monitoring script:


Ledger Explorers

XRPL Explorers

Several web explorers allow visualizing amendment status:

1. Bithomp Explorer

URL: https://bithomp.com/amendments

Features:

  • List of all known amendments

  • Real-time status (enabled, majority, voting)

  • Vote progression graphs

  • Historical timeline

Example display:

2. XRPL.org Amendment Tracker

URL: https://livenet.xrpl.org/amendments

Features:

  • Overview of all amendments

  • Filters by status (enabled, voting, obsolete)

  • Links to XLS documentation

  • Activation history

3. XRPScan

URL: https://xrpscan.com/amendments

Features:

  • Graphical visualization of support

  • Email notifications for status changes

  • API for dashboard integration

Pseudo-transaction Visualization

EnableAmendment pseudo-transactions can be visualized in explorers:

Example of tfGotMajority transaction:

Search in Bithomp:

Allows viewing all pseudo-transactions in the ledger.


API and Integration

WebSocket Streaming

Monitor amendment changes in real-time via WebSocket:

Subscribe to validations:

HTTP Polling

Periodically query status:


Command Line Tools

Scripting with jq

Extract specific information with jq:

Get vote count:

Check if enabled:

List all enabled amendments:

List amendments in majority:

Wrapper Scripts

check_amendments.sh: Complete verification script


Alerting and Notifications

Alert Configuration

Prometheus + Grafana:

Example exported metric:

Grafana Alert:

Email Notifications

Script with sendmail:


Custom Dashboard

Web Interface Example

HTML + JavaScript:


Third-Party Tools

XRPL Amendment Notifier

Hypothetical email/SMS notification service:

Discord/Slack Bots

Bot posting to a channel:

Last updated