openapi: 3.1.0
x-stoplight:
  id: 5v6gvgzv53i7e
info:
  title: Relay API
  version: "1.0"
  description: A REST API to retrieve on-chain and off-chain data for Helium.
  license:
    name: Proprietary - Terms of Service
    url: "https://www.relaywireless.com/legal/terms-of-service"
  contact:
    name: Relay Team
    email: elijah@relaywireless.com
    url: "https://relaywireless.com"
servers:
  - url: "https://api.relaywireless.com/v1"
    description: ""
  - url: "http://localhost:3000/v1"
    description: ""
paths:
  /helium/l2/makers:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List makers
      tags:
        - Helium L2
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                    x-stoplight:
                      id: hu6nw0xjsfx28
                  objects:
                    type: array
                    x-stoplight:
                      id: p3mvjy3kykrsa
                    items:
                      $ref: "#/components/schemas/maker"
                      x-stoplight:
                        id: 5w7y94hphq840
                    readOnly: true
      operationId: get-makers
      x-stoplight:
        id: uw4pfm1um5v1v
      description: Returns the list of registered hotspot makers.

  /helium/l2/makers/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: |
          The identifier of the maker. Can be:
          - UUID: The unique identifier of the maker
          - Address: The Solana address of the maker
    get:
      summary: Get maker
      tags:
        - Helium L2
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/maker"
        "404":
          description: Maker not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Maker not found"
      operationId: get-maker
      description: Returns a specific maker by ID, UUID, or Solana address.
  /helium/l2/hotspots:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List hotspots
      tags:
        - Helium L2
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - records
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                    x-stoplight:
                      id: hotmeta123
                  records:
                    type: array
                    x-stoplight:
                      id: hotrecords123
                    items:
                      $ref: "#/components/schemas/hotspot"
                      x-stoplight:
                        id: hotitem123
                    readOnly: true
      operationId: get-hotspots
      x-stoplight:
        id: hotop123
      description: Returns the list of Helium hotspots with optional filtering.
      parameters:
        - schema:
            type: string
          in: query
          name: owner
          description: Filter by hotspot owner address.
        - schema:
            type: string
          in: query
          name: asset_id
          description: Filter by asset ID.
        - schema:
            type: string
          in: query
          name: ecc_key
          description: Filter by ECC key.
        - schema:
            type: string
          in: query
          name: networks
          description: Filter by network type(s). Use comma-separated values for multiple networks (e.g., "iot,mobile").
        - schema:
            type: string
          in: query
          name: maker_id
          description: Filter by maker ID.
        - schema:
            type: integer
          in: query
          name: iot_location
          description: Filter by IoT location (provide a decimal H3 cell index).
        - schema:
            type: integer
          in: query
          name: mobile_location
          description: Filter by Mobile location (provide a decimal H3 cell index).

  /helium/l2/hotspots/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: |
          The identifier of the hotspot. Can be:
          - UUID: The unique identifier of the hotspot
          - Asset ID: The Solana asset ID of the hotspot
          - ECC Key: The ECC key of the hotspot
    get:
      summary: Get hotspot
      tags:
        - Helium L2
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/hotspot"
        "404":
          description: Hotspot not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Hotspot not found"
      operationId: get-hotspot
      description: Returns a specific hotspot by ID, UUID, asset ID, or ECC key.
  /helium/l2/iot-reward-shares:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List IoT rewards
      tags:
        - Helium L2
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                    x-stoplight:
                      id: lywd67q9z92i5
                  records:
                    type: array
                    x-stoplight:
                      id: 12gzcugjjtnj8
                    items:
                      $ref: "#/components/schemas/iot-reward-share"
                      x-stoplight:
                        id: hdd4ypib1olm7
      operationId: get-iot-rewards
      description: "Retrieves the IoT rewards for a given time range, optionally allowing to filter by hotspot key and reward type."
      x-stoplight:
        id: mh9mdw246klh4
      parameters:
        - schema:
            type: string
          in: query
          name: from
          required: true
          description: The beginning of the date range to retrieve rewards for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          required: true
          description: The end of the date range to retrieve rewards for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: hotspot_key
          description: The hotspot key to retrieve rewards for.
        - schema:
            type: string
          in: query
          name: reward_type
          description: The reward type to retrieve rewards for.

  /helium/l2/iot-reward-shares/totals:
    get:
      summary: Get IoT reward totals
      tags:
        - Helium L2
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/iot-reward-totals"
      operationId: get-iot-reward-totals
      description: "Retrieves aggregated totals for IoT rewards for a given time range, optionally allowing to filter by hotspot key and reward type. Requires the OracleData feature with aggregate endpoints enabled."
      x-stoplight:
        id: iot-totals-op
      parameters:
        - schema:
            type: string
          in: query
          name: from
          required: true
          description: The beginning of the date range to retrieve reward totals for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          required: true
          description: The end of the date range to retrieve reward totals for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: hotspot_key
          description: The hotspot key to retrieve reward totals for.
        - schema:
            type: string
          in: query
          name: reward_type
          description: The reward type to retrieve reward totals for.
  /helium/l2/mobile-reward-shares:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List Mobile rewards
      tags:
        - Helium L2
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                    x-stoplight:
                      id: mob67q9z92i5
                  records:
                    type: array
                    x-stoplight:
                      id: mobzcugjjtnj8
                    items:
                      $ref: "#/components/schemas/mobile-reward-share"
                      x-stoplight:
                        id: mobypib1olm7
      operationId: get-mobile-rewards
      description: "Retrieves the Mobile rewards for a given time range, optionally allowing to filter by hotspot key and reward type."
      x-stoplight:
        id: mobmdw246klh4
      parameters:
        - schema:
            type: string
          in: query
          name: from
          required: true
          description: The beginning of the date range to retrieve rewards for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          required: true
          description: The end of the date range to retrieve rewards for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: hotspot_key
          description: The hotspot key to retrieve rewards for.
        - schema:
            type: string
          in: query
          name: reward_type
          description: The reward type to retrieve rewards for.

  /helium/l2/mobile-reward-shares/totals:
    get:
      summary: Get Mobile reward totals
      tags:
        - Helium L2
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mobile-reward-totals"
      operationId: get-mobile-reward-totals
      description: "Retrieves aggregated totals for Mobile rewards for a given time range, optionally allowing to filter by hotspot key and reward type. Requires the OracleData feature with aggregate endpoints enabled."
      x-stoplight:
        id: mobile-totals-op
      parameters:
        - schema:
            type: string
          in: query
          name: from
          required: true
          description: The beginning of the date range to retrieve reward totals for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          required: true
          description: The end of the date range to retrieve reward totals for. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: hotspot_key
          description: The hotspot key to retrieve reward totals for.
        - schema:
            type: string
          in: query
          name: reward_type
          description: The reward type to retrieve reward totals for.
  /helium/l1/accounts:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List L1 accounts
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                    x-stoplight:
                      id: l1-accounts-meta
                  objects:
                    type: array
                    x-stoplight:
                      id: l1-accounts-objects
                    items:
                      $ref: "#/components/schemas/l1-account"
                      x-stoplight:
                        id: l1-accounts-item
                    readOnly: true
      operationId: get-l1-accounts
      x-stoplight:
        id: l1-accounts-op
      description: Returns the list of Helium L1 blockchain accounts with optional filtering by address. Requires the HotspotData feature.
      parameters:
        - schema:
            type: string
          in: query
          name: address
          description: Filter by account address.

  /helium/l1/accounts/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: |
          The identifier of the account. Can be:
          - UUID: The unique identifier of the account
          - Address: The Helium address of the account
    get:
      summary: Get L1 account
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/l1-account"
        "404":
          description: Account not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Account not found"
      operationId: get-l1-account
      description: Returns a specific L1 account by ID or address. Requires the HotspotData feature.
  /helium/l1/transactions:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List L1 transactions
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                  objects:
                    type: array
                    items:
                      $ref: "#/components/schemas/l1-transaction"
                    readOnly: true
      operationId: get-l1-transactions
      description: Returns the list of Helium L1 blockchain transactions with optional filtering by hash, type, block and time range. Requires the HotspotData feature.
      parameters:
        - schema:
            type: string
          in: query
          name: transaction_hash
          description: Filter by transaction hash.
        - schema:
            type: string
          in: query
          name: type
          description: Filter by transaction type.
        - schema:
            type: integer
          in: query
          name: block
          description: Filter by block number.
        - schema:
            type: string
          in: query
          name: from
          description: Minimum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          description: Maximum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).

  /helium/l1/transactions/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: |
          The identifier of the transaction. Can be:
          - UUID: The unique identifier of the transaction
          - Transaction Hash: The Helium transaction hash
    get:
      summary: Get L1 transaction
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/l1-transaction"
        "404":
          description: Transaction not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Transaction not found"
      operationId: get-l1-transaction
      description: Returns a specific L1 transaction by ID or transaction hash. Requires the HotspotData feature.
  /helium/l1/transaction-actors:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List L1 transaction actors
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                  objects:
                    type: array
                    items:
                      $ref: "#/components/schemas/l1-transaction-actor"
                    readOnly: true
      operationId: get-l1-transaction-actors
      description: Returns the list of Helium L1 transaction actors with optional filtering by actor address, role, transaction hash and block. Requires the HotspotData feature.
      parameters:
        - schema:
            type: string
          in: query
          name: actor_address
          description: Filter by actor address.
        - schema:
            type: string
          in: query
          name: actor_role
          description: Filter by actor role.
        - schema:
            type: string
          in: query
          name: transaction_hash
          description: Filter by transaction hash.
        - schema:
            type: integer
          in: query
          name: block
          description: Filter by block number.

  /helium/l1/dc-burns:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List L1 DC burns
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                  objects:
                    type: array
                    items:
                      $ref: "#/components/schemas/l1-dc-burn"
                    readOnly: true
      operationId: get-l1-dc-burns
      description: Returns the list of Helium L1 DC burns with optional filtering by actor address, transaction hash, type, block and time range. Requires the HotspotData feature.
      parameters:
        - schema:
            type: string
          in: query
          name: actor_address
          description: Filter by actor address.
        - schema:
            type: string
          in: query
          name: transaction_hash
          description: Filter by transaction hash.
        - schema:
            type: string
          in: query
          name: type
          description: Filter by burn type.
        - schema:
            type: integer
          in: query
          name: block
          description: Filter by block number.
        - schema:
            type: string
          in: query
          name: from
          description: Minimum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          description: Maximum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).

  /helium/l1/gateways:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List L1 gateways
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                  objects:
                    type: array
                    items:
                      $ref: "#/components/schemas/l1-gateway"
                    readOnly: true
      operationId: get-l1-gateways
      description: Returns the list of Helium L1 gateways with optional filtering by address, owner, payer, mode, name, and location hex. Requires the HotspotData feature.
      parameters:
        - schema:
            type: string
          in: query
          name: address
          description: Filter by gateway address.
        - schema:
            type: string
          in: query
          name: owner_address
          description: Filter by owner address.
        - schema:
            type: string
          in: query
          name: payer_address
          description: Filter by payer address.
        - schema:
            type: string
          in: query
          name: mode
          description: Filter by mode.
        - schema:
            type: string
          in: query
          name: name
          description: Filter by name.
        - schema:
            type: string
          in: query
          name: location_hex
          description: Filter by H3 location hex.

  /helium/l1/gateways/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: |
          The identifier of the gateway. Can be:
          - UUID: The unique identifier of the gateway
          - Address: The Helium address of the gateway
    get:
      summary: Get L1 gateway
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/l1-gateway"
        "404":
          description: Gateway not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Gateway not found"
      operationId: get-l1-gateway
      description: Returns a specific L1 gateway by ID or address. Requires the HotspotData feature.
  /helium/l1/packets:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List L1 packets
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                  objects:
                    type: array
                    items:
                      $ref: "#/components/schemas/l1-packet"
                    readOnly: true
      operationId: get-l1-packets
      description: Returns the list of Helium L1 packets with optional filtering by gateway, transaction hash, block and time range. Requires the HotspotData feature.
      parameters:
        - schema:
            type: string
          in: query
          name: gateway_address
          description: Filter by gateway address.
        - schema:
            type: string
          in: query
          name: transaction_hash
          description: Filter by transaction hash.
        - schema:
            type: integer
          in: query
          name: block
          description: Filter by block number.
        - schema:
            type: string
          in: query
          name: from
          description: Minimum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          description: Maximum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).

  /helium/l1/rewards:
    parameters:
      - $ref: "#/components/parameters/PageParameter"
      - $ref: "#/components/parameters/PerPageParameter"
    get:
      summary: List L1 rewards
      tags:
        - Helium L1
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - objects
                properties:
                  meta:
                    $ref: "#/components/schemas/pagination-info"
                  objects:
                    type: array
                    items:
                      $ref: "#/components/schemas/l1-reward"
                    readOnly: true
      operationId: get-l1-rewards
      description: Returns the list of Helium L1 rewards with optional filtering by account address, gateway address, transaction hash, type, block and time range. Requires the HotspotData feature.
      parameters:
        - schema:
            type: string
          in: query
          name: account_address
          description: Filter by account address.
        - schema:
            type: string
          in: query
          name: gateway_address
          description: Filter by gateway address.
        - schema:
            type: string
          in: query
          name: transaction_hash
          description: Filter by transaction hash.
        - schema:
            type: string
          in: query
          name: type
          description: Filter by reward type.
        - schema:
            type: integer
          in: query
          name: block
          description: Filter by block number.
        - schema:
            type: string
          in: query
          name: from
          description: Minimum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).
        - schema:
            type: string
          in: query
          name: to
          description: Maximum timestamp for time filter. Must be in ISO8601 format (e.g., 2024-01-01T00:00:00Z).

