Nym Technologies Nym Explorer API

The Nym Explorer API from Nym Technologies — 2 operation(s) for nym explorer.

OpenAPI Specification

nym-technologies-nym-explorer-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Node Status API Status Nym Explorer API
  description: ''
  contact:
    name: Nym Technologies SA
  license:
    name: Apache-2.0
    identifier: Apache-2.0
  version: 4.6.2
tags:
- name: Nym Explorer
paths:
  /explorer/v3/nym-nodes:
    get:
      tags:
      - Nym Explorer
      operationId: nym_nodes
      parameters:
      - name: size
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResult_ExtendedNymNode'
  /explorer/v3/nym-nodes/{node_id}/delegations:
    get:
      tags:
      - Nym Explorer
      operationId: node_delegations
      parameters:
      - name: node_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/u32'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NodeDelegation'
components:
  schemas:
    HostKeysV1:
      type: object
      required:
      - ed25519
      - x25519
      - current_x25519_sphinx_key
      properties:
        current_x25519_sphinx_key:
          $ref: '#/components/schemas/SphinxKeyV1'
        ed25519:
          type: string
        pre_announced_x25519_sphinx_key:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SphinxKeyV1'
        x25519:
          type: string
          deprecated: true
        x25519_versioned_noise:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/VersionedNoiseKeyV1'
    NodeDelegation:
      type: object
      required:
      - amount
      - cumulative_reward_ratio
      - block_height
      - owner
      properties:
        amount:
          $ref: '#/components/schemas/CoinSchema'
        block_height:
          type: integer
          format: int64
          minimum: 0
        cumulative_reward_ratio:
          type: string
        owner:
          type: string
        proxy:
          type:
          - string
          - 'null'
    NodeCostParams:
      type: object
      description: 'The cost parameters, or the cost function, defined for the particular mixnode that influences

        how the rewards should be split between the node operator and its delegators.'
      required:
      - profit_margin_percent
      - interval_operating_cost
      properties:
        interval_operating_cost:
          $ref: '#/components/schemas/CoinSchema'
          description: Operating cost of the associated node per the entire interval.
        profit_margin_percent:
          type: string
          description: The profit margin of the associated node, i.e. the desired percent of the reward to be distributed to the operator.
    PagedResult_ExtendedNymNode:
      type: object
      required:
      - page
      - size
      - total
      - items
      properties:
        items:
          type: array
          items:
            type: object
            required:
            - node_id
            - identity_key
            - uptime
            - total_stake
            - original_pledge
            - bonded
            - node_type
            - ip_address
            - accepted_tnc
            - self_description
            - description
            properties:
              accepted_tnc:
                type: boolean
              bonded:
                type: boolean
              bonding_address:
                type:
                - string
                - 'null'
              description:
                $ref: '#/components/schemas/NodeDescription'
              family_data:
                oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/NodeFamilyInformation'
              geoip:
                oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/NodeGeoData'
              identity_key:
                type: string
              ip_address:
                type: string
              node_id:
                $ref: '#/components/schemas/u32'
              node_type:
                $ref: '#/components/schemas/DescribedNodeTypeV1'
              original_pledge:
                type: integer
                minimum: 0
              rewarding_details:
                oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/NodeRewarding'
              self_description:
                $ref: '#/components/schemas/NymNodeDataV2'
              total_stake:
                type: string
              uptime:
                type: number
                format: double
        page:
          type: integer
          minimum: 0
        size:
          type: integer
          minimum: 0
        total:
          type: integer
          minimum: 0
    NymNodeAuxiliaryDetailsV1:
      type: object
      properties:
        accepted_operator_terms_and_conditions:
          type: boolean
          description: 'Specifies whether this node operator has agreed to the terms and conditions

            as defined at <https://nymtech.net/terms-and-conditions/operators/v1.0.0>'
        announce_ports:
          $ref: '#/components/schemas/AnnouncePortsV1'
        location:
          type:
          - string
          - 'null'
          description: Optional ISO 3166 alpha-2 two-letter country code of the node's **physical** location
          example: PL
    NodeDescription:
      type: object
      required:
      - moniker
      - website
      - security_contact
      - details
      properties:
        details:
          type: string
          description: details define other optional details.
        moniker:
          type: string
          description: moniker defines a human-readable name for the node.
        security_contact:
          type: string
          description: security contact defines an optional email for security contact.
        website:
          type: string
          description: website defines an optional website link.
    OffsetDateTimeJsonSchemaWrapper:
      type: string
      format: date-time
    VersionedNoiseKeyV1:
      type: object
      required:
      - supported_version
      - x25519_pubkey
      properties:
        supported_version:
          type: integer
          format: int32
          minimum: 0
        x25519_pubkey:
          type: string
    HostInformationV1:
      type: object
      required:
      - ip_address
      - keys
      properties:
        hostname:
          type:
          - string
          - 'null'
        ip_address:
          type: array
          items:
            type: string
        keys:
          $ref: '#/components/schemas/HostKeysV1'
    DescribedNodeTypeV1:
      type: string
      enum:
      - legacy_mixnode
      - legacy_gateway
      - nym_node
    AuthenticatorDetailsV1:
      type: object
      required:
      - address
      properties:
        address:
          type: string
          description: address of the embedded authenticator
    NymNodeDataV2:
      type: object
      required:
      - host_information
      - build_information
      - mixnet_websockets
      properties:
        authenticator:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/AuthenticatorDetailsV1'
        auxiliary_details:
          $ref: '#/components/schemas/NymNodeAuxiliaryDetailsV1'
        build_information:
          $ref: '#/components/schemas/BinaryBuildInformationOwned'
        declared_role:
          $ref: '#/components/schemas/DeclaredRolesV1'
        host_information:
          $ref: '#/components/schemas/HostInformationV1'
        ip_packet_router:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/IpPacketRouterDetailsV1'
        last_polled:
          $ref: '#/components/schemas/OffsetDateTimeJsonSchemaWrapper'
        lewes_protocol:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/LewesProtocolDetailsV1'
        mixnet_websockets:
          $ref: '#/components/schemas/WebSocketsV1'
        network_requester:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/NetworkRequesterDetailsV1'
        wireguard:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/WireguardDetailsV1'
    LewesProtocolDetailsDataV1:
      type: object
      required:
      - enabled
      - control_port
      - data_port
      - x25519
      - kem_keys
      properties:
        control_port:
          type: integer
          format: int32
          description: 'LP TCP control address (default: 41264) for establishing LP sessions'
          minimum: 0
        data_port:
          type: integer
          format: int32
          description: 'LP UDP data address (default: 51264) for Sphinx packets wrapped in LP'
          minimum: 0
        enabled:
          type: boolean
          description: 'Helper field that specifies whether the LP listener(s) is enabled on this node.

            It is directly controlled by the node''s role (i.e. it is enabled if it supports ''entry'' mode)'
        kem_keys:
          type: object
          description: 'Digests of the KEM keys available to this node alongside hashing algorithms used

            for their computation.

            note: digests are hex encoded'
          additionalProperties:
            type: object
            additionalProperties:
              type: string
            propertyNames:
              type: string
          propertyNames:
            type: string
        x25519:
          type: string
          description: LP public key
    NetworkRequesterDetailsV1:
      type: object
      required:
      - address
      - uses_exit_policy
      properties:
        address:
          type: string
          description: address of the embedded network requester
        uses_exit_policy:
          type: boolean
          description: flag indicating whether this network requester uses the exit policy rather than the deprecated allow list
    NodeFamilyInformation:
      type: object
      required:
      - id
      - name
      - description
      - family_stake
      - members
      properties:
        description:
          type: string
        family_stake:
          type: integer
          minimum: 0
        id:
          type: integer
          format: int32
          minimum: 0
        members:
          type: integer
          minimum: 0
        name:
          type: string
    BinaryBuildInformationOwned:
      type: object
      required:
      - binary_name
      - build_timestamp
      - build_version
      - commit_sha
      - commit_timestamp
      - commit_branch
      - rustc_version
      - rustc_channel
      - cargo_profile
      properties:
        binary_name:
          type: string
          description: Provides the name of the binary, i.e. the content of `CARGO_PKG_NAME` environmental variable.
        build_timestamp:
          type: string
          description: Provides the build timestamp, for example `2021-02-23T20:14:46.558472672+00:00`.
        build_version:
          type: string
          description: Provides the build version, for example `0.1.0-9-g46f83e1`.
        cargo_profile:
          type: string
          description: Provides the cargo debug mode that was used for the build.
        cargo_triple:
          type: string
          description: Provides the cargo target triple that was used for the build.
        commit_branch:
          type: string
          description: Provides the name of the git branch that was used for the build, for example `master`.
        commit_sha:
          type: string
          description: Provides the hash of the commit that was used for the build, for example `46f83e112520533338245862d366f6a02cef07d4`.
        commit_timestamp:
          type: string
          description: Provides the timestamp of the commit that was used for the build, for example `2021-02-23T08:08:02-05:00`.
        rustc_channel:
          type: string
          description: Provides the rustc channel that was used for the build, for example `nightly`.
        rustc_version:
          type: string
          description: Provides the rustc version that was used for the build, for example `1.52.0-nightly`.
    DeclaredRolesV1:
      type: object
      required:
      - mixnode
      - entry
      - exit_nr
      - exit_ipr
      properties:
        entry:
          type: boolean
        exit_ipr:
          type: boolean
        exit_nr:
          type: boolean
        mixnode:
          type: boolean
    NodeRewarding:
      type: object
      required:
      - cost_params
      - operator
      - delegates
      - total_unit_reward
      - unit_delegation
      - last_rewarded_epoch
      - unique_delegations
      properties:
        cost_params:
          $ref: '#/components/schemas/NodeCostParams'
          description: Information provided by the operator that influence the cost function.
        delegates:
          type: string
          description: Total delegation and compounded reward earned by all node delegators.
        last_rewarded_epoch:
          $ref: '#/components/schemas/u32'
          description: 'Marks the epoch when this node was last rewarded so that we wouldn''t accidentally attempt

            to reward it multiple times in the same epoch.'
        operator:
          type: string
          description: Total pledge and compounded reward earned by the node operator.
        total_unit_reward:
          type: string
          description: Cumulative reward earned by the "unit delegation" since the block 0.
        unique_delegations:
          type: integer
          format: int32
          minimum: 0
        unit_delegation:
          type: string
          description: Value of the theoretical "unit delegation" that has delegated to this node at block 0.
    AnnouncePortsV1:
      type: object
      properties:
        mix_port:
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
        verloc_port:
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
    LewesProtocolDetailsV1:
      type: object
      required:
      - content
      - signature
      properties:
        content:
          $ref: '#/components/schemas/LewesProtocolDetailsDataV1'
        signature:
          type: string
    u32:
      type: integer
      format: int32
      minimum: 0
    WireguardDetailsV1:
      type: object
      required:
      - port
      - public_key
      properties:
        metadata_port:
          type: integer
          format: int32
          minimum: 0
        port:
          type: integer
          format: int32
          minimum: 0
        public_key:
          type: string
        tunnel_port:
          type: integer
          format: int32
          minimum: 0
    WebSocketsV1:
      type: object
      required:
      - ws_port
      properties:
        ws_port:
          type: integer
          format: int32
          minimum: 0
        wss_port:
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
    CoinSchema:
      type: object
      title: Coin
      required:
      - denom
      - amount
      properties:
        amount:
          type: string
        denom:
          type: string
    NodeGeoData:
      type: object
      required:
      - city
      - country
      - ip_address
      - latitude
      - longitude
      - org
      - postal
      - region
      - timezone
      properties:
        city:
          type: string
        country:
          type: string
        ip_address:
          type: string
        latitude:
          type: string
        longitude:
          type: string
        org:
          type: string
        postal:
          type: string
        region:
          type: string
        timezone:
          type: string
    IpPacketRouterDetailsV1:
      type: object
      required:
      - address
      properties:
        address:
          type: string
          description: address of the embedded ip packet router
    SphinxKeyV1:
      type: object
      required:
      - rotation_id
      - public_key
      properties:
        public_key:
          type: string
        rotation_id:
          type: integer
          format: int32
          minimum: 0