---
title: "Construct PoPoW proof for given min superchain length and suffix length"
method: GET
path: "/nipopow/proof/{minChainLength}/{suffixLength}"
tags: ["nipopow"]
---

# Construct PoPoW proof for given min superchain length and suffix length

`GET /nipopow/proof/{minChainLength}/{suffixLength}`

## Path parameters

- `minChainLength` number, required
- `suffixLength` number, required

## Response `200`

Nipopow proof object

- NipopowProof
  - `m` number, required — security parameter (min μ-level superchain length)
  - `k` number, required — security parameter (min suffix length, >= 1)
  - `prefix` PopowHeader[], required — proof prefix headers
    - `header` BlockHeader, required — Header of a block. It authenticates link to a previous block, other block sections (transactions, UTXO set transformation proofs, extension), UTXO set, votes for blockchain parameters to be changed and proof-of-work related data.
      - `id` string, base16, required — Base16-encoded 32 byte modifier id
      - `timestamp` integer, required — Basic timestamp definition
      - `version` integer, required — Ergo blockchain protocol version
      - `adProofsRoot` string, base16, required — Base16-encoded 32 byte digest
      - `stateRoot` string, base16, required — Base16-encoded 33 byte digest - digest with extra byte with tree height
      - `transactionsRoot` string, base16, required — Base16-encoded 32 byte digest
      - `nBits` integer, required — Proof-of-work target (difficulty encoded)
      - `extensionHash` string, base16, required — Base16-encoded 32 byte digest
      - `powSolutions` PowSolutions, required — An object containing all components of pow solution
        - `pk` string, required — Base16-encoded public key
        - `w` string, required
        - `n` string, required
        - `d` number, required
      - `height` integer, required — Height of the block (genesis block height == 1)
      - `difficulty` string, required
      - `parentId` string, base16, required — Base16-encoded 32 byte modifier id
      - `votes` string, base16, required — Base16-encoded votes for a soft-fork and parameters
      - `size` integer — Size of the header in bytes
      - `extensionId` string, base16 — Base16-encoded 32 byte modifier id
      - `transactionsId` string, base16 — Base16-encoded 32 byte modifier id
      - `adProofsId` string, base16 — Base16-encoded 32 byte modifier id
    - `interlinks` ModifierId[], required — Array of header interlinks
    - `interlinksProof` BatchMerkleProof, required — Batch Merkle proof that the interlink vector corresponds to its header
      - `indices` object[], required — Proven leaves, each with its index in the tree
        - `index` integer, required — Index of the leaf
        - `digest` string, required — Base16-encoded hash of the leaf
      - `proofs` object[], required — Hashes on the paths to the root, each with the side it is on
        - `digest` string, required — Base16-encoded hash
        - `side` integer, required — Side of the hash, 0 for left and 1 for right
  - `suffixHead` PopowHeader, required
    - `header` BlockHeader, required — Header of a block. It authenticates link to a previous block, other block sections (transactions, UTXO set transformation proofs, extension), UTXO set, votes for blockchain parameters to be changed and proof-of-work related data.
      - `id` string, base16, required — Base16-encoded 32 byte modifier id
      - `timestamp` integer, required — Basic timestamp definition
      - `version` integer, required — Ergo blockchain protocol version
      - `adProofsRoot` string, base16, required — Base16-encoded 32 byte digest
      - `stateRoot` string, base16, required — Base16-encoded 33 byte digest - digest with extra byte with tree height
      - `transactionsRoot` string, base16, required — Base16-encoded 32 byte digest
      - `nBits` integer, required — Proof-of-work target (difficulty encoded)
      - `extensionHash` string, base16, required — Base16-encoded 32 byte digest
      - `powSolutions` PowSolutions, required — An object containing all components of pow solution
        - `pk` string, required — Base16-encoded public key
        - `w` string, required
        - `n` string, required
        - `d` number, required
      - `height` integer, required — Height of the block (genesis block height == 1)
      - `difficulty` string, required
      - `parentId` string, base16, required — Base16-encoded 32 byte modifier id
      - `votes` string, base16, required — Base16-encoded votes for a soft-fork and parameters
      - `size` integer — Size of the header in bytes
      - `extensionId` string, base16 — Base16-encoded 32 byte modifier id
      - `transactionsId` string, base16 — Base16-encoded 32 byte modifier id
      - `adProofsId` string, base16 — Base16-encoded 32 byte modifier id
    - `interlinks` ModifierId[], required — Array of header interlinks
    - `interlinksProof` BatchMerkleProof, required — Batch Merkle proof that the interlink vector corresponds to its header
      - `indices` object[], required — Proven leaves, each with its index in the tree
        - `index` integer, required — Index of the leaf
        - `digest` string, required — Base16-encoded hash of the leaf
      - `proofs` object[], required — Hashes on the paths to the root, each with the side it is on
        - `digest` string, required — Base16-encoded hash
        - `side` integer, required — Side of the hash, 0 for left and 1 for right
  - `suffixTail` BlockHeader[], required — tail of the proof suffix headers
    - `id` string, base16, required — Base16-encoded 32 byte modifier id
    - `timestamp` integer, required — Basic timestamp definition
    - `version` integer, required — Ergo blockchain protocol version
    - `adProofsRoot` string, base16, required — Base16-encoded 32 byte digest
    - `stateRoot` string, base16, required — Base16-encoded 33 byte digest - digest with extra byte with tree height
    - `transactionsRoot` string, base16, required — Base16-encoded 32 byte digest
    - `nBits` integer, required — Proof-of-work target (difficulty encoded)
    - `extensionHash` string, base16, required — Base16-encoded 32 byte digest
    - `powSolutions` PowSolutions, required — An object containing all components of pow solution
      - `pk` string, required — Base16-encoded public key
      - `w` string, required
      - `n` string, required
      - `d` number, required
    - `height` integer, required — Height of the block (genesis block height == 1)
    - `difficulty` string, required
    - `parentId` string, base16, required — Base16-encoded 32 byte modifier id
    - `votes` string, base16, required — Base16-encoded votes for a soft-fork and parameters
    - `size` integer — Size of the header in bytes
    - `extensionId` string, base16 — Base16-encoded 32 byte modifier id
    - `transactionsId` string, base16 — Base16-encoded 32 byte modifier id
    - `adProofsId` string, base16 — Base16-encoded 32 byte modifier id

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/ergoplatform/apis/ergo-node-api.md) · [All operations](https://skmtc.dev/ergoplatform/apis/ergo-node-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ergoplatform/ergo-node-api/revisions/a731602272c6/schema)