components:
  parameters:
    PageParameter:
      name: page
      in: query
      schema:
        type: integer
      description: "Page number for pagination (default: 1)."
    PerPageParameter:
      name: per_page
      in: query
      schema:
        type: integer
      description: "Number of items per page (default: 25, max: 100)."
  schemas:
    pagination-info:
      title: Pagination Information
      x-stoplight:
        id: i87ru3rgvq4no
      type: object
      required:
        - count
        - total_pages
        - current_page
      properties:
        count:
          type: integer
          x-stoplight:
            id: ql69bgkv0ik08
          minimum: 0
          readOnly: true
        total_pages:
          type: integer
          x-stoplight:
            id: fj1u3txslqhct
          minimum: 1
          readOnly: true
        current_page:
          type: integer
          x-stoplight:
            id: 79bt81jb78i23
          minimum: 1
        next_page:
          type: integer
          x-stoplight:
            id: aoikzmt80ozby
          minimum: 2
          readOnly: true
        prev_page:
          type: integer
          x-stoplight:
            id: thvquty4xb74j
          minimum: 1
          readOnly: true
    hotspot:
      title: Hotspot
      x-stoplight:
        id: hotspot123
      type: object
      required:
        - id
        - asset_id
        - ecc_key
        - owner
        - networks
        - name
      properties:
        id:
          type: string
          x-stoplight:
            id: hotid123
          format: uuid
          readOnly: true
        asset_id:
          type: string
          x-stoplight:
            id: hotasset123
          readOnly: true
        ecc_key:
          type: string
          x-stoplight:
            id: hotecc123
          readOnly: true
        owner:
          type: string
          x-stoplight:
            id: hotowner123
          readOnly: true
        networks:
          type: array
          x-stoplight:
            id: hotnetworks123
          items:
            type: string
            enum:
              - iot
              - mobile
          readOnly: true
        name:
          type: string
          x-stoplight:
            id: hotname123
          readOnly: true
        maker:
          $ref: "#/components/schemas/maker"
          x-stoplight:
            id: hotmaker123
        iot_info:
          $ref: "#/components/schemas/hotspot-iot-info"
          x-stoplight:
            id: hotiot123
        mobile_info:
          $ref: "#/components/schemas/hotspot-mobile-info"
          x-stoplight:
            id: hotmobile123
    hotspot-iot-info:
      title: Hotspot IoT Info
      x-stoplight:
        id: hotiotinfo123
      type: object
      properties:
        location:
          type: integer
          x-stoplight:
            id: hotiotloc123
          readOnly: true
        elevation:
          type: integer
          x-stoplight:
            id: hotiotelev123
          readOnly: true
        gain:
          type: integer
          x-stoplight:
            id: hotiotgain123
          readOnly: true
        is_full_hotspot:
          type: boolean
          x-stoplight:
            id: hotiotfull123
          readOnly: true
        num_location_asserts:
          type: integer
          x-stoplight:
            id: hotiotasserts123
          readOnly: true
        is_active:
          type: boolean
          x-stoplight:
            id: hotiotactive123
          readOnly: true
        dc_onboarding_fee_paid:
          type: integer
          x-stoplight:
            id: hotiotdc123
          readOnly: true
    hotspot-mobile-info:
      title: Hotspot Mobile Info
      x-stoplight:
        id: hotmobileinfo123
      type: object
      properties:
        location:
          type: integer
          x-stoplight:
            id: hotmobileloc123
          readOnly: true
        is_full_hotspot:
          type: boolean
          x-stoplight:
            id: hotmobilefull123
          readOnly: true
        num_location_asserts:
          type: integer
          x-stoplight:
            id: hotmobileasserts123
          readOnly: true
        is_active:
          type: boolean
          x-stoplight:
            id: hotmobileactive123
          readOnly: true
        dc_onboarding_fee_paid:
          type: integer
          x-stoplight:
            id: hotmobiledc123
          readOnly: true
        device_type:
          type: string
          x-stoplight:
            id: hotmobiledevice123
          enum:
            - cbrs
            - wifi_indoor
            - wifi_outdoor
            - wifi_data_only
          readOnly: true
        antenna:
          type: integer
          x-stoplight:
            id: hotmobileantenna123
          readOnly: true
        azimuth:
          type: integer
          x-stoplight:
            id: hotmobileazimuth123
          readOnly: true
        mechanical_down_tilt:
          type: integer
          x-stoplight:
            id: hotmobilemech123
          readOnly: true
        electrical_down_tilt:
          type: integer
          x-stoplight:
            id: hotmobileelec123
          readOnly: true
    iot-reward-share:
      title: IoT Reward Share
      x-stoplight:
        id: 69tjvc6qjo1ru
      type: object
      required:
        - id
        - reward_type
        - start_period
        - end_period
        - reward_manifest
        - reward_detail
      properties:
        id:
          type: string
          x-stoplight:
            id: wl93g4497vz3y
          format: uuid
          readOnly: true
        reward_type:
          x-stoplight:
            id: u40c67m87ut1y
          enum:
            - gateway_reward
            - operational_reward
            - unallocated_reward
          readOnly: true
        start_period:
          type: string
          x-stoplight:
            id: 0miscypl3qsfu
          format: date-time
          readOnly: true
        end_period:
          type: string
          x-stoplight:
            id: h85oetvk57t9l
          format: date-time
          readOnly: true
        reward_manifest:
          $ref: "#/components/schemas/reward-manifest"
          x-stoplight:
            id: osm7lj9q9hinh
        reward_detail:
          x-stoplight:
            id: fudzhepjd8tc7
          oneOf:
            - $ref: "#/components/schemas/iot-gateway-reward-detail"
            - $ref: "#/components/schemas/iot-operational-reward-detail"
            - $ref: "#/components/schemas/iot-unallocated-reward-detail"
          type: object
    reward-manifest:
      title: Reward Manifest
      x-stoplight:
        id: iwaqn8qw5nv7b
      type: object
      required:
        - id
        - written_files
        - start_timestamp
        - end_timestamp
        - epoch
        - price
        - reward_type
        - reward_detail
      properties:
        id:
          type: string
          x-stoplight:
            id: 93qlo6d9gqkhe
          format: uuid
        written_files:
          type: array
          x-stoplight:
            id: a4dch2u20v5vs
          items:
            x-stoplight:
              id: ereg2vy7e3xai
            type: string
            readOnly: true
          readOnly: true
        start_timestamp:
          type: string
          x-stoplight:
            id: 98j1103nyoslw
          format: date-time
          readOnly: true
        end_timestamp:
          type: string
          x-stoplight:
            id: l4cyao8t4ctnj
          format: date-time
          readOnly: true
        epoch:
          type: integer
          x-stoplight:
            id: h4fyxaggu2btz
        price:
          type: integer
          x-stoplight:
            id: 370yn2kp8mafo
        reward_type:
          x-stoplight:
            id: k68lc3yyibgwx
          enum:
            - iot
            - mobile
          readOnly: true
        reward_detail:
          x-stoplight:
            id: po069f8iaxtew
          oneOf:
            - $ref: "#/components/schemas/iot-reward-manifest-detail"
            - $ref: "#/components/schemas/mobile-reward-manifest-detail"
          type: object
    iot-gateway-reward-detail:
      title: IoT Gateway Reward Detail
      x-stoplight:
        id: pud4o9e5ttxr1
      type: object
      description: Gateway reward detail
      required:
        - hotspot_key
      properties:
        hotspot_key:
          type: string
          x-stoplight:
            id: qrnzpzb3m4b63
          readOnly: true
        beacon_amount:
          type: integer
          x-stoplight:
            id: i7kmxwp9lls5z
          minimum: 0
          readOnly: true
        witness_amount:
          type: integer
          x-stoplight:
            id: uxmjgpxsd7cjo
          minimum: 0
          readOnly: true
        dc_transfer_amount:
          type: integer
          x-stoplight:
            id: 9zzv45na536ri
          minimum: 0
          readOnly: true
        formatted_beacon_amount:
          type: string
          x-stoplight:
            id: omaxzcmve0rzh
          readOnly: true
        formatted_witness_amount:
          type: string
          x-stoplight:
            id: d5qi934ett4px
          readOnly: true
        formatted_dc_transfer_amount:
          type: string
          x-stoplight:
            id: wkomxheqgy9ge
          readOnly: true
    iot-operational-reward-detail:
      title: IoT Operational Reward Detail
      x-stoplight:
        id: pp4i3zqo8p2m5
      type: object
      description: Operational reward detail
      required:
        - amount
      properties:
        amount:
          type: integer
          x-stoplight:
            id: vmag54bj9bela
          minimum: 0
          readOnly: true
        formatted_amount:
          type: string
          x-stoplight:
            id: 4xd3825mss7br
          readOnly: true
    iot-unallocated-reward-detail:
      title: IoT Unallocated Reward Detail
      x-stoplight:
        id: a2ja5mznaycsp
      type: object
      description: Unallocated reward detail
      required:
        - unallocated_reward_type
        - amount
      properties:
        unallocated_reward_type:
          x-stoplight:
            id: gdhfk990n4c6g
          enum:
            - unallocated_reward_type_poc
            - unallocated_reward_type_operation
            - unallocated_reward_type_oracle
            - unallocated_reward_type_data
          readOnly: true
        amount:
          type: integer
          x-stoplight:
            id: odb5pz58iredi
          minimum: 0
          readOnly: true
        formatted_amount:
          type: string
          x-stoplight:
            id: t3b3dbr1da7w1
          readOnly: true
    iot-reward-manifest-detail:
      title: IoT Reward Manifest Detail
      x-stoplight:
        id: bcr3no03ki6k2
      type: object
      description: IoT reward manifest detail
      required:
        - poc_bones_per_beacon_reward_share
        - poc_bones_per_witness_reward_share
        - dc_bones_per_share
        - token
      properties:
        poc_bones_per_beacon_reward_share:
          type: string
          x-stoplight:
            id: mtsln3ea346ka
          readOnly: true
        poc_bones_per_witness_reward_share:
          type: string
          x-stoplight:
            id: 3rohxarksa8pa
          readOnly: true
        dc_bones_per_share:
          type: integer
          x-stoplight:
            id: tiucl4a1cojxm
          readOnly: true
        token:
          x-stoplight:
            id: 2swrktxeas35z
          enum:
            - iot_reward_token_iot
            - iot_reward_token_hnt
          readOnly: true
    mobile-reward-manifest-detail:
      title: Mobile Reward Manifest Detail
      x-stoplight:
        id: msmzsml3sb7zs
      type: object
      description: Mobile reward manifest detail
      required:
        - poc_bones_per_reward_share
        - boosted_poc_bones_per_reward_share
        - service_provider_promotions
        - token
      properties:
        poc_bones_per_reward_share:
          type: integer
          x-stoplight:
            id: 0xqc2cmjfysug
          readOnly: true
        boosted_poc_bones_per_reward_share:
          type: integer
          x-stoplight:
            id: lcemxhlc4wmzv
          readOnly: true
        service_provider_promotions:
          type: array
          x-stoplight:
            id: nqgfw9i2uu3ws
          items:
            x-stoplight:
              id: ydyydpkegtgyg
            type: object
            required:
              - service_provider
              - incentive_escrow_fund_bps
              - promotions
            properties:
              service_provider:
                type: string
                x-stoplight:
                  id: 3qe4hhjy1wor0
                readOnly: true
              incentive_escrow_fund_bps:
                type: integer
                x-stoplight:
                  id: nk8ew8xo6inw6
                readOnly: true
              promotions:
                type: array
                x-stoplight:
                  id: b93rv62s98blf
                items:
                  x-stoplight:
                    id: xde2pmh8tl0ov
                  type: object
                  required:
                    - entity
                    - start_ts
                    - end_ts
                    - shares
                  properties:
                    entity:
                      type: string
                      x-stoplight:
                        id: p8fkc7j1lh7ce
                      readOnly: true
                    start_ts:
                      type: string
                      x-stoplight:
                        id: f0g9y8sp6ys0w
                      format: date-time
                      readOnly: true
                    end_ts:
                      type: string
                      x-stoplight:
                        id: 4zv1z9ibm9kfp
                      format: date-time
                      readOnly: true
                    shares:
                      type: integer
                      x-stoplight:
                        id: 27lwsd7t4gou3
                readOnly: true
          readOnly: true
        token:
          x-stoplight:
            id: uin9038dq2q1m
          enum:
            - mobile_reward_token_mobile
            - mobile_reward_token_hnt
          readOnly: true
    mobile-reward-share:
      title: Mobile Reward Share
      x-stoplight:
        id: mob6qjo1ru
      type: object
      required:
        - id
        - reward_type
        - start_period
        - end_period
        - reward_manifest
        - reward_detail
      properties:
        id:
          type: string
          x-stoplight:
            id: mob4497vz3y
          format: uuid
          readOnly: true
        reward_type:
          x-stoplight:
            id: mob67m87ut1y
          enum:
            - radio_reward
            - gateway_reward
            - subscriber_reward
            - service_provider_reward
            - unallocated_reward
            - radio_reward_v2
            - promotion_reward
          readOnly: true
        start_period:
          type: string
          x-stoplight:
            id: mobcypl3qsfu
          format: date-time
          readOnly: true
        end_period:
          type: string
          x-stoplight:
            id: mobetvk57t9l
          format: date-time
          readOnly: true
        reward_manifest:
          $ref: "#/components/schemas/reward-manifest"
          x-stoplight:
            id: moblj9q9hinh
        reward_detail:
          x-stoplight:
            id: mobhepjd8tc7
          oneOf:
            - $ref: "#/components/schemas/mobile-radio-reward-detail"
            - $ref: "#/components/schemas/mobile-gateway-reward-detail"
            - $ref: "#/components/schemas/mobile-subscriber-reward-detail"
            - $ref: "#/components/schemas/mobile-service-provider-reward-detail"
            - $ref: "#/components/schemas/mobile-unallocated-reward-detail"
            - $ref: "#/components/schemas/mobile-radio-reward-v2-detail"
            - $ref: "#/components/schemas/mobile-promotion-reward-detail"
          type: object
    mobile-radio-reward-detail:
      title: Mobile Radio Reward Detail
      x-stoplight:
        id: mobo9e5ttxr1
      type: object
      description: Mobile radio reward detail
      required:
        - hotspot_key
        - cbsd_id
      properties:
        hotspot_key:
          type: string
          x-stoplight:
            id: mobzpzb3m4b63
          readOnly: true
        cbsd_id:
          type: string
          x-stoplight:
            id: mobsd_id234
          readOnly: true
        dc_transfer_reward:
          type: integer
          x-stoplight:
            id: mobmxwp9lls5z
          minimum: 0
          readOnly: true
        formatted_dc_transfer_reward:
          type: string
          x-stoplight:
            id: mobxzcmve0rzh
          readOnly: true
        poc_reward:
          type: integer
          x-stoplight:
            id: mobqi934ett4px
          minimum: 0
          readOnly: true
        formatted_poc_reward:
          type: string
          x-stoplight:
            id: mobkomxheqgy9ge
          readOnly: true
        offloaded_bytes:
          type: number
          x-stoplight:
            id: moboffloadedbytes123
          readOnly: true
          description: The amount of data offloaded in bytes, calculated from DC transfer reward
    mobile-gateway-reward-detail:
      title: Mobile Gateway Reward Detail
      x-stoplight:
        id: mobgateway123
      type: object
      description: Mobile gateway reward detail
      required:
        - hotspot_key
      properties:
        hotspot_key:
          type: string
          x-stoplight:
            id: mobgateway456
          readOnly: true
        dc_transfer_reward:
          type: integer
          x-stoplight:
            id: mobgateway789
          minimum: 0
          readOnly: true
        formatted_dc_transfer_reward:
          type: string
          x-stoplight:
            id: mobgateway012
          readOnly: true
        offloaded_bytes:
          type: number
          x-stoplight:
            id: mobgatewayoffloadedbytes123
          readOnly: true
          description: The amount of data offloaded in bytes, calculated from DC transfer reward
    mobile-subscriber-reward-detail:
      title: Mobile Subscriber Reward Detail
      x-stoplight:
        id: mobsub123
      type: object
      description: Mobile subscriber reward detail
      required:
        - subscriber_id
      properties:
        subscriber_id:
          type: string
          x-stoplight:
            id: mobsub456
          readOnly: true
        discovery_location_amount:
          type: integer
          x-stoplight:
            id: mobsub789
          minimum: 0
          readOnly: true
        formatted_discovery_location_amount:
          type: string
          x-stoplight:
            id: mobsub012
          readOnly: true
        formatted_subscriber_reward:
          type: string
          x-stoplight:
            id: mobsub345
          readOnly: true
        subscriber_reward:
          type: integer
          x-stoplight:
            id: sg1wr2dbj5jmz
    mobile-service-provider-reward-detail:
      title: Mobile Service Provider Reward Detail
      x-stoplight:
        id: mobsp123
      type: object
      description: Mobile service provider reward detail
      required:
        - service_provider_id
        - amount
      properties:
        service_provider_id:
          type: string
          x-stoplight:
            id: mobsp456
          readOnly: true
        amount:
          type: integer
          x-stoplight:
            id: mobsp789
          minimum: 0
          readOnly: true
        formatted_amount:
          type: string
          x-stoplight:
            id: mobsp012
          readOnly: true
    mobile-unallocated-reward-detail:
      title: Mobile Unallocated Reward Detail
      x-stoplight:
        id: mobuna123
      type: object
      description: Mobile unallocated reward detail
      required:
        - unallocated_reward_type
        - amount
      properties:
        unallocated_reward_type:
          x-stoplight:
            id: mobuna456
          enum:
            - unallocated_reward_type_poc
            - unallocated_reward_type_discovery_location
            - unallocated_reward_type_mapper
            - unallocated_reward_type_service_provider
            - unallocated_reward_type_oracle
            - unallocated_reward_type_data
          readOnly: true
        amount:
          type: integer
          x-stoplight:
            id: mobuna789
          minimum: 0
          readOnly: true
        formatted_amount:
          type: string
          x-stoplight:
            id: n4idnh6qqsyeo
          readOnly: true
    mobile-radio-reward-v2-detail:
      title: Mobile Radio Reward V2 Detail
      x-stoplight:
        id: mobv2123
      type: object
      description: Mobile radio reward v2 detail
      required:
        - hotspot_key
        - cbsd_id
      properties:
        hotspot_key:
          type: string
          x-stoplight:
            id: mobv2456
          readOnly: true
        cbsd_id:
          type: string
          x-stoplight:
            id: mobv2789
          readOnly: true
        base_coverage_points_sum:
          type: number
          x-stoplight:
            id: mobv2012
          readOnly: true
        boosted_coverage_points_sum:
          type: number
          x-stoplight:
            id: mobv2345
          readOnly: true
        base_reward_shares:
          type: number
          x-stoplight:
            id: mobv2678
          readOnly: true
        boosted_reward_shares:
          type: number
          x-stoplight:
            id: mobv2901
          readOnly: true
        base_poc_reward:
          type: integer
          x-stoplight:
            id: mobv2234
          minimum: 0
          readOnly: true
        boosted_poc_reward:
          type: integer
          x-stoplight:
            id: mobv2567
          minimum: 0
          readOnly: true
        seniority_timestamp:
          type: string
          x-stoplight:
            id: mobv2890
          format: date-time
          readOnly: true
        coverage_object:
          type: string
          x-stoplight:
            id: mobv2123cov
          readOnly: true
        location_trust_score_multiplier:
          type: number
          x-stoplight:
            id: mobv2456loc
          readOnly: true
        speedtest_multiplier:
          type: number
          x-stoplight:
            id: mobv2789spe
          readOnly: true
        sp_boosted_hex_status:
          type: string
          x-stoplight:
            id: mobv2012sp
          readOnly: true
        oracle_boosted_hex_status:
          type: string
          x-stoplight:
            id: mobv2345or
          readOnly: true
    mobile-promotion-reward-detail:
      title: Mobile Promotion Reward Detail
      x-stoplight:
        id: mobprom123
      type: object
      description: Mobile promotion reward detail
      required:
        - entity
      properties:
        entity:
          type: string
          x-stoplight:
            id: mobprom456
          readOnly: true
        service_provider_amount:
          type: integer
          x-stoplight:
            id: mobprom789
          minimum: 0
          readOnly: true
        matched_amount:
          type: integer
          x-stoplight:
            id: mobprom012
          minimum: 0
          readOnly: true
    iot-reward-totals:
      title: IoT Reward Totals
      x-stoplight:
        id: iot-totals-schema
      type: object
      description: Aggregated totals for IoT rewards
      required:
        - total_beacon_amount
        - total_witness_amount
        - total_dc_transfer_amount
        - total_amount
      properties:
        total_beacon_amount:
          type: integer
          x-stoplight:
            id: iot-totals-beacon
          minimum: 0
          readOnly: true
          description: Total beacon amount across all matching rewards
        total_witness_amount:
          type: integer
          x-stoplight:
            id: iot-totals-witness
          minimum: 0
          readOnly: true
          description: Total witness amount across all matching rewards
        total_dc_transfer_amount:
          type: integer
          x-stoplight:
            id: iot-totals-dc
          minimum: 0
          readOnly: true
          description: Total DC transfer amount across all matching rewards
        total_amount:
          type: integer
          x-stoplight:
            id: iot-totals-amount
          minimum: 0
          readOnly: true
          description: Total amount across all matching rewards
    mobile-reward-totals:
      title: Mobile Reward Totals
      x-stoplight:
        id: mobile-totals-schema
      type: object
      description: Aggregated totals for Mobile rewards
      required:
        - total_dc_transfer_reward
        - total_poc_reward
        - total_subscriber_reward
        - total_discovery_location_amount
        - total_service_provider_amount
        - total_matched_amount
        - total_offloaded_bytes
      properties:
        total_dc_transfer_reward:
          type: integer
          x-stoplight:
            id: mobile-totals-dc
          minimum: 0
          readOnly: true
          description: Total DC transfer reward across all matching rewards
        total_poc_reward:
          type: integer
          x-stoplight:
            id: mobile-totals-poc
          minimum: 0
          readOnly: true
          description: Total POC reward across all matching rewards
        total_subscriber_reward:
          type: integer
          x-stoplight:
            id: mobile-totals-subscriber
          minimum: 0
          readOnly: true
          description: Total subscriber reward across all matching rewards
        total_discovery_location_amount:
          type: integer
          x-stoplight:
            id: mobile-totals-discovery
          minimum: 0
          readOnly: true
          description: Total discovery location amount across all matching rewards
        total_service_provider_amount:
          type: integer
          x-stoplight:
            id: mobile-totals-sp
          minimum: 0
          readOnly: true
          description: Total service provider amount across all matching rewards
        total_matched_amount:
          type: integer
          x-stoplight:
            id: mobile-totals-matched
          minimum: 0
          readOnly: true
          description: Total matched amount across all matching rewards
        total_offloaded_bytes:
          type: number
          x-stoplight:
            id: mobile-totals-offloaded-bytes
          readOnly: true
          description: Total amount of data offloaded in bytes across all matching rewards
    maker:
      title: maker
      x-stoplight:
        id: vlbhye2jx9s0p
      type: object
      required:
        - id
        - address
        - update_authority
        - issuing_authority
        - name
        - bump_seed
        - collection
        - merkle_tree
        - collection_bump_seed
        - dao
      properties:
        id:
          type: string
          x-stoplight:
            id: r3ej9jb6mmlqi
          format: uuid
          readOnly: true
        address:
          type: string
          x-stoplight:
            id: izw26h1mo1bms
          readOnly: true
        update_authority:
          type: string
          x-stoplight:
            id: z6fn142sbvr3p
          readOnly: true
        issuing_authority:
          type: string
          x-stoplight:
            id: 8en7f2cnydydb
          readOnly: true
        name:
          type: string
          x-stoplight:
            id: 2tlgh45lyob5u
          readOnly: true
        bump_seed:
          type: integer
          x-stoplight:
            id: ei7sujbos8lz0
          readOnly: true
        collection:
          type: string
          x-stoplight:
            id: b54jzkt3m3jlr
          readOnly: true
        merkle_tree:
          type: string
          x-stoplight:
            id: c4h8aeri82a8a
          readOnly: true
        collection_bump_seed:
          type: integer
          x-stoplight:
            id: u5no22pelv6ga
          readOnly: true
        dao:
          type: string
          x-stoplight:
            id: zjx5wut25idie
          readOnly: true
    l1-account:
      title: L1 Account
      x-stoplight:
        id: l1-account-schema
      type: object
      required:
        - id
        - address
        - balance
        - nonce
        - dc_balance
        - dc_nonce
        - security_balance
        - security_nonce
        - first_block
        - last_block
        - staked_balance
        - mobile_balance
        - iot_balance
      properties:
        id:
          type: string
          x-stoplight:
            id: l1-account-id
          format: uuid
          readOnly: true
          description: Unique identifier for the account
        address:
          type: string
          x-stoplight:
            id: l1-account-address
          readOnly: true
          description: The Helium L1 blockchain address of the account
        balance:
          type: integer
          x-stoplight:
            id: l1-account-balance
          minimum: 0
          readOnly: true
          description: The HNT balance of the account in bones (1 HNT = 100,000,000 bones)
        nonce:
          type: integer
          x-stoplight:
            id: l1-account-nonce
          minimum: 0
          readOnly: true
          description: The transaction nonce for the account
        dc_balance:
          type: integer
          x-stoplight:
            id: l1-account-dc-balance
          minimum: 0
          readOnly: true
          description: The Data Credits (DC) balance of the account
        dc_nonce:
          type: integer
          x-stoplight:
            id: l1-account-dc-nonce
          minimum: 0
          readOnly: true
          description: The Data Credits transaction nonce for the account
        security_balance:
          type: integer
          x-stoplight:
            id: l1-account-security-balance
          minimum: 0
          readOnly: true
          description: The security token balance of the account
        security_nonce:
          type: integer
          x-stoplight:
            id: l1-account-security-nonce
          minimum: 0
          readOnly: true
          description: The security token transaction nonce for the account
        first_block:
          type: integer
          x-stoplight:
            id: l1-account-first-block
          minimum: 0
          readOnly: true
          description: The first block number where this account appeared
        last_block:
          type: integer
          x-stoplight:
            id: l1-account-last-block
          minimum: 0
          readOnly: true
          description: The last block number where this account was active
        staked_balance:
          type: integer
          x-stoplight:
            id: l1-account-staked-balance
          minimum: 0
          readOnly: true
          description: The staked HNT balance of the account
        mobile_balance:
          type: integer
          x-stoplight:
            id: l1-account-mobile-balance
          minimum: 0
          readOnly: true
          description: The Mobile token balance of the account
        iot_balance:
          type: integer
          x-stoplight:
            id: l1-account-iot-balance
          minimum: 0
          readOnly: true
          description: The IoT token balance of the account
    l1-transaction:
      title: L1 Transaction
      type: object
      required:
        - id
        - block
        - transaction_hash
        - type
        - fields
        - time
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        block:
          type: integer
          readOnly: true
        transaction_hash:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        fields:
          type: object
          readOnly: true
        time:
          type: integer
          readOnly: true
    l1-transaction-actor:
      title: L1 Transaction Actor
      type: object
      required:
        - id
        - actor_address
        - actor_role
        - transaction_hash
        - block
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        actor_address:
          type: string
          readOnly: true
        actor_role:
          type: string
          readOnly: true
        transaction_hash:
          type: string
          readOnly: true
        block:
          type: integer
          readOnly: true
    l1-dc-burn:
      title: L1 DC Burn
      type: object
      required:
        - id
        - block
        - transaction_hash
        - actor_address
        - type
        - amount
        - oracle_price
        - time
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        block:
          type: integer
          readOnly: true
        transaction_hash:
          type: string
          readOnly: true
        actor_address:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        amount:
          type: integer
          readOnly: true
        oracle_price:
          type: integer
          readOnly: true
        time:
          type: integer
          readOnly: true
    l1-gateway:
      title: L1 Gateway
      type: object
      required:
        - id
        - address
        - owner_address
        - payer_address
        - first_block
        - last_block
        - nonce
        - name
        - mode
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        address:
          type: string
          readOnly: true
        owner_address:
          type: string
          readOnly: true
        payer_address:
          type: string
          readOnly: true
        location:
          type: string
          readOnly: true
        location_hex:
          type: string
          readOnly: true
        last_poc_challenge:
          type: integer
          readOnly: true
        last_poc_onion_key_hash:
          type: string
          readOnly: true
        witnesses:
          type: object
          readOnly: true
        first_block:
          type: integer
          readOnly: true
        last_block:
          type: integer
          readOnly: true
        nonce:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        first_timestamp:
          type: string
          format: date-time
          readOnly: true
        reward_scale:
          type: number
          readOnly: true
        elevation:
          type: integer
          readOnly: true
        gain:
          type: integer
          readOnly: true
        mode:
          type: string
          readOnly: true
    l1-packet:
      title: L1 Packet
      type: object
      required:
        - id
        - block
        - transaction_hash
        - time
        - gateway_address
        - num_packets
        - num_dcs
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        block:
          type: integer
          readOnly: true
        transaction_hash:
          type: string
          readOnly: true
        time:
          type: integer
          readOnly: true
        gateway_address:
          type: string
          readOnly: true
        num_packets:
          type: integer
          readOnly: true
        num_dcs:
          type: integer
          readOnly: true
    l1-reward:
      title: L1 Reward
      type: object
      required:
        - id
        - block
        - transaction_hash
        - time
        - account_address
        - gateway_address
        - amount
        - type
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        block:
          type: integer
          readOnly: true
        transaction_hash:
          type: string
          readOnly: true
        time:
          type: integer
          readOnly: true
        account_address:
          type: string
          readOnly: true
        gateway_address:
          type: string
          readOnly: true
        amount:
          type: integer
          readOnly: true
        type:
          type: string
          readOnly: true
  securitySchemes:
    Authorization:
      name: Bearer API_KEY
      type: apiKey
      in: header
security:
  - Authorization: []
tags:
  - name: Helium L1
  - name: Helium L2
