Operator RPC API#

Operator RPCs are exposed under /node and do not require authentication.

GET /node/api#

OpenAPI schema

Example request:

GET /node/api HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {}
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/api/metrics#

Usage metrics for endpoints

Example request:

GET /node/api/metrics HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "metrics": [
            {
                "calls": 1,
                "errors": 1,
                "failures": 1,
                "method": "string",
                "path": "string",
                "retries": 1
            }
        ]
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/backup#

Example request:

GET /node/backup HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK – Default response description

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/code#

This endpoint is deprecated. It is replaced by /gov/kv/nodes/code_ids endpoint

Permitted SGX code identities

Example request:

GET /node/code HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "versions": [
            {
                "digest": "string",
                "status": "AllowedToJoin"
            }
        ]
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/commit#

Current commit level

Latest transaction ID that has been committed on the service

Query Parameters:
  • view_history (boolean) –

  • view_history_since (integer) –

Example request:

GET /node/commit HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "transaction_id": "string",
        "view_history": [
            "string"
        ]
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/config#

Example request:

GET /node/config HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {}
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/consensus#

Example request:

GET /node/consensus HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "details": {
            "acks": {},
            "configs": [
                {
                    "idx": 1,
                    "nodes": {},
                    "rid": 1
                }
            ],
            "current_view": 1,
            "leadership_state": "None",
            "learners": {},
            "membership_state": "Active",
            "primary_id": "string",
            "reconfiguration_type": "OneTransaction",
            "retirement_phase": "Ordered",
            "ticking": true
        }
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/index/strategies#

Example request:

GET /node/index/strategies HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {}
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/js_metrics#

Example request:

GET /node/js_metrics HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "bytecode_size": 1,
        "bytecode_used": true,
        "max_cached_interpreters": 1,
        "max_execution_time": 1,
        "max_heap_size": 1,
        "max_stack_size": 1
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/jwt_metrics#

Example request:

GET /node/jwt_metrics HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "attempts": 1,
        "successes": 1
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/memory#

Example request:

GET /node/memory HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "current_allocated_heap_size": 1,
        "max_total_heap_size": 1,
        "peak_allocated_heap_size": 1
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/metrics#

Example request:

GET /node/metrics HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "sessions": {
            "active": 1,
            "interfaces": {},
            "peak": 1
        }
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/network#

Example request:

GET /node/network HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "current_service_create_txid": "string",
        "current_view": 1,
        "primary_id": "string",
        "recovery_count": 1,
        "service_certificate": "string",
        "service_data": {},
        "service_status": "Opening"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/network/nodes#
Query Parameters:
  • host (string) –

  • port (string) –

  • status (string) –

Example request:

GET /node/network/nodes HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "nodes": [
            {
                "last_written": 1,
                "node_data": {},
                "node_id": "string",
                "primary": true,
                "rpc_interfaces": {},
                "status": "Pending"
            }
        ]
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/network/nodes/primary#

Example request:

GET /node/network/nodes/primary HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "last_written": 1,
        "node_data": {},
        "node_id": "string",
        "primary": true,
        "rpc_interfaces": {},
        "status": "Pending"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/network/nodes/self#

Example request:

GET /node/network/nodes/self HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "last_written": 1,
        "node_data": {},
        "node_id": "string",
        "primary": true,
        "rpc_interfaces": {},
        "status": "Pending"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

DELETE /node/network/nodes/{node_id}#
Parameters:
  • node_id (string) –

Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    true
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/network/nodes/{node_id}#
Parameters:
  • node_id (string) –

Example request:

GET /node/network/nodes/{node_id} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "last_written": 1,
        "node_data": {},
        "node_id": "string",
        "primary": true,
        "rpc_interfaces": {},
        "status": "Pending"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/network/removable_nodes#

Example request:

GET /node/network/removable_nodes HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "nodes": [
            {
                "last_written": 1,
                "node_data": {},
                "node_id": "string",
                "primary": true,
                "rpc_interfaces": {},
                "status": "Pending"
            }
        ]
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/primary#

Example request:

GET /node/primary HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK – Default response description

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

HEAD /node/primary#
Status Codes:
  • 200 OK – Default response description

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/quotes#

Example request:

GET /node/quotes HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "quotes": [
            {
                "endorsements": "string",
                "format": "OE_SGX_v1",
                "mrenclave": "string",
                "node_id": "string",
                "raw": "string",
                "uvm_endorsements": "string"
            }
        ]
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/quotes/self#

Example request:

GET /node/quotes/self HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "endorsements": "string",
        "format": "OE_SGX_v1",
        "mrenclave": "string",
        "node_id": "string",
        "raw": "string",
        "uvm_endorsements": "string"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/ready/app#

Example request:

GET /node/ready/app HTTP/1.1
Host: example.com
Status Codes:
  • 204 No Content – Default response description

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/ready/gov#

Example request:

GET /node/ready/gov HTTP/1.1
Host: example.com
Status Codes:
  • 204 No Content – Default response description

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/receipt#

Receipt for a transaction

A signed statement from the service over a transaction entry in the ledger

Query Parameters:
  • transaction_id (string) – (Required)

Example request:

GET /node/receipt?transaction_id=string HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {}
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/self_signed_certificate#

Example request:

GET /node/self_signed_certificate HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "self_signed_certificate": "string"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/service/configuration#

Example request:

GET /node/service/configuration HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "consensus": "CFT",
        "maximum_node_certificate_validity_days": 1,
        "maximum_service_certificate_validity_days": 1,
        "recent_cose_proposals_window_size": 1,
        "reconfiguration_type": "OneTransaction",
        "recovery_threshold": 1
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/service/previous_identity#

Example request:

GET /node/service/previous_identity HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "previous_service_identity": "string"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/state#

Example request:

GET /node/state HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "last_recovered_seqno": 1,
        "last_signed_seqno": 1,
        "node_id": "string",
        "recovery_target_seqno": 1,
        "startup_seqno": 1,
        "state": "Uninitialized",
        "stop_notice": true
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/tx#

Current status of a transaction

Possible statuses returned are Unknown, Pending, Committed or Invalid.

Query Parameters:
  • transaction_id (string) – (Required)

Example request:

GET /node/tx?transaction_id=string HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "status": "Unknown",
        "transaction_id": "string"
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }
    

GET /node/version#

Example request:

GET /node/version HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Default response description

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "ccf_version": "string",
        "quickjs_version": "string",
        "unsafe": true
    }
    

  • default

    An error occurred

    Example response:

    HTTP/1.1 default -
    Content-Type: application/json
    
    {
        "error": {
            "code": "string",
            "message": "string"
        }
    }