Nano Node API

Node diagnostics, bootstrapping, peers, and confirmation management

OpenAPI Specification

nano-node-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Nano RPC Accounts Node API
  description: 'The Nano RPC API is a JSON-RPC HTTP interface for interacting with the Nano network. Nano is a feeless, instant digital currency using a block-lattice architecture where each account maintains its own blockchain. The RPC API supports account queries, block operations, wallet management, node diagnostics, and unit conversions. All requests are POST with a JSON body containing an "action" field identifying the RPC command.

    '
  version: 1.0.0
  contact:
    name: Nano Foundation
    url: https://nano.org/en/developers
    email: integrations@nano.org
  license:
    name: BSD-2-Clause
    url: https://opensource.org/licenses/BSD-2-Clause
  termsOfService: https://nano.org/terms-of-use
servers:
- url: http://localhost:7076
  description: Local Nano node (default RPC port)
tags:
- name: Node
  description: Node diagnostics, bootstrapping, peers, and confirmation management
paths:
  /bootstrap:
    post:
      operationId: bootstrap
      summary: Bootstrap from peer
      description: Initiates a bootstrap sync from the specified peer node.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - address
              - port
              properties:
                action:
                  type: string
                  enum:
                  - bootstrap
                address:
                  type: string
                port:
                  type: string
                bypass_frontier_confirmation:
                  type: boolean
                id:
                  type: string
      responses:
        '200':
          description: Bootstrap started
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: string
  /bootstrap_any:
    post:
      operationId: bootstrap_any
      summary: Bootstrap from any peer
      description: Initiates a bootstrap sync from any available peer.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - bootstrap_any
                force:
                  type: boolean
                id:
                  type: string
                account:
                  type: string
      responses:
        '200':
          description: Bootstrap started
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: string
  /bootstrap_lazy:
    post:
      operationId: bootstrap_lazy
      summary: Lazy bootstrap from hash
      description: Initiates lazy (hash-based) bootstrap starting from a specific block.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - hash
              properties:
                action:
                  type: string
                  enum:
                  - bootstrap_lazy
                hash:
                  type: string
                force:
                  type: boolean
                id:
                  type: string
      responses:
        '200':
          description: Bootstrap status
          content:
            application/json:
              schema:
                type: object
                properties:
                  started:
                    type: string
                  key_inserted:
                    type: string
  /bootstrap_status:
    post:
      operationId: bootstrap_status
      summary: Get bootstrap status
      description: Returns current bootstrap attempt status and connection counts.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - bootstrap_status
      responses:
        '200':
          description: Bootstrap status information
          content:
            application/json:
              schema:
                type: object
                properties:
                  bootstrap_threads:
                    type: string
                  running_attempts_count:
                    type: string
                  total_attempts_count:
                    type: string
                  connections:
                    type: object
                  attempts:
                    type: array
                    items:
                      type: object
  /confirmation_active:
    post:
      operationId: confirmation_active
      summary: Get active confirmations
      description: Returns a list of currently active confirmation elections.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - confirmation_active
                announcements:
                  type: integer
      responses:
        '200':
          description: Active confirmations
          content:
            application/json:
              schema:
                type: object
                properties:
                  confirmations:
                    type: array
                    items:
                      type: string
                  unconfirmed:
                    type: string
                  confirmed:
                    type: string
  /confirmation_history:
    post:
      operationId: confirmation_history
      summary: Get confirmation history
      description: Returns historical data about completed confirmation elections.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - confirmation_history
                hash:
                  type: string
      responses:
        '200':
          description: Confirmation history records
          content:
            application/json:
              schema:
                type: object
                properties:
                  confirmation_stats:
                    type: object
                  confirmations:
                    type: array
                    items:
                      type: object
                      properties:
                        hash:
                          type: string
                        duration:
                          type: string
                        time:
                          type: string
                        tally:
                          type: string
                        blocks:
                          type: string
                        voters:
                          type: string
  /confirmation_info:
    post:
      operationId: confirmation_info
      summary: Get confirmation info for root
      description: Returns information about the election for a specific block root.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - root
              - json_block
              properties:
                action:
                  type: string
                  enum:
                  - confirmation_info
                root:
                  type: string
                json_block:
                  type: string
                contents:
                  type: boolean
                representatives:
                  type: boolean
      responses:
        '200':
          description: Confirmation election details
          content:
            application/json:
              schema:
                type: object
                properties:
                  announcements:
                    type: string
                  voters:
                    type: string
                  last_winner:
                    type: string
                  total_tally:
                    type: string
                  blocks:
                    type: object
  /confirmation_quorum:
    post:
      operationId: confirmation_quorum
      summary: Get confirmation quorum info
      description: Returns quorum and online stake information for confirmation.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - confirmation_quorum
                peer_details:
                  type: boolean
      responses:
        '200':
          description: Quorum information
          content:
            application/json:
              schema:
                type: object
                properties:
                  quorum_delta:
                    type: string
                  online_weight_quorum_percent:
                    type: string
                  online_weight_minimum:
                    type: string
                  online_stake_total:
                    type: string
                  peers_stake_total:
                    type: string
                  trended_stake_total:
                    type: string
  /delegators:
    post:
      operationId: delegators
      summary: Get delegators for representative
      description: Returns all accounts delegating voting weight to the given representative.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - account
              properties:
                action:
                  type: string
                  enum:
                  - delegators
                account:
                  type: string
                threshold:
                  type: string
                count:
                  type: integer
                start:
                  type: string
      responses:
        '200':
          description: Delegators and their balances
          content:
            application/json:
              schema:
                type: object
                properties:
                  delegators:
                    type: object
                    additionalProperties:
                      type: string
  /delegators_count:
    post:
      operationId: delegators_count
      summary: Get delegator count for representative
      description: Returns the number of accounts delegating to a representative.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - account
              properties:
                action:
                  type: string
                  enum:
                  - delegators_count
                account:
                  type: string
      responses:
        '200':
          description: Delegator count
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: string
  /election_statistics:
    post:
      operationId: election_statistics
      summary: Get election statistics
      description: Returns statistics about the active elections subsystem (v27.0+).
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - election_statistics
      responses:
        '200':
          description: Election statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  normal:
                    type: string
                  priority:
                    type: string
                  hinted:
                    type: string
                  optimistic:
                    type: string
                  total:
                    type: string
                  aec_utilization_percentage:
                    type: string
                  max_election_age:
                    type: string
                  average_election_age:
                    type: string
  /keepalive:
    post:
      operationId: keepalive
      summary: Send keepalive
      description: Sends a keepalive packet to the specified peer.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              - address
              - port
              properties:
                action:
                  type: string
                  enum:
                  - keepalive
                address:
                  type: string
                port:
                  type: string
      responses:
        '200':
          description: Keepalive acknowledged
          content:
            application/json:
              schema:
                type: object
  /node_id:
    post:
      operationId: node_id
      summary: Get node identity
      description: Returns the public and private node identity keys.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - node_id
      responses:
        '200':
          description: Node identity information
          content:
            application/json:
              schema:
                type: object
                properties:
                  private:
                    type: string
                  public:
                    type: string
                  node_id:
                    type: string
  /peers:
    post:
      operationId: peers
      summary: Get connected peers
      description: Returns a list of connected peers and their protocol versions.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - peers
                peer_details:
                  type: boolean
      responses:
        '200':
          description: Connected peers
          content:
            application/json:
              schema:
                type: object
                properties:
                  peers:
                    type: object
                    additionalProperties:
                      oneOf:
                      - type: string
                      - type: object
  /populate_backlog:
    post:
      operationId: populate_backlog
      summary: Populate election backlog
      description: Adds unconfirmed blocks to the confirmation backlog queue.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - populate_backlog
      responses:
        '200':
          description: Backlog populated
          content:
            application/json:
              schema:
                type: object
  /representatives:
    post:
      operationId: representatives
      summary: Get all representatives
      description: Returns all representatives and their voting weights.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - representatives
                count:
                  type: integer
                sorting:
                  type: boolean
      responses:
        '200':
          description: Representatives and weights
          content:
            application/json:
              schema:
                type: object
                properties:
                  representatives:
                    type: object
                    additionalProperties:
                      type: string
  /representatives_online:
    post:
      operationId: representatives_online
      summary: Get online representatives
      description: Returns representatives that have recently voted.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - representatives_online
                weight:
                  type: boolean
      responses:
        '200':
          description: Online representatives
          content:
            application/json:
              schema:
                type: object
                properties:
                  representatives:
                    type: array
                    items:
                      type: string
  /stats:
    post:
      operationId: stats
      summary: Get node statistics
      description: Returns internal node statistics by category.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - stats
                type:
                  type: string
                  enum:
                  - counters
                  - samples
                  - objects
                  - database
      responses:
        '200':
          description: Node statistics
          content:
            application/json:
              schema:
                type: object
  /telemetry:
    post:
      operationId: telemetry
      summary: Get network telemetry
      description: Returns telemetry data from connected peers.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - telemetry
                raw:
                  type: boolean
      responses:
        '200':
          description: Peer telemetry data
          content:
            application/json:
              schema:
                type: object
  /uptime:
    post:
      operationId: uptime
      summary: Get node uptime
      description: Returns how many seconds the node has been running.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - uptime
      responses:
        '200':
          description: Node uptime in seconds
          content:
            application/json:
              schema:
                type: object
                properties:
                  uptime:
                    type: string
  /version:
    post:
      operationId: version
      summary: Get node version
      description: Returns the RPC, store, and network protocol versions of the node.
      tags:
      - Node
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - action
              properties:
                action:
                  type: string
                  enum:
                  - version
      responses:
        '200':
          description: Version information
          content:
            application/json:
              schema:
                type: object
                properties:
                  rpc_version:
                    type: string
                  store_version:
                    type: string
                  protocol_version:
                    type: string
                  node_vendor:
                    type: string
externalDocs:
  description: Nano RPC Protocol Documentation
  url: https://docs.nano.org/commands/rpc-protocol/