openapi: 3.0.0
info:
  title: Chain API
  description: >-
    Nodeos Chain API Specification. See developer documentation at
    https://docs.eosnetwork.com for information on enabling this plugin.
  version: 1.0.0
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  contact:
    url: https://eosnetwork.com
servers:
  - url: '{protocol}://{host}:{port}/v1/chain'
    variables:
      protocol:
        enum:
          - http
          - https
        default: http
      host:
        default: localhost
      port:
        default: '8080'
components:
  schemas:
    NamePrivileged:
      type: string
      description: String representation of privileged EOSIO name type
      pattern: ^(eosio[\.][a-z1-5]{1,6})([a-j]{1})?$
      title: NamePrivileged
    NameBasic:
      type: string
      description: >-
        String representation of basic EOSIO name type, must be 12 characters
        and contain only a-z and 0-5
      pattern: ^([a-z]{1}[a-z1-5]{11})([a-j]{1})?$
      title: NameBasic
    NameBid:
      type: string
      description: >-
        String representation of EOSIO bid name type, 1-12 characters and only
        a-z and 0-5 are allowed
      pattern: ^([a-z1-5]{1,12})([a-j]{1})?$
      title: NameBid
    NameCatchAll:
      type: string
      description: String representation of EOSIO name type
      pattern: ^([a-z1-5]{1}[a-z1-5\.]{0,10}[a-z1-5]{1})([a-j]{1})?$
      title: NameCatchAll
    Name:
      anyOf:
        - $ref: '#/components/schemas/NamePrivileged'
        - $ref: '#/components/schemas/NameBasic'
        - $ref: '#/components/schemas/NameBid'
        - $ref: '#/components/schemas/NameCatchAll'
      title: Name
    DateTimeSeconds:
      type: string
      description: Date/time string in the format YYYY-MM-DDTHH:MM:SS.sss
      pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}$
      title: DateTimeSeconds
    Symbol:
      type: string
      description: >-
        A string representation of an EOSIO symbol, composed of a float with a
        precision of 4, and a symbol composed of capital letters between 1-7
        letters separated by a space, example `1.0000 ABC`.
      pattern: ^([0-9]{1,32}.[0-9]{4} [A-Z]{1,7})$
      title: Symbol
    RefundRequest:
      type: object
      additionalProperties: false
      minProperties: 4
      required:
        - owner
        - request_time
        - net_amount
        - cpu_amount
      properties:
        owner:
          $ref: '#/components/schemas/Name'
        request_time:
          type: string
        net_amount:
          $ref: '#/components/schemas/Symbol'
        cpu_amount:
          $ref: '#/components/schemas/Symbol'
      title: RefundRequest
      nullable: true
    WholeNumber:
      description: A whole number
      anyOf:
        - type: string
          pattern: ^\d+$
        - type: integer
      title: WholeNumber
    ResourceLimits:
      type: object
      additionalProperties: false
      minProperties: 3
      required:
        - max
        - available
        - used
      properties:
        max:
          $ref: '#/components/schemas/WholeNumber'
        available:
          $ref: '#/components/schemas/WholeNumber'
        used:
          $ref: '#/components/schemas/WholeNumber'
      title: ResourceLimits
    ResourceOverview:
      type: object
      additionalProperties: false
      minProperties: 4
      required:
        - owner
        - ram_bytes
        - net_weight
        - cpu_weight
      properties:
        owner:
          $ref: '#/components/schemas/Name'
        ram_bytes:
          $ref: '#/components/schemas/WholeNumber'
        net_weight:
          $ref: '#/components/schemas/Symbol'
        cpu_weight:
          $ref: '#/components/schemas/Symbol'
      title: ResourceOverview
    ResourceDelegation:
      type: object
      additionalProperties: false
      minProperties: 4
      required:
        - from
        - to
        - net_weight
        - cpu_weight
      properties:
        from:
          $ref: '#/components/schemas/Name'
        to:
          $ref: '#/components/schemas/Name'
        net_weight:
          $ref: '#/components/schemas/Symbol'
        cpu_weight:
          $ref: '#/components/schemas/Symbol'
      title: ResourceDelegation
      nullable: true
    Wait:
      type: object
      minProperties: 2
      additionalProperties: false
      required:
        - wait_sec
        - weight
      properties:
        wait_sec:
          type: integer
        weight:
          type: integer
      title: Wait
    PublicKey:
      type: string
      description: Base58 encoded EOSIO public key
      pattern: ^(EOS|PUB_([RK]1|WA)_)[1-9A-HJ-NP-Za-km-z]+$
      title: PublicKey
    KeyAuthority:
      type: object
      additionalProperties: false
      required:
        - key
        - weight
      properties:
        key:
          $ref: '#/components/schemas/PublicKey'
        weight:
          type: integer
      title: KeyAuthority
    Authority:
      type: object
      additionalProperties: false
      minProperties: 2
      required:
        - actor
        - permission
      properties:
        actor:
          $ref: '#/components/schemas/Name'
        permission:
          $ref: '#/components/schemas/Name'
      title: Authority
    AccountAuthority:
      type: object
      additionalProperties: false
      required:
        - weight
        - permission
      properties:
        weight:
          type: integer
        permission:
          $ref: '#/components/schemas/Authority'
      title: AccountAuthority
    RequiredAuthority:
      type: object
      additionalProperties: false
      minProperties: 4
      required:
        - waits
        - keys
        - threshold
        - accounts
      properties:
        waits:
          type: array
          items:
            $ref: '#/components/schemas/Wait'
        keys:
          type: array
          items:
            $ref: '#/components/schemas/KeyAuthority'
        threshold:
          type: integer
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/AccountAuthority'
      title: RequiredAuthority
    Permission:
      type: object
      additionalProperties: false
      minProperties: 3
      required:
        - parent
        - perm_name
        - required_auth
      properties:
        parent:
          description: The parent of this permission, if any
          type: string
        perm_name:
          description: Name of this permission
          type: string
        required_auth:
          $ref: '#/components/schemas/RequiredAuthority'
      title: Permission
    EmptyString:
      type: string
      maxLength: 0
      title: EmptyString
    VoterInfo:
      type: object
      additionalProperties: false
      minProperties: 10
      required:
        - owner
        - proxy
        - producers
        - staked
        - last_vote_weight
        - proxied_vote_weight
        - is_proxy
        - flags1
        - reserved2
        - reserved3
      properties:
        owner:
          $ref: '#/components/schemas/Name'
        proxy:
          oneOf:
            - $ref: '#/components/schemas/Name'
            - $ref: '#/components/schemas/EmptyString'
        producers:
          type: array
          items:
            $ref: '#/components/schemas/Name'
        staked:
          $ref: '#/components/schemas/WholeNumber'
        last_vote_weight:
          type: string
        proxied_vote_weight:
          type: string
        is_proxy:
          description: 1 if true, 0 if false.
          type: integer
        flags1:
          type: integer
        reserved2:
          type: integer
        reserved3:
          $ref: '#/components/schemas/Symbol'
      title: VoterInfo
      nullable: true
    Account:
      type: object
      additionalProperties: false
      minProperties: 18
      required:
        - account_name
        - head_block_num
        - head_block_time
        - last_code_update
        - created
        - refund_request
        - ram_quota
        - net_limit
        - cpu_limit
        - total_resources
        - core_liquid_balance
        - self_delegated_bandwidth
        - net_weight
        - cpu_weight
        - ram_usage
        - privileged
        - permissions
        - voter_info
      properties:
        account_name:
          $ref: '#/components/schemas/Name'
        head_block_num:
          type: integer
        head_block_time:
          $ref: '#/components/schemas/DateTimeSeconds'
        last_code_update:
          $ref: '#/components/schemas/DateTimeSeconds'
        created:
          $ref: '#/components/schemas/DateTimeSeconds'
        refund_request:
          $ref: '#/components/schemas/RefundRequest'
        ram_quota:
          $ref: '#/components/schemas/WholeNumber'
        net_limit:
          $ref: '#/components/schemas/ResourceLimits'
        cpu_limit:
          $ref: '#/components/schemas/ResourceLimits'
        total_resources:
          $ref: '#/components/schemas/ResourceOverview'
        core_liquid_balance:
          $ref: '#/components/schemas/Symbol'
        self_delegated_bandwidth:
          $ref: '#/components/schemas/ResourceDelegation'
        net_weight:
          $ref: '#/components/schemas/WholeNumber'
        cpu_weight:
          $ref: '#/components/schemas/WholeNumber'
        ram_usage:
          $ref: '#/components/schemas/WholeNumber'
        privileged:
          type: boolean
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
        voter_info:
          $ref: '#/components/schemas/VoterInfo'
      title: Account
    Sha256:
      type: string
      pattern: ^[0-9A-Fa-f]{64}$
      title: Sha256
    ProducerAuthorityList:
      type: array
      description: >-
        Array with the version of the authority JSON objects as first element,
        then the objects themselves.
      items:
        type: object
        properties:
          threshold:
            type: integer
            description: The threshold value for the producer's authority.
          keys:
            type: array
            description: An array of producers keys definition.
            items:
              type: object
              properties:
                key:
                  type: string
                  description: The public key associated with the producer.
                weight:
                  type: integer
                  description: The weight of the key in the producer's authority.
    ProducerSchedule:
      type: object
      description: >-
        A JSON object that encapsulates the list of the producers schedule and
        its version.
      properties:
        version:
          type: integer
          description: >-
            The version of the producers schedule list. Version is an integer
            subsequently incremented.
        producers:
          type: array
          description: The list of producers.
          items:
            type: object
            properties:
              producer_name:
                type: string
                description: The name of the producer.
              authority:
                $ref: '#/components/schemas/ProducerAuthorityList'
    Extension:
      type: array
      items:
        anyOf:
          - type: integer
          - type: string
      title: Extension
    Signature:
      type: string
      description: Base58 encoded EOSIO cryptographic signature
      pattern: ^SIG_([RK]1|WA)_[1-9A-HJ-NP-Za-km-z]+$
      title: Signature
    DateTime:
      type: string
      description: Date/time string in the format YYYY-MM-DDTHH:MM:SS
      pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$
      title: DateTime
    Action:
      type: object
      additionalProperties: false
      minProperties: 5
      required:
        - account
        - name
        - authorization
        - data
        - hex_data
      properties:
        account:
          $ref: '#/components/schemas/Name'
        name:
          $ref: '#/components/schemas/Name'
        authorization:
          type: array
          items:
            $ref: '#/components/schemas/Authority'
        data:
          type: object
          additionalProperties: true
        hex_data:
          type: string
      title: Action
    Transaction:
      type: object
      additionalProperties: false
      minProperties: 8
      required:
        - expiration
        - ref_block_num
        - ref_block_prefix
        - max_net_usage_words
        - max_cpu_usage_ms
        - delay_sec
        - context_free_actions
        - actions
      properties:
        expiration:
          description: Time that transaction must be confirmed by.
          $ref: '#/components/schemas/DateTime'
        ref_block_num:
          type: integer
        ref_block_prefix:
          description: 32-bit portion of block ID
          type: integer
        max_net_usage_words:
          $ref: '#/components/schemas/WholeNumber'
        max_cpu_usage_ms:
          $ref: '#/components/schemas/WholeNumber'
        delay_sec:
          type: integer
        context_free_actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
        transaction_extensions:
          type: array
          items:
            $ref: '#/components/schemas/Extension'
      title: Transaction
    PackedTransaction:
      type: object
      additionalProperties: false
      minProperties: 7
      required:
        - id
        - signatures
        - compression
        - packed_context_free_data
        - context_free_data
        - packed_trx
        - transaction
      properties:
        id:
          $ref: '#/components/schemas/Sha256'
        signatures:
          type: array
          items:
            $ref: '#/components/schemas/Signature'
        compression:
          type: string
        packed_context_free_data:
          type: string
        context_free_data:
          type: array
          items:
            type: string
        packed_trx:
          type: string
        transaction:
          $ref: '#/components/schemas/Transaction'
      title: PackedTransaction
    TransactionVariant:
      anyOf:
        - $ref: '#/components/schemas/Sha256'
        - $ref: '#/components/schemas/PackedTransaction'
      title: TransactionVariant
    TransactionReceipt:
      type: object
      additionalProperties: false
      minProperties: 4
      required:
        - status
        - cpu_usage_us
        - net_usage_words
        - trx
      properties:
        status:
          type: string
          enum:
            - executed
            - soft_fail
            - hard_fail
            - delayed
            - expired
          description: |
            status:
              * `executed` - Succeed, no error handler executed
              * `soft_fail` - Objectively failed (not executed), error handler executed
              * `hard_fail` - Objectively failed and error handler objectively failed thus no state change
              * `delayed` - Used by delayed-user transactions for timer-based executions
              * `expired` - Transaction expired and storage space refunded to user
        cpu_usage_us:
          type: integer
        net_usage_words:
          type: integer
        trx:
          $ref: '#/components/schemas/TransactionVariant'
      title: TransactionReceipt
    Block:
      type: object
      additionalProperties: false
      minProperties: 9
      required:
        - timestamp
        - producer
        - confirmed
        - previous
        - transaction_mroot
        - action_mroot
        - schedule_version
        - new_producers
        - producer_signature
      properties:
        timestamp:
          $ref: '#/components/schemas/DateTimeSeconds'
        producer:
          oneOf:
            - $ref: '#/components/schemas/EmptyString'
            - $ref: '#/components/schemas/Name'
        confirmed:
          description: >-
            number of prior blocks confirmed by this block producer in current
            schedule
          type: integer
        previous:
          $ref: '#/components/schemas/Sha256'
        transaction_mroot:
          $ref: '#/components/schemas/Sha256'
        action_mroot:
          $ref: '#/components/schemas/Sha256'
        schedule_version:
          description: number of times producer schedule has changed since genesis
          type: integer
        new_producers:
          $ref: '#/components/schemas/ProducerSchedule'
        header_extensions:
          $ref: '#/components/schemas/Extension'
        new_protocol_features:
          description: list of new protocol features
          type: array
          items:
            type: object
        producer_signature:
          $ref: '#/components/schemas/Signature'
        transactions:
          description: list of valid transaction receipts included in block
          type: array
          items:
            $ref: '#/components/schemas/TransactionReceipt'
        block_extensions:
          $ref: '#/components/schemas/Extension'
        id:
          $ref: '#/components/schemas/Sha256'
        block_num:
          description: height of this block in the chain
          type: integer
        ref_block_prefix:
          description: 32-bit portion of block ID
          type: integer
      title: Block
    BlockInfo:
      type: object
      additionalProperties: false
      minProperties: 12
      required:
        - block_num
        - ref_block_num
        - id
        - timestamp
        - producer
        - confirmed
        - previous
        - transaction_mroot
        - action_mroot
        - schedule_version
        - producer_signature
        - ref_block_prefix
      properties:
        block_num:
          description: height of this block in the chain
          type: integer
        ref_block_num:
          description: least significant 16 bits of block number
          type: integer
        id:
          $ref: '#/components/schemas/Sha256'
        timestamp:
          $ref: '#/components/schemas/DateTimeSeconds'
        producer:
          oneOf:
            - $ref: '#/components/schemas/EmptyString'
            - $ref: '#/components/schemas/Name'
        confirmed:
          description: >-
            number of prior blocks confirmed by the producer of this block in
            current producer schedule
          type: integer
        previous:
          $ref: '#/components/schemas/Sha256'
        transaction_mroot:
          $ref: '#/components/schemas/Sha256'
        action_mroot:
          $ref: '#/components/schemas/Sha256'
        schedule_version:
          description: number of times producer schedule has changed since genesis
          type: integer
        producer_signature:
          $ref: '#/components/schemas/Signature'
        ref_block_prefix:
          description: 32-bit portion of block ID
          type: integer
      title: BlockInfo
    Info:
      type: object
      additionalProperties: false
      required:
        - server_version
        - chain_id
        - head_block_num
        - head_block_id
        - head_block_time
        - head_block_producer
        - last_irreversible_block_num
        - last_irreversible_block_id
        - virtual_block_cpu_limit
        - virtual_block_net_limit
        - block_cpu_limit
        - block_net_limit
        - server_version_string
        - fork_db_head_block_num
        - fork_db_head_block_id
      properties:
        server_version:
          type: string
          description: Hash representing the last commit in the tagged release
        chain_id:
          type: string
          description: Hash representing the ID of the chain
        head_block_num:
          type: integer
          description: Highest block number on the chain
        head_block_id:
          type: string
          description: Highest block ID on the chain
        head_block_time:
          type: string
          description: Highest block unix timestamp
        head_block_producer:
          type: string
          description: Producer that signed the highest block (head block)
        last_irreversible_block_num:
          type: integer
          description: >-
            Highest block number on the chain that has been irreversibly applied
            to state
        last_irreversible_block_id:
          type: string
          description: >-
            Highest block ID on the chain that has been irreversibly applied to
            state
        virtual_block_cpu_limit:
          type: integer
          description: >-
            CPU limit calculated after each block is produced, approximately
            1000 times block_cpu_limit
        virtual_block_net_limit:
          type: integer
          description: >-
            NET limit calculated after each block is produced, approximately
            1000 times block_net_limit
        block_cpu_limit:
          type: integer
          description: Actual maximum CPU limit
        block_net_limit:
          type: integer
          description: Actual maximum NET limit
        server_version_string:
          type: string
          description: >-
            String representation of server version - Majorish-Minorish-Patchy -
            Warning - Not actually SEMVER!
        fork_db_head_block_num:
          type: integer
          description: >-
            Sequential block number representing the best known head in the fork
            database tree
        fork_db_head_block_id:
          type: string
          description: Hash representing the best known head in the fork database tree
      title: Info
    BlockrootMerkle:
      type: object
      additionalProperties: false
      minProperties: 2
      required:
        - _active_nodes
        - _node_count
      properties:
        _active_nodes:
          type: array
          items:
            $ref: '#/components/schemas/Sha256'
        _node_count:
          $ref: '#/components/schemas/WholeNumber'
      title: BlockrootMerkle
    BlockHeaderState:
      type: object
      additionalProperties: false
      minProperties: 16
      required:
        - id
        - block_num
        - header
        - dpos_proposed_irreversible_blocknum
        - dpos_irreversible_blocknum
        - bft_irreversible_blocknum
        - pending_schedule_lib_num
        - pending_schedule_hash
        - pending_schedule
        - active_schedule
        - blockroot_merkle
        - producer_to_last_produced
        - producer_to_last_implied_irb
        - block_signing_key
        - confirm_count
        - confirmations
      properties:
        id:
          type: string
          description: ID of block
        block_num:
          description: height of this block in the chain
          type: integer
        header:
          $ref: '#/components/schemas/Block'
        dpos_proposed_irreversible_blocknum:
          $ref: '#/components/schemas/WholeNumber'
        dpos_irreversible_blocknum:
          $ref: '#/components/schemas/WholeNumber'
        bft_irreversible_blocknum:
          $ref: '#/components/schemas/WholeNumber'
        pending_schedule_lib_num:
          $ref: '#/components/schemas/WholeNumber'
        pending_schedule_hash:
          $ref: '#/components/schemas/Sha256'
        pending_schedule:
          $ref: '#/components/schemas/ProducerSchedule'
        active_schedule:
          $ref: '#/components/schemas/ProducerSchedule'
        blockroot_merkle:
          $ref: '#/components/schemas/BlockrootMerkle'
        producer_to_last_produced:
          type: array
          items:
            type: array
            items:
              anyOf:
                - $ref: '#/components/schemas/Name'
                - $ref: '#/components/schemas/WholeNumber'
        producer_to_last_implied_irb:
          type: array
          items:
            type: array
            items:
              anyOf:
                - $ref: '#/components/schemas/Name'
                - $ref: '#/components/schemas/WholeNumber'
        block_signing_key:
          $ref: '#/components/schemas/PublicKey'
        confirm_count:
          type: array
          items:
            $ref: '#/components/schemas/WholeNumber'
        confirmations:
          type: array
          items: {}
      title: BlockHeaderState
    CppSignature:
      type: string
      description: C++ variable signature
      pattern: ^([a-z1-9]{1}[a-z1-9_]{0,30}[a-z1-9]{1})$
      title: CppSignature
    Type:
      type: string
      description: Native and EOSIO types
      enum:
        - uint8
        - uint16
        - uint32
        - uint64
        - uint128
        - float32
        - float64
        - float128
        - bytes
        - name
        - string
        - time_point
        - time_point_sec
        - symbol_code
        - symbol
        - asset
        - checksum160
        - checksum256
        - checksum521
        - public_key
        - private_key
        - signature
        - account_name
        - action_name
      title: Type
    AbiType:
      type: object
      additionalProperties: false
      minProperties: 2
      required:
        - new_type_name
        - type
      properties:
        new_type_name:
          $ref: '#/components/schemas/CppSignature'
        type:
          $ref: '#/components/schemas/Type'
      title: AbiType
    AbiStructFields:
      type: object
      additionalProperties: false
      minProperties: 2
      required:
        - name
        - type
      properties:
        name:
          $ref: '#/components/schemas/CppSignature'
        type:
          $ref: '#/components/schemas/Type'
      title: AbiStructFields
    AbiStruct:
      type: object
      additionalProperties: false
      minProperties: 3
      required:
        - name
        - base
        - fields
      properties:
        name:
          $ref: '#/components/schemas/CppSignature'
        base:
          type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/AbiStructFields'
      title: AbiStruct
    AbiAction:
      type: object
      additionalProperties: false
      required:
        - name
        - type
        - ricardian_contract
      properties:
        name:
          $ref: '#/components/schemas/Name'
        type:
          $ref: '#/components/schemas/Name'
        ricardian_contract:
          type: string
          minLength: 0
      title: AbiAction
    IndexType:
      type: string
      enum:
        - i64
      title: IndexType
    KeyType:
      type: string
      enum:
        - uint64
        - double
      title: KeyType
    AbiTable:
      type: object
      additionalProperties: false
      minProperties: 5
      required:
        - name
        - index_type
      properties:
        name:
          $ref: '#/components/schemas/Name'
        index_type:
          $ref: '#/components/schemas/IndexType'
        key_names:
          type: array
          items:
            $ref: '#/components/schemas/CppSignature'
        key_types:
          type: array
          items:
            $ref: '#/components/schemas/KeyType'
        type:
          $ref: '#/components/schemas/CppSignature'
      title: AbiTable
    Abi:
      type: object
      additionalProperties: false
      required:
        - version
        - types
        - structs
        - actions
        - tables
        - abi_extensions
        - error_messages
        - ricardian_clauses
        - variants
      properties:
        version:
          type: string
        types:
          type: array
          items:
            $ref: '#/components/schemas/AbiType'
        structs:
          type: array
          items:
            $ref: '#/components/schemas/AbiStruct'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/AbiAction'
        tables:
          type: array
          items:
            $ref: '#/components/schemas/AbiTable'
        abi_extensions:
          type: array
          items:
            $ref: '#/components/schemas/Extension'
        error_messages:
          type: array
          items:
            type: string
        ricardian_clauses:
          type: array
          items:
            type: string
        variants:
          type: array
          items:
            type: string
      title: Abi
    Producer:
      type: object
      description: A JSON object that describes a producer.
      properties:
        owner:
          type: string
          description: The name of the producer.
        producer_authority:
          $ref: '#/components/schemas/ProducerAuthorityList'
        url:
          type: string
          description: The URL of the producer.
        total_votes:
          type: string
          description: The total number of votes this producer has.
        producer_key:
          type: string
          description: The producer public key registered with the EOS blockchain.
    TableScope:
      type: object
      additionalProperties: false
      minProperties: 5
      required:
        - code
        - scope
        - table
        - payer
        - count
      properties:
        code:
          $ref: '#/components/schemas/Name'
        scope:
          $ref: '#/components/schemas/Name'
        table:
          $ref: '#/components/schemas/Name'
        payer:
          $ref: '#/components/schemas/Name'
        count:
          description: Number of matching items.
          type: integer
      title: TableScope
    TransactionStatus:
      type: object
      additionalProperties: false
      minProperties: 8
      required:
        - state
        - head_number
        - head_id
        - head_timestamp
        - irreversible_number
        - irreversible_id
        - irreversible_timestamp
        - last_tracked_block_id
      properties:
        state:
          description: >-
            The state of the transaction. Possible values: LOCALLY_APPLIED,
            FORKED_OUT, IN_BLOCK, IRREVERSIBLE, FAILED, UNKNOWN.
          type: string
        block_number:
          description: The transaction block number.
          type: integer
        block_id:
          description: The transaction block id.
          $ref: '#/components/schemas/Sha256'
        block_timestamp:
          description: The transaction block time stamp.
          $ref: '#/components/schemas/DateTime'
        expiration:
          description: The transaction expiration time stamp.
          $ref: '#/components/schemas/DateTimeSeconds'
        head_number:
          description: The head block number.
          type: integer
        head_id:
          description: The head block id.
          $ref: '#/components/schemas/Sha256'
        head_timestamp:
          description: The head block time stamp.
          $ref: '#/components/schemas/DateTime'
        irreversible_number:
          description: The irreversible block number.
          type: integer
        irreversible_id:
          description: The irreversible block id.
          $ref: '#/components/schemas/Sha256'
        irreversible_timestamp:
          description: The irreversible block time stamp.
          $ref: '#/components/schemas/DateTime'
        last_tracked_block_id:
          description: The irreversible block id.
          $ref: '#/components/schemas/Sha256'
      title: TransactionStatus
paths:
  /get_account:
    post:
      description: >-
        Returns an object containing various details about a specific account on
        the blockchain.
      operationId: get_account
      requestBody:
        description: JSON Object with single member "account_name"
        content:
          application/json:
            schema:
              type: object
              required:
                - account_name
              properties:
                account_name:
                  $ref: '#/components/schemas/Name'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
  /get_block:
    post:
      description: >-
        Returns an object containing various details about a specific block on
        the blockchain.
      operationId: get_block
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - block_num_or_id
              properties:
                block_num_or_id:
                  type: string
                  description: Provide a `block number` or a `block id`
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Block'
  /get_block_info:
    post:
      description: >-
        Similar to `get_block` but returns a fixed-size smaller subset of the
        block data.
      operationId: get_block_info
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - block_num
              properties:
                block_num:
                  type: integer
                  description: Provide a `block number`
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockInfo'
  /get_finalizer_info:
    post:
      description: Returns information about finalizers
      operationId: get_finalizer_info
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              nullable: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  active_finalizer_policy:
                    type: object
                    description: List of current finalizers
                    properties:
                      generation:
                        type: integer
                        description: generation number of finalizer policy
                        example: 1
                      threshold:
                        type: integer
                        description: total weight needed to advance finality
                        example: 15
                      finalizers:
                        type: array
                        items:
                          type: object
                          description: Description of a finalizer
                          properties:
                            description:
                              type: string
                              description: Name of finalizer, typically a producer account
                              example: finalizerone
                            weight:
                              type: integer
                              description: >-
                                The weight of this finalizer used in determine
                                when threshold of votes is reached
                              example: 1
                            public_key:
                              type: string
                              description: The BLS Public Key used by this finalizer
                              example: >-
                                PUB_BLS_PcJG7lYgwZcsFGe-i4WWYDw1GtP7r5vGWFcRe97TVcp5f5_h6RRRPRhZSGKtRF4CtdJxAP50VewH4VIhMIPfhsu9C4GGH4MgOzSwl51N3EK6XiAiRHQ_lcGvxggipYwIReHkhQ
                  pending_finalizer_policy:
                    type: object
                    description: List of pending finalizers
                    properties:
                      generation:
                        type: integer
                        description: generation number of finalizer policy
                        example: 2
                      threshold:
                        type: integer
                        description: total weight needed to advance finality
                        example: 15
                      finalizers:
                        type: array
                        items:
                          type: object
                          description: Description of a finalizer
                          properties:
                            description:
                              type: string
                              description: Name of finalizer, typically a producer account
                              example: finalizerone
                            weight:
                              type: integer
                              description: >-
                                The weight of this finalizer used in determine
                                when threshold of votes is reached
                              example: 1
                            public_key:
                              type: string
                              description: The BLS Public Key used by this finalizer
                              example: >-
                                PUB_BLS_PcJG7lYgwZcsFGe-i4WWYDw1GtP7r5vGWFcRe97TVcp5f5_h6RRRPRhZSGKtRF4CtdJxAP50VewH4VIhMIPfhsu9C4GGH4MgOzSwl51N3EK6XiAiRHQ_lcGvxggipYwIReHkhQ
                  last_tracked_votes:
                    type: array
                    description: >-
                      Record of last votes for the finalizers in current active
                      finalizer policy and pending finalizer policy.
                    items:
                      type: object
                      properties:
                        description:
                          type: string
                          description: Description of finalizer
                          example: finalizerone
                        public_key:
                          type: string
                          description: BLS Public Key for finalizer
                          example: >-
                            PUB_BLS_PcJG7lYgwZcsFGe-i4WWYDw1GtP7r5vGWFcRe97TVcp5f5_h6RRRPRhZSGKtRF4CtdJxAP50VewH4VIhMIPfhsu9C4GGH4MgOzSwl51N3EK6XiAiRHQ_lcGvxggipYwIReHkhQ
                        is_vote_strong:
                          type: boolean
                          description: When true indicate strongly voted
                        finalizer_policy_generation:
                          type: integer
                          description: Policy Generation for vote
                          example: 2
                        voted_for_block_id:
                          type: string
                          description: Block id voted on
                          example: >-
                            00003702056551dbabfab8ed499fb7d74850e92b9ac74d13b64ff2b161341c7a
                        voted_for_block_num:
                          type: integer
                          description: Block number voted on
                          example: 1234
                        voted_for_block_timestamp:
                          $ref: '#/components/schemas/DateTimeSeconds'
                          description: Timestamp for the voted on block
        '400':
          description: client error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    description: http return code
                    example: 400
                  message:
                    type: string
                    description: summary of error
                    example: Invalid Request
                  error:
                    type: object
                    description: details on the error
                    properties:
                      code:
                        type: integer
                        description: internal error code
                        example: 3200006
                      name:
                        type: string
                        description: name of error
                        example: invalid_http_request
                      what:
                        type: string
                        description: prettier version of error name
                        example: invalid http request
                      details:
                        type: array
                        description: list of additional information for debugging
                        items:
                          type: object
                          properties:
                            message:
                              type: string
                              description: debugging message
                              example: Unable to parse valid input from POST body
                            file:
                              type: string
                              description: file where error was thrown
                              example: http_plugin.hpp
                            line_number:
                              type: integer
                              description: line number in file where error was thrown
                              example: 246
                            method:
                              type: string
                              description: function executed when error occurred
                              example: parse_params
  /get_info:
    post:
      description: Returns an object containing various details about the blockchain.
      operationId: get_info
      security: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Info'
  /push_transaction:
    post:
      description: >-
        This method expects a transaction in JSON format and will attempt to
        apply it to the blockchain.
      operationId: push_transaction
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                signatures:
                  type: array
                  description: array of signatures required to authorize transaction
                  items:
                    $ref: '#/components/schemas/Signature'
                compression:
                  type: boolean
                  description: Compression used, usually false
                packed_context_free_data:
                  type: string
                  description: JSON to hex
                packed_trx:
                  type: string
                  description: Transaction object JSON to hex
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Returns Nothing
  /send_transaction:
    post:
      description: >-
        This method expects a transaction in JSON format and will attempt to
        apply it to the blockchain.
      operationId: send_transaction
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                signatures:
                  type: array
                  description: array of signatures required to authorize transaction
                  items:
                    $ref: '#/components/schemas/Signature'
                compression:
                  type: boolean
                  description: Compression used, usually false
                packed_context_free_data:
                  type: string
                  description: JSON to hex
                packed_trx:
                  type: string
                  description: Transaction object JSON to hex
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Returns Nothing
  /push_transactions:
    post:
      description: >-
        This method expects a transaction in JSON format and will attempt to
        apply it to the blockchain.
      operationId: push_transactions
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Transaction'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Returns Nothing
  /get_block_header_state:
    post:
      description: >-
        Retrieves a block header state object with only block_num, id, header,
        and additional_signatures filled. Other fields are left empty or
        defaulted to a static value.
      operationId: get_block_header_state
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - block_num_or_id
              properties:
                block_num_or_id:
                  type: string
                  description: Provide a block_number or a block_id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockHeaderState'
  /get_abi:
    post:
      description: Retrieves the ABI for a contract based on its account name
      operationId: get_abi
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - account_name
              properties:
                account_name:
                  $ref: '#/components/schemas/Name'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Abi'
  /get_currency_balance:
    post:
      description: Retrieves the current balance
      operationId: get_currency_balance
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - code
                - account
                - symbol
              properties:
                code:
                  $ref: '#/components/schemas/Name'
                account:
                  $ref: '#/components/schemas/Name'
                symbol:
                  $ref: '#/components/schemas/Symbol'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Symbol'
  /get_currency_stats:
    post:
      description: Retrieves currency stats
      operationId: get_currency_stats
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  $ref: '#/components/schemas/Name'
                symbol:
                  $ref: '#/components/schemas/Symbol'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: >-
                  Returns an object with one member labeled as the symbol you
                  requested, the object has three members: supply (Symbol),
                  max_supply (Symbol) and issuer (Name)
  /get_required_keys:
    post:
      description: Returns the required keys needed to sign a transaction.
      operationId: get_required_keys
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - transaction
                - available_keys
              properties:
                transaction:
                  $ref: '#/components/schemas/Transaction'
                available_keys:
                  type: array
                  description: Provide the available keys
                  items:
                    $ref: '#/components/schemas/PublicKey'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
  /get_producers:
    post:
      description: Retrieves producers list
      operationId: get_producers
      requestBody:
        content:
          application/json:
            schema:
              title: GetProducersRequest
              type: object
              required:
                - limit
                - lower_bound
              properties:
                limit:
                  type: string
                  description: total number of producers to retrieve
                lower_bound:
                  type: string
                  description: >-
                    In conjunction with limit can be used to paginate through
                    the results. For example, limit=10 and lower_bound=10 would
                    be page 2
                json:
                  type: boolean
                  description: return result in JSON format
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: GetProducersResponse
                type: object
                properties:
                  rows:
                    type: array
                    nullable: true
                    items:
                      $ref: '#/components/schemas/Producer'
                  total_producer_vote_weight:
                    type: string
                    description: The sum of all producer votes.
                  more:
                    type: string
                    description: >-
                      If not all producers were returned with the first request,
                      more contains the lower bound to use for the next request.
  /get_raw_code_and_abi:
    post:
      description: Retrieves raw code and ABI for a contract based on account name
      operationId: get_raw_code_and_abi
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - account_name
              properties:
                account_name:
                  $ref: '#/components/schemas/Name'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  account_name:
                    $ref: '#/components/schemas/Name'
                  wasm:
                    type: string
                    description: base64 encoded wasm
                  abi:
                    type: string
                    description: base64 encoded ABI
  /get_scheduled_transactions:
    post:
      description: Retrieves scheduled transactions
      operationId: get_scheduled_transactions
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                lower_bound:
                  $ref: '#/components/schemas/DateTimeSeconds'
                limit:
                  description: The maximum number of transactions to return
                  type: integer
                json:
                  description: >-
                    true/false whether the packed transaction is converted to
                    json
                  type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transaction'
  /get_table_by_scope:
    post:
      description: Retrieves table scope
      operationId: get_table_by_scope
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - code
              properties:
                code:
                  type: string
                  description: '`name` of the contract to return table data for'
                table:
                  type: string
                  description: Filter results by table
                lower_bound:
                  type: string
                  description: >-
                    Filters results to return the first element that is not less
                    than provided value in set
                upper_bound:
                  type: string
                  description: >-
                    Filters results to return the first element that is greater
                    than provided value in set
                limit:
                  type: integer
                  description: Limit number of results returned.
                  format: int32
                  default: 10
                reverse:
                  type: boolean
                  description: Reverse the order of returned results
                  default: false
                show_payer:
                  type: boolean
                  description: Show RAM payer
                  default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  rows:
                    type: array
                    items:
                      $ref: '#/components/schemas/TableScope'
                  more:
                    $ref: '#/components/schemas/Name'
  /get_table_rows:
    post:
      description: Returns an object containing rows from the specified table.
      operationId: get_table_rows
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - code
                - table
                - scope
              properties:
                code:
                  type: string
                  description: >-
                    The name of the smart contract that controls the provided
                    table
                table:
                  type: string
                  description: The name of the table to query
                scope:
                  type: string
                  description: The account to which this data belongs
                index_position:
                  type: string
                  description: >-
                    Position of the index used, accepted parameters `primary`,
                    `secondary`, `tertiary`, `fourth`, `fifth`, `sixth`,
                    `seventh`, `eighth`, `ninth` , `tenth`
                key_type:
                  type: string
                  description: >-
                    Type of key specified by index_position (for example -
                    `uint64_t` or `name`)
                encode_type:
                  type: string
                lower_bound:
                  type: string
                  description: >-
                    Filters results to return the first element that is not less
                    than provided value in set
                upper_bound:
                  type: string
                  description: >-
                    Filters results to return the first element that is greater
                    than provided value in set
                limit:
                  type: integer
                  description: Limit number of results returned.
                  format: int32
                  default: 10
                reverse:
                  type: boolean
                  description: Reverse the order of returned results
                  default: false
                show_payer:
                  type: boolean
                  description: Show RAM payer
                  default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  rows:
                    type: array
                    items: {}
  /get_code:
    post:
      description: Returns an object containing the smart contract WASM code.
      operationId: get_code
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - account_name
                - code_as_wasm
              properties:
                account_name:
                  $ref: '#/components/schemas/Name'
                code_as_wasm:
                  type: integer
                  default: 1
                  description: This must be 1 (true)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                title: GetCodeResponse.yaml
                properties:
                  name:
                    $ref: '#/components/schemas/Name'
                  code_hash:
                    $ref: '#/components/schemas/Sha256'
                  wast:
                    type: string
                  wasm:
                    type: string
                  abi:
                    $ref: '#/components/schemas/Abi'
  /get_raw_abi:
    post:
      description: Returns an object containing the smart contract abi.
      operationId: get_raw_abi
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - account_name
              properties:
                account_name:
                  $ref: '#/components/schemas/Name'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  account_name:
                    $ref: '#/components/schemas/Name'
                  code_hash:
                    $ref: '#/components/schemas/Sha256'
                  abi_hash:
                    allOf:
                      - $ref: '#/components/schemas/Sha256'
                  abi:
                    type: string
  /get_activated_protocol_features:
    post:
      description: Retreives the activated protocol features for producer node
      operationId: get_activated_protocol_features
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                lower_bound:
                  type: integer
                  description: Lower bound
                upper_bound:
                  type: integer
                  description: Upper bound
                limit:
                  type: integer
                  description: The limit, default is 10
                search_by_block_num:
                  type: boolean
                  description: Flag to indicate it is has to search by block number
                reverse:
                  type: boolean
                  description: Flag to indicate it has to search in reverse
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: Returns activated protocol features
                required:
                  - activated_protocol_features
                properties:
                  activated_protocol_features:
                    type: array
                    description: >-
                      Variant type, an array of strings with the activated
                      protocol features
                    items:
                      type: string
                  more:
                    type: integer
                    description: >-
                      In case there's more activated protocol features than the
                      input parameter `limit` requested, returns the ordinal of
                      the next activated protocol feature which was not
                      returned, otherwise zero.
  /get_accounts_by_authorizers:
    post:
      description: >-
        Given a set of account names and public keys, find all account
        permission authorities that are, in part or whole, satisfiable
      operationId: get_accounts_by_authorizers
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accounts:
                  type: array
                  description: List of authorizing accounts and/or actor/permissions
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Name'
                      - $ref: '#/components/schemas/Authority'
                keys:
                  type: array
                  description: List of authorizing keys
                  items:
                    $ref: '#/components/schemas/PublicKey'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Result containing a list of accounts which are authorized, in
                  whole or part, by the provided accounts and keys
                required:
                  - accounts
                properties:
                  accounts:
                    type: array
                    description: >-
                      An array of each account,permission,authorizing-data
                      triplet in the response
                    items:
                      type: object
                      description: >-
                        the information for a single
                        account,permission,authorizing-data triplet
                      required:
                        - account_name
                        - permission_name
                        - authorizer
                        - weight
                        - threshold
                      properties:
                        account_name:
                          $ref: '#/components/schemas/Name'
                        permission_name:
                          $ref: '#/components/schemas/Name'
                        authorizer:
                          oneOf:
                            - $ref: '#/components/schemas/PublicKey'
                            - $ref: '#/components/schemas/Authority'
                        weight:
                          type: integer
                          description: >-
                            the weight that this authorizer adds to satisfy the
                            permission
                        threshold:
                          type: integer
                          description: >-
                            the sum of weights that must be met or exceeded to
                            satisfy the permission
  /get_transaction_status:
    post:
      description: >-
        Attempts to get current blockchain state and, if available, transaction
        information given the transaction id. For query to work, the transaction
        finality status feature must be enabled by configuring the chain plugin
        with the config option
        '--transaction-finality-status-max-storage-size-gb' in nodeos.
      operationId: get_transaction_status
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - id
              properties:
                id:
                  type: string
                  description: >-
                    The transaction ID of the transaction to retrieve the status
                    for.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionStatus'
  /send_transaction2:
    post:
      description: >-
        Attempts to apply a transaction to the blockchain specified in JSON
        format. It supports returning the full trace of a failed transaction and
        automatic nodeos-mediated retry if it is enabled on the node. When
        transaction retry is enabled on an API node, it will monitor incoming
        API transactions and ensure they are resubmitted additional times into
        the P2P network until they expire or are included in a block. Warning,
        full failure traces are now returned by default instead of exceptions.
        Be careful to not confuse a returned trace as an indication of
        speculative execution success. Verify 'receipt' and 'except' fields of
        the returned trace.
      operationId: send_transaction2
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                return_failure_trace:
                  type: boolean
                  description: >-
                    If true, then embed transaction exceptions into the returned
                    transaction trace.
                retry_trx:
                  type: boolean
                  description: >-
                    If true, requests to retry transaction until gets in a block
                    of given height, see retry_trx_num_blocks as well, or it is
                    irreversible or expires.
                retry_trx_num_blocks:
                  type: integer
                  description: >-
                    If retry_trx is true, requests to retry transaction until in
                    a block of given height, or lib if not specified.
                transaction:
                  type: object
                  properties:
                    signatures:
                      type: array
                      description: array of signatures required to authorize transaction.
                      items:
                        $ref: '#/components/schemas/Signature'
                    compression:
                      type: boolean
                      description: Compression used, usually false
                    packed_context_free_data:
                      type: string
                      description: JSON to hex
                    packed_trx:
                      type: string
                      description: Transaction object JSON to hex
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Returns Nothing
  /compute_transaction:
    post:
      description: >-
        Executes specified transaction and creates a transaction trace,
        including resource usage, and then reverts all state changes but not
        contribute to the subjective billing for the account. If the transaction
        has signatures, they are processed, but any failures are ignored.
        Transactions which fail always include the transaction failure trace.
        Warning, users with exposed nodes who have enabled the
        compute_transaction endpoint should implement some throttling to protect
        from Denial of Service attacks.
      operationId: compute_transaction
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                signatures:
                  type: array
                  description: array of signatures required to authorize transaction
                  items:
                    $ref: '#/components/schemas/Signature'
                compression:
                  type: boolean
                  description: Compression used, usually false
                packed_context_free_data:
                  type: string
                  description: JSON to hex
                packed_trx:
                  type: string
                  description: Transaction object, JSON to hex
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Returns Nothing
  /get_code_hash:
    post:
      description: >-
        Retrieves the code hash for a smart contract deployed on the blockchain.
        Once you have the code hash of a contract, you can compare it with a
        known or expected value to ensure that the contract code has not been
        modified or tampered with.
      operationId: get_code_hash
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account_name:
                  description: >-
                    The name of the account for which you want to retrieve the
                    code hash. It represents the account that owns the smart
                    contract code.
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  account_name:
                    description: >-
                      The name of the account where the smart contract was
                      deployed.
                    type: string
                  code_hash:
                    type: string
                    description: >-
                      A string that represents the hash value of the specified
                      account's smart contract code.
  /get_transaction_id:
    post:
      description: >-
        Retrieves the transaction ID (also known as the transaction hash) of a
        specified transaction on the blockchain.
      operationId: get_transaction_id
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                The transaction in JSON format for which the ID should be
                retrieved.
              $ref: '#/components/schemas/Transaction'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                description: The transaction ID.
  /get_producer_schedule:
    post:
      description: >-
        Retrieves the current producer schedule from the blockchain, which
        includes the list of active producers and their respective rotation
        schedule.
      operationId: get_producer_schedule
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  active:
                    description: >-
                      A JSON object that encapsulates the list of active
                      producers schedule and its version.
                    $ref: '#/components/schemas/ProducerSchedule'
                  pending:
                    description: >-
                      A JSON object that encapsulates the list of pending
                      producers schedule and its version.
                    $ref: '#/components/schemas/ProducerSchedule'
                  proposed:
                    description: >-
                      A JSON object that encapsulates the list of proposed
                      producers schedule and its version.
                    $ref: '#/components/schemas/ProducerSchedule'
  /send_read_only_transaction:
    post:
      description: >-
        Sends a read-only transaction in JSON format to the blockchain. This
        transaction is not intended for inclusion in the blockchain. When a user
        sends a transaction, which modifies the blockchain state, the connected
        node will fail the transaction.
      operationId: send_read_only_transaction
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                transaction:
                  type: object
                  properties:
                    compression:
                      type: boolean
                      description: Compression used, usually false
                    packed_context_free_data:
                      type: string
                      description: JSON to hex
                    packed_trx:
                      type: string
                      description: Transaction object JSON to hex
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Returns Nothing
  /push_block:
    post:
      description: Sends a block to the blockchain.
      operationId: push_block
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Block'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Returns Nothing
