IOTA chains API

The chains API from IOTA — 18 operation(s) for chains.

Operations 19

GET /v1/chain Get information about a specific chain #
DELETE /v1/chain/access-node/{peer} Remove an access node. #
PUT /v1/chain/access-node/{peer} Configure a trusted node to be an access node. #
POST /v1/chain/activate/{chainID} Activate a chain #
POST /v1/chain/callview Call a view function on a contract by Hname #
POST /v1/chain/chainrecord/{chainID} Sets the chain record. #
GET /v1/chain/committee Get information about the deployed committee #
GET /v1/chain/contracts Get all available chain contracts #
POST /v1/chain/deactivate Deactivate a chain #
POST /v1/chain/dump-accounts dump accounts information into a humanly-readable format #
POST /v1/chain/estimategas-offledger Estimates gas for a given off-ledger ISC request #
POST /v1/chain/estimategas-onledger Estimates gas for a given on-ledger ISC request #
POST /v1/chain/evm Ethereum JSON-RPC
GET /v1/chain/evm/ws Ethereum JSON-RPC (Websocket transport)
GET /v1/chain/mempool Get the contents of the mempool. #
GET /v1/chain/receipts/{requestID} Get a receipt from a request ID #
GET /v1/chain/requests/{requestID}/wait Wait until the given request has been processed by the node #
POST /v1/chain/rotate Rotate a chain #
GET /v1/chain/state/{stateKey} Fetch the raw value associated with the given key in the chain state #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/iota-chains-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

iota-chains-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: REST API for the Wasp node
  title: Wasp auth Chains API
  version: '0'
servers:
- url: /
tags:
- name: chains
paths:
  /v1/chain:
    get:
      operationId: getChainInfo
      parameters:
      - description: Block index or trie root
        in: query
        name: block
        schema:
          format: string
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChainInfoResponse'
          description: Information about a specific chain
      summary: Get information about a specific chain
      tags:
      - chains
  /v1/chain/access-node/{peer}:
    delete:
      operationId: removeAccessNode
      parameters:
      - description: Name or PubKey (hex) of the trusted peer
        in: path
        name: peer
        required: true
        schema:
          format: string
          type: string
      responses:
        '200':
          content: {}
          description: Access node was successfully removed
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Remove an access node.
      tags:
      - chains
    put:
      operationId: addAccessNode
      parameters:
      - description: Name or PubKey (hex) of the trusted peer
        in: path
        name: peer
        required: true
        schema:
          format: string
          type: string
      responses:
        '201':
          content: {}
          description: Access node was successfully added
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Configure a trusted node to be an access node.
      tags:
      - chains
  /v1/chain/activate/{chainID}:
    post:
      operationId: activateChain
      parameters:
      - description: ChainID (Hex Address)
        in: path
        name: chainID
        required: true
        schema:
          format: string
          type: string
      responses:
        '200':
          content: {}
          description: Chain was successfully activated
        '304':
          content: {}
          description: Chain was not activated
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Activate a chain
      tags:
      - chains
  /v1/chain/callview:
    post:
      description: Execute a view call. Either use HName or Name properties. If both are supplied, HName are used.
      operationId: callView
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractCallViewRequest'
        description: Parameters
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  example: 171
                  format: string
                  type: string
                type: array
          description: Result
      summary: Call a view function on a contract by Hname
      tags:
      - chains
      x-codegen-request-body-name: ''
  /v1/chain/chainrecord/{chainID}:
    post:
      operationId: setChainRecord
      parameters:
      - description: ChainID (Hex Address)
        in: path
        name: chainID
        required: true
        schema:
          format: string
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChainRecord'
        description: Chain Record
        required: true
      responses:
        '201':
          content: {}
          description: Chain record was saved
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Sets the chain record.
      tags:
      - chains
      x-codegen-request-body-name: ChainRecord
  /v1/chain/committee:
    get:
      operationId: getCommitteeInfo
      parameters:
      - description: Block index or trie root
        in: query
        name: block
        schema:
          format: string
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommitteeInfoResponse'
          description: A list of all nodes tied to the chain
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Get information about the deployed committee
      tags:
      - chains
  /v1/chain/contracts:
    get:
      operationId: getContracts
      parameters:
      - description: Block index or trie root
        in: query
        name: block
        schema:
          format: string
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ContractInfoResponse'
                type: array
          description: A list of all available contracts
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Get all available chain contracts
      tags:
      - chains
  /v1/chain/deactivate:
    post:
      operationId: deactivateChain
      responses:
        '200':
          content: {}
          description: Chain was successfully deactivated
        '304':
          content: {}
          description: Chain was not deactivated
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Deactivate a chain
      tags:
      - chains
  /v1/chain/dump-accounts:
    post:
      operationId: dump-accounts
      responses:
        '200':
          content: {}
          description: Accounts dump will be produced
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: dump accounts information into a humanly-readable format
      tags:
      - chains
  /v1/chain/estimategas-offledger:
    post:
      operationId: estimateGasOffledger
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EstimateGasRequestOffledger'
        description: Request
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptResponse'
          description: ReceiptResponse
      summary: Estimates gas for a given off-ledger ISC request
      tags:
      - chains
      x-codegen-request-body-name: Request
  /v1/chain/estimategas-onledger:
    post:
      description: Estimates gas usage for a given on-ledger ISC request. To calculate required L1 and L2 gas budgets use values of L1.GasBudget and L2.GasBurned respectively.
      operationId: estimateGasOnledger
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EstimateGasRequestOnledger'
        description: Request
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnLedgerEstimationResponse'
          description: ReceiptResponse
      summary: Estimates gas for a given on-ledger ISC request
      tags:
      - chains
      x-codegen-request-body-name: Request
  /v1/chain/evm:
    post:
      responses:
        default:
          content: {}
          description: successful operation
      summary: Ethereum JSON-RPC
      tags:
      - chains
  /v1/chain/evm/ws:
    get:
      responses:
        default:
          content: {}
          description: successful operation
      summary: Ethereum JSON-RPC (Websocket transport)
      tags:
      - chains
  /v1/chain/mempool:
    get:
      operationId: getMempoolContents
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                items:
                  format: int32
                  type: integer
                type: array
          description: stream of JSON representation of the requests in the mempool
        '401':
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Get the contents of the mempool.
      tags:
      - chains
  /v1/chain/receipts/{requestID}:
    get:
      operationId: getReceipt
      parameters:
      - description: RequestID (Hex)
        in: path
        name: requestID
        required: true
        schema:
          format: string
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptResponse'
          description: ReceiptResponse
        '404':
          content: {}
          description: Chain or request id not found
      summary: Get a receipt from a request ID
      tags:
      - chains
  /v1/chain/requests/{requestID}/wait:
    get:
      operationId: waitForRequest
      parameters:
      - description: RequestID (Hex)
        in: path
        name: requestID
        required: true
        schema:
          format: string
          type: string
      - description: The timeout in seconds, maximum 60s
        in: query
        name: timeoutSeconds
        schema:
          format: int32
          type: integer
      - description: Wait for the block to be confirmed on L1
        in: query
        name: waitForL1Confirmation
        schema:
          format: boolean
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptResponse'
          description: The request receipt
        '404':
          content: {}
          description: The chain or request id not found
        '408':
          content: {}
          description: The waiting time has reached the defined limit
      summary: Wait until the given request has been processed by the node
      tags:
      - chains
  /v1/chain/rotate:
    post:
      operationId: rotateChain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RotateChainRequest'
        description: RotateRequest
        required: false
      responses:
        '200':
          content: {}
          description: Chain rotation was requested
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Unauthorized (Wrong permissions, missing token)
      security:
      - Authorization: []
      summary: Rotate a chain
      tags:
      - chains
      x-codegen-request-body-name: RotateRequest
  /v1/chain/state/{stateKey}:
    get:
      operationId: getStateValue
      parameters:
      - description: State Key (Hex)
        in: path
        name: stateKey
        required: true
        schema:
          format: string
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateResponse'
          description: Result
      summary: Fetch the raw value associated with the given key in the chain state
      tags:
      - chains
components:
  schemas:
    ReceiptResponse:
      example:
        gasBurnLog:
        - code: 6
          gasBurned: 1
        - code: 6
          gasBurned: 1
        request:
          senderAccount: senderAccount
          allowanceError: allowanceError
          assets:
            coins:
            - coinType: coinType
              balance: balance
            - coinType: coinType
              balance: balance
            objects:
            - id: id
              type: type
            - id: id
              type: type
          isOffLedger: true
          requestId: requestId
          callTarget:
            contractHName: contractHName
            functionHName: functionHName
          gasBudget: gasBudget
          allowance:
            coins:
            - coinType: coinType
              balance: balance
            - coinType: coinType
              balance: balance
            objects:
            - id: id
              type: type
            - id: id
              type: type
          params:
          - params
          - params
          isEVM: true
        blockIndex: 1
        rawError:
          code: code
          params:
          - params
          - params
        requestIndex: 1
        storageDepositCharged: storageDepositCharged
        gasFeeCharged: gasFeeCharged
        errorMessage: errorMessage
        gasBudget: gasBudget
        gasBurned: gasBurned
      properties:
        blockIndex:
          format: int32
          minimum: 1
          type: integer
          xml:
            name: BlockIndex
        errorMessage:
          format: string
          type: string
          xml:
            name: ErrorMessage
        gasBudget:
          description: The gas budget (uint64 as string)
          format: string
          type: string
          xml:
            name: GasBudget
        gasBurnLog:
          items:
            $ref: '#/components/schemas/BurnRecord'
          type: array
          xml:
            name: GasBurnLog
            wrapped: true
        gasBurned:
          description: The burned gas (uint64 as string)
          format: string
          type: string
          xml:
            name: GasBurned
        gasFeeCharged:
          description: The charged gas fee (uint64 as string)
          format: string
          type: string
          xml:
            name: GasFeeCharged
        rawError:
          $ref: '#/components/schemas/UnresolvedVMErrorJSON'
        request:
          $ref: '#/components/schemas/RequestJSON'
        requestIndex:
          format: int32
          minimum: 1
          type: integer
          xml:
            name: RequestIndex
        storageDepositCharged:
          description: Storage deposit charged (uint64 as string)
          format: string
          type: string
          xml:
            name: SDCharged
      required:
      - blockIndex
      - gasBudget
      - gasBurnLog
      - gasBurned
      - gasFeeCharged
      - request
      - requestIndex
      - storageDepositCharged
      type: object
      xml:
        name: ReceiptResponse
    EstimateGasRequestOnledger:
      example:
        transactionBytes: transactionBytes
      properties:
        transactionBytes:
          description: Hexadecimal bytes of transaction to estimate
          format: string
          type: string
          xml:
            name: TransactionBytes
      required:
      - transactionBytes
      type: object
      xml:
        name: EstimateGasRequestOnledger
    ChainRecord:
      example:
        accessNodes:
        - accessNodes
        - accessNodes
        isActive: true
      properties:
        accessNodes:
          items:
            format: string
            type: string
          type: array
          xml:
            name: AccessNodes
            wrapped: true
        isActive:
          format: boolean
          type: boolean
          xml:
            name: IsActive
      required:
      - accessNodes
      - isActive
      type: object
      xml:
        name: ChainRecord
    AssetsJSON:
      example:
        coins:
        - coinType: coinType
          balance: balance
        - coinType: coinType
          balance: balance
        objects:
        - id: id
          type: type
        - id: id
          type: type
      properties:
        coins:
          items:
            $ref: '#/components/schemas/CoinJSON'
          type: array
          xml:
            name: Coins
            wrapped: true
        objects:
          items:
            $ref: '#/components/schemas/IotaObjectJSON'
          type: array
          xml:
            name: Objects
            wrapped: true
      required:
      - coins
      - objects
      type: object
      xml:
        name: AssetsJSON
    UnresolvedVMErrorJSON:
      example:
        code: code
        params:
        - params
        - params
      properties:
        code:
          format: string
          type: string
          xml:
            name: ErrorCode
        params:
          items:
            format: string
            type: string
          type: array
          xml:
            name: Params
            wrapped: true
      type: object
      xml:
        name: UnresolvedVMErrorJSON
    RequestJSON:
      example:
        senderAccount: senderAccount
        allowanceError: allowanceError
        assets:
          coins:
          - coinType: coinType
            balance: balance
          - coinType: coinType
            balance: balance
          objects:
          - id: id
            type: type
          - id: id
            type: type
        isOffLedger: true
        requestId: requestId
        callTarget:
          contractHName: contractHName
          functionHName: functionHName
        gasBudget: gasBudget
        allowance:
          coins:
          - coinType: coinType
            balance: balance
          - coinType: coinType
            balance: balance
          objects:
          - id: id
            type: type
          - id: id
            type: type
        params:
        - params
        - params
        isEVM: true
      properties:
        allowance:
          $ref: '#/components/schemas/AssetsJSON'
        allowanceError:
          format: string
          type: string
          xml:
            name: AllowanceError
        assets:
          $ref: '#/components/schemas/AssetsJSON'
        callTarget:
          $ref: '#/components/schemas/CallTargetJSON'
        gasBudget:
          description: The gas budget (uint64 as string)
          format: string
          type: string
          xml:
            name: GasBudget
        isEVM:
          format: boolean
          type: boolean
          xml:
            name: IsEVM
        isOffLedger:
          format: boolean
          type: boolean
          xml:
            name: IsOffLedger
        params:
          items:
            format: string
            type: string
          type: array
          xml:
            name: Params
            wrapped: true
        requestId:
          format: string
          type: string
          xml:
            name: RequestID
        senderAccount:
          format: string
          type: string
          xml:
            name: SenderAccount
      required:
      - allowance
      - assets
      - callTarget
      - gasBudget
      - isEVM
      - isOffLedger
      - params
      - requestId
      - senderAccount
      type: object
      xml:
        name: RequestJSON
    BurnRecord:
      example:
        code: 6
        gasBurned: 1
      properties:
        code:
          format: int32
          type: integer
          xml:
            name: Code
        gasBurned:
          format: int64
          type: integer
          xml:
            name: GasBurned
      required:
      - code
      - gasBurned
      type: object
      xml:
        name: BurnRecord
    ContractCallViewRequest:
      example:
        contractHName: contractHName
        functionName: functionName
        functionHName: functionHName
        arguments:
        - arguments
        - arguments
        block: block
        contractName: contractName
      properties:
        arguments:
          description: Encoded arguments to be passed to the function
          items:
            format: string
            type: string
          type: array
          xml:
            name: Arguments
            wrapped: true
        block:
          format: string
          type: string
          xml:
            name: Block
        contractHName:
          description: The contract name as HName (Hex)
          format: string
          type: string
          xml:
            name: ContractHName
        contractName:
          description: The contract name
          format: string
          type: string
          xml:
            name: ContractName
        functionHName:
          description: The function name as HName (Hex)
          format: string
          type: string
          xml:
            name: FunctionHName
        functionName:
          description: The function name
          format: string
          type: string
          xml:
            name: FunctionName
      required:
      - arguments
      - contractHName
      - contractName
      - functionHName
      - functionName
      type: object
      xml:
        name: ContractCallViewRequest
    Limits:
      example:
        maxGasExternalViewCall: 5
        minGasPerRequest: 9
        maxGasPerBlock: 2
        maxGasPerRequest: 7
      properties:
        maxGasExternalViewCall:
          description: The maximum gas per external view call
          format: int64
          type: integer
          xml:
            name: MaxGasExternalViewCall
        maxGasPerBlock:
          description: The maximum gas per block
          format: int64
          type: integer
          xml:
            name: MaxGasPerBlock
        maxGasPerRequest:
          description: The maximum gas per request
          format: int64
          type: integer
          xml:
            name: MaxGasPerRequest
        minGasPerRequest:
          description: The minimum gas per request
          format: int64
          type: integer
          xml:
            name: MinGasPerRequest
      required:
      - maxGasExternalViewCall
      - maxGasPerBlock
      - maxGasPerRequest
      - minGasPerRequest
      type: object
      xml:
        name: Limits
    OnLedgerEstimationResponse:
      example:
        l1:
          storageRebate: storageRebate
          storageFee: storageFee
          computationFee: computationFee
          gasFeeCharged: gasFeeCharged
          gasBudget: gasBudget
        l2:
          gasBurnLog:
          - code: 6
            gasBurned: 1
          - code: 6
            gasBurned: 1
          request:
            senderAccount: senderAccount
            allowanceError: allowanceError
            assets:
              coins:
              - coinType: coinType
                balance: balance
              - coinType: coinType
                balance: balance
              objects:
              - id: id
                type: type
              - id: id
                type: type
            isOffLedger: true
            requestId: requestId
            callTarget:
              contractHName: contractHName
              functionHName: functionHName
            gasBudget: gasBudget
            allowance:
              coins:
              - coinType: coinType
                balance: balance
              - coinType: coinType
                balance: balance
              objects:
              - id: id
                type: type
              - id: id
                type: type
            params:
            - params
            - params
            isEVM: true
          blockIndex: 1
          rawError:
            code: code
            params:
            - params
            - params
          requestIndex: 1
          storageDepositCharged: storageDepositCharged
          gasFeeCharged: gasFeeCharged
          errorMessage: errorMessage
          gasBudget: gasBudget
          gasBurned: gasBurned
      properties:
        l1:
          $ref: '#/components/schemas/L1EstimationResult'
        l2:
          $ref: '#/components/schemas/ReceiptResponse'
      required:
      - l1
      - l2
      type: object
      xml:
        name: OnLedgerEstimationResponse
    FeePolicy:
      example:
        gasPerToken:
          a: 0
          b: 0
        validatorFeeShare: 5
        evmGasRatio:
          a: 0
          b: 0
      properties:
        evmGasRatio:
          $ref: '#/components/schemas/Ratio32'
        gasPerToken:
          $ref: '#/components/schemas/Ratio32'
        validatorFeeShare:
          description: The validator fee share.
          format: int32
          type: integer
          xml:
            name: ValidatorFeeShare
      required:
      - evmGasRatio
      - gasPerToken
      - validatorFeeShare
      type: object
      xml:
        name: FeePolicy
    Ratio32:
      example:
        a: 0
        b: 0
      properties:
        a:
          format: int32
          minimum: 0
          type: integer
          xml:
            name: A
        b:
          format: int32
          minimum: 0
          type: integer
          xml:
            name: B
      required:
      - a
      - b
      type: object
      xml:
        name: Ratio32
    CoinJSON:
      example:
        coinType: coinType
        balance: balance
      properties:
        balance:
          description: The balance (uint64 as string)
          format: string
          type: string
          xml:
            name: Balance
        coinType:
          format: string
          type: string
          xml:
            name: CoinType
      required:
      - balance
      - coinType
      type: object
      xml:
        name: CoinJSON
    RotateChainRequest:
      example:
        rotateToAddress: rotateToAddress
      properties:
        rotateToAddress:
          description: The address of the new committee or empty to cancel attempt to rotate
          format: string
          type: string
          xml:
            name: RotateToAddress
      type: object
      xml:
        name: RotateChainRequest
    CommitteeInfoResponse:
      example:
        candidateNodes:
        - node:
            isAlive: true
            peeringURL: peeringURL
            name: name
            publicKey: publicKey
            numUsers: 0
            isTrusted: true
          accessAPI: accessAPI
        - node:
            isAlive: true
            peeringURL: peeringURL
            name: name
            publicKey: publicKey
            numUsers: 0
            isTrusted: true
          accessAPI: accessAPI
        committeeNodes:
        - node:
            isAlive: true
            peeringURL: peeringURL
            name: name
            publicKey: publicKey
            numUsers: 0
            isTrusted: true
          accessAPI: accessAPI
        - node:
            isAlive: true
            peeringURL: peeringURL
            name: name
            publicKey: publicKey
            numUsers: 0
            isTrusted: true
          accessAPI: accessAPI
        chainId: chainId
        accessNodes:
        - node:
            isAlive: true
            peeringURL: peeringURL
            name: name
            publicKey: publicKey
            numUsers: 0
            isTrusted: true
          accessAPI: accessAPI
        - node:
            isAlive: true
            peeringURL: peeringURL
            name: name
            publicKey: publicKey
            numUsers: 0
            isTrusted: true
          accessAPI: accessAPI
        stateAddress: stateAddress
        active: true
      properties:
        accessNodes:
          description: A list of all access nodes and their peering info.
          items:
            $ref: '#/components/schemas/CommitteeNode'
          type: array
          xml:
            name: AccessNodes
            wrapped: true
        active:
          description: Whether or not the chain is active.
          format: boolean
          type: boolean
          xml:
            name: Active
        candidateNodes:
          description: A list of all candidate nodes and their peering info.
          items:
            $ref: '#/components/schemas/CommitteeNode'
          type: array
          xml:
            name: CandidateNodes
            wrapped: true
        chainId:
          description: ChainID (Hex Address).
          format: string
          type: string
          xml:
            name: ChainID
        committeeNodes:
          description: A list of all committee nodes and their peering info.
          items:
            $ref: '#/components/schemas/CommitteeNode'
          type: array
          xml:
            name: CommitteeNodes
            wrapped: true
        stateAddress:
          format: string
          type: string
          xml:
            name: StateAddress
      required:
      - accessNodes
      - active
      - candidateNodes
      - chainId
      - committeeNodes
      - stateAddress
      type: object
      xml:
        name: CommitteeInfoResponse
    CommitteeNode:
      example:
        node:
          isAlive: true
          peeringURL: peeringURL
          name: name
          publicKey: publicKey
          numUsers: 0
          isTrusted: true
        accessAPI: accessAPI
      properties:
        accessAPI:
          format: string
          type: string
          xml:
            name: AccessAPI
        node:
          $ref: '#/components/schemas/PeeringNodeStatusResponse'
      required:
      - accessAPI
      - node
      type: object
      xml:
        name: CommitteeNode
    ChainInfoResponse:
      example:
        chainAdmin: chainAdmin
        metadata:
          website: website
          evmWebSocketURL: evmWebSocketURL
          name: name
          description: description
          evmJsonRpcURL: evmJsonRpcURL
        gasLimits:
          maxGasExternalViewCall: 5
          minGasPerRequest: 9
          maxGasPerBlock: 2
          maxGasPerRequest: 7
        chainID: chainID
        evmChainId: 1
        publicURL: publicURL
        gasFeePolicy:
          gasPerToken:
            a: 0
            b: 0
          validatorFeeShare: 5
          evmGasRatio:
            a: 0
            b: 0
        isActive: true
      properties:
        chainAdmin:
          description: The chain admin address (Hex Address)
          format: string
          type: string
          xml:
            name: ChainAdmin
        chainID:
          description: ChainID (Hex Address)
          format: string
          type: string
          xml:
            name: ChainID
        evmChainId:
          description: The EVM chain ID
          format: int32
          minimum: 1
          type: integer
          xml:
            name: EVMChainID
        gasFeePolicy:
          $ref: '#/components/schemas/FeePolicy'
        gasLimits:
          $ref: '#/components/schemas/Limits'
        isActive:
          description: Whether or not the chain is active
          format: boolean
          type: boolean
          xml:
            name: IsActive
        metadata:
          $ref: '#/components/schemas/PublicChainMetadata'
        publicURL:
          description: The fully qualified public url leading to the chains metadata
          format: string
          type: string
          xml:
            name: PublicURL
      required:
      - chainAdmin
      - chainID
      - evmChainId
      - gasFeePolicy
      - gasLimits
      - isActive
      - metadata
      - publicURL
      type: object
      xml:
        name: ChainInfoResponse
    ContractInfoResponse:
      example:
        name: name
        hName: hName
    

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/iota/refs/heads/main/openapi/iota-chains-api-openapi.yml