---
title: "API Reference"
description: "API reference for the Nimiq Web Client (@nimiq/core) — classes, interfaces, enumerations, and type aliases grouped by domain."
canonical_url: "https://nimiq.dev/web-client/reference"
---
# API Reference

> API reference for the Nimiq Web Client (@nimiq/core) — classes, interfaces, enumerations, and type aliases grouped by domain.

Full reference for the `@nimiq/core` package. The entries below are auto-generated from the TypeScript definitions.

## Client and Configuration

The main entry points for connecting to the network and configuring the client.

<table>
<thead>
  <tr>
    <th align="left">
      Class
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./classes/Client">
        Client
      </a>
    </td>
    
    <td align="left">
      Core class — connect to the network, query state, send transactions, subscribe to events.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/ClientConfiguration">
        ClientConfiguration
      </a>
    </td>
    
    <td align="left">
      Builder for configuring network, sync mode, peers, and logging before creating a client.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/Policy">
        Policy
      </a>
    </td>
    
    <td align="left">
      Protocol constants — epoch length, batch size, staking parameters, supply calculations.
    </td>
  </tr>
</tbody>
</table>

## Accounts and Addresses

Working with on-chain accounts and Nimiq addresses.

<table>
<thead>
  <tr>
    <th align="left">
      Class / Type
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./classes/Address">
        Address
      </a>
    </td>
    
    <td align="left">
      Create, parse, format, and compare Nimiq addresses.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainBasicAccount">
        PlainBasicAccount
      </a>
    </td>
    
    <td align="left">
      Shape of a basic account returned by <code>
        getAccount()
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainStakingContract">
        PlainStakingContract
      </a>
    </td>
    
    <td align="left">
      Shape of the staking contract account.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainVestingContract">
        PlainVestingContract
      </a>
    </td>
    
    <td align="left">
      Shape of a vesting contract account.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainHtlcContract">
        PlainHtlcContract
      </a>
    </td>
    
    <td align="left">
      Shape of an HTLC (hashed time-locked contract) account.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/AccountType">
        AccountType
      </a>
    </td>
    
    <td align="left">
      Enum of account types: basic, vesting, HTLC, staking.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/PlainAccount">
        PlainAccount
      </a>
    </td>
    
    <td align="left">
      Union type of all plain account shapes.
    </td>
  </tr>
</tbody>
</table>

## Transactions

Building, signing, and inspecting transactions.

<table>
<thead>
  <tr>
    <th align="left">
      Class / Type
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./classes/TransactionBuilder">
        TransactionBuilder
      </a>
    </td>
    
    <td align="left">
      Static methods for creating all transaction types — basic transfers, staking, vesting, HTLCs.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/Transaction">
        Transaction
      </a>
    </td>
    
    <td align="left">
      Transaction object — sign, serialize, verify, and inspect.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainTransaction">
        PlainTransaction
      </a>
    </td>
    
    <td align="left">
      Shape of a serialized transaction.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainTransactionDetails">
        PlainTransactionDetails
      </a>
    </td>
    
    <td align="left">
      Transaction with inclusion state, block hash, and confirmations.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainTransactionReceipt">
        PlainTransactionReceipt
      </a>
    </td>
    
    <td align="left">
      Lightweight receipt (transaction hash + block height).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/TransactionFlag">
        TransactionFlag
      </a>
    </td>
    
    <td align="left">
      Transaction flags (contract creation, signaling).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/TransactionFormat">
        TransactionFormat
      </a>
    </td>
    
    <td align="left">
      Transaction format (basic, extended).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/TransactionState">
        TransactionState
      </a>
    </td>
    
    <td align="left">
      Transaction lifecycle states (pending, included, etc.).
    </td>
  </tr>
</tbody>
</table>

## Transaction Data and Proofs

Typed data and proof structures attached to transactions.

<table>
<thead>
  <tr>
    <th align="left">
      Type
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./interfaces/PlainRawData">
        PlainRawData
      </a>
    </td>
    
    <td align="left">
      Raw transaction data payload.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainAddStakeData">
        PlainAddStakeData
      </a>
    </td>
    
    <td align="left">
      Data for add-stake transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainCreateStakerData">
        PlainCreateStakerData
      </a>
    </td>
    
    <td align="left">
      Data for create-staker transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainCreateValidatorData">
        PlainCreateValidatorData
      </a>
    </td>
    
    <td align="left">
      Data for create-validator transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainUpdateStakerData">
        PlainUpdateStakerData
      </a>
    </td>
    
    <td align="left">
      Data for update-staker transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainUpdateValidatorData">
        PlainUpdateValidatorData
      </a>
    </td>
    
    <td align="left">
      Data for update-validator transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainRetireStakeData">
        PlainRetireStakeData
      </a>
    </td>
    
    <td align="left">
      Data for retire-stake transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainSetActiveStakeData">
        PlainSetActiveStakeData
      </a>
    </td>
    
    <td align="left">
      Data for set-active-stake transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainVestingData">
        PlainVestingData
      </a>
    </td>
    
    <td align="left">
      Data for vesting contract creation.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainHtlcData">
        PlainHtlcData
      </a>
    </td>
    
    <td align="left">
      Data for HTLC creation.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainRawProof">
        PlainRawProof
      </a>
    </td>
    
    <td align="left">
      Raw transaction proof.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainStandardProof">
        PlainStandardProof
      </a>
    </td>
    
    <td align="left">
      Standard signature proof.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainHtlcRegularTransferProof">
        PlainHtlcRegularTransferProof
      </a>
    </td>
    
    <td align="left">
      HTLC regular transfer proof (with pre-image).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainHtlcEarlyResolveProof">
        PlainHtlcEarlyResolveProof
      </a>
    </td>
    
    <td align="left">
      HTLC early resolve proof.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainHtlcTimeoutResolveProof">
        PlainHtlcTimeoutResolveProof
      </a>
    </td>
    
    <td align="left">
      HTLC timeout resolve proof.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/PlainTransactionProof">
        PlainTransactionProof
      </a>
    </td>
    
    <td align="left">
      Union type of all proof shapes.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/PlainTransactionRecipientData">
        PlainTransactionRecipientData
      </a>
    </td>
    
    <td align="left">
      Union type of all recipient data shapes.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/PlainTransactionSenderData">
        PlainTransactionSenderData
      </a>
    </td>
    
    <td align="left">
      Union type of all sender data shapes.
    </td>
  </tr>
</tbody>
</table>

## Blocks

Block structures returned by the client.

<table>
<thead>
  <tr>
    <th align="left">
      Type
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./interfaces/PlainMicroBlock">
        PlainMicroBlock
      </a>
    </td>
    
    <td align="left">
      Shape of a micro block (produced by validators each slot).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainMacroBlock">
        PlainMacroBlock
      </a>
    </td>
    
    <td align="left">
      Shape of a macro block (election and checkpoint blocks).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainBlockCommonFields">
        PlainBlockCommonFields
      </a>
    </td>
    
    <td align="left">
      Fields shared by both block types.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/PlainBlock">
        PlainBlock
      </a>
    </td>
    
    <td align="left">
      Union type of micro and macro blocks.
    </td>
  </tr>
</tbody>
</table>

## Keys and Cryptography

Key generation, signing, and cryptographic primitives.

<table>
<thead>
  <tr>
    <th align="left">
      Class
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./classes/KeyPair">
        KeyPair
      </a>
    </td>
    
    <td align="left">
      Generate, derive, sign, and serialize Ed25519 keypairs.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/PrivateKey">
        PrivateKey
      </a>
    </td>
    
    <td align="left">
      Private key generation and serialization.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/PublicKey">
        PublicKey
      </a>
    </td>
    
    <td align="left">
      Public key derivation, verification, and serialization.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/Signature">
        Signature
      </a>
    </td>
    
    <td align="left">
      Ed25519 signature.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/SignatureProof">
        SignatureProof
      </a>
    </td>
    
    <td align="left">
      Signature proof construction for transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/ES256PublicKey">
        ES256PublicKey
      </a>
    </td>
    
    <td align="left">
      ES256 (P-256) public key — used for WebAuthn integration.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/ES256Signature">
        ES256Signature
      </a>
    </td>
    
    <td align="left">
      ES256 (P-256) signature.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/BLSKeyPair">
        BLSKeyPair
      </a>
    </td>
    
    <td align="left">
      BLS keypair — used for validator voting keys.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/BLSPublicKey">
        BLSPublicKey
      </a>
    </td>
    
    <td align="left">
      BLS public key.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/BLSSecretKey">
        BLSSecretKey
      </a>
    </td>
    
    <td align="left">
      BLS secret key.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/Hash">
        Hash
      </a>
    </td>
    
    <td align="left">
      Hashing utilities (Blake2b, SHA-256).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/CryptoUtils">
        CryptoUtils
      </a>
    </td>
    
    <td align="left">
      Shared cryptographic helpers.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/MerkleTree">
        MerkleTree
      </a>
    </td>
    
    <td align="left">
      Merkle tree construction and proof verification.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/Commitment">
        Commitment
      </a>
    </td>
    
    <td align="left">
      Schnorr commitment for multi-signature schemes.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/CommitmentPair">
        CommitmentPair
      </a>
    </td>
    
    <td align="left">
      Commitment pair (secret + commitment).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/PartialSignature">
        PartialSignature
      </a>
    </td>
    
    <td align="left">
      Partial signature for multi-signature aggregation.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/RandomSecret">
        RandomSecret
      </a>
    </td>
    
    <td align="left">
      Random secret for commitment schemes.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/Secret">
        Secret
      </a>
    </td>
    
    <td align="left">
      Base class for cryptographic secrets.
    </td>
  </tr>
</tbody>
</table>

## Wallets and HD Derivation

Mnemonic phrases, entropy, and hierarchical deterministic key derivation.

<table>
<thead>
  <tr>
    <th align="left">
      Class
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./classes/MnemonicUtils">
        MnemonicUtils
      </a>
    </td>
    
    <td align="left">
      Generate mnemonics, convert to keys/seeds, detect mnemonic type (BIP39 vs legacy).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/ExtendedPrivateKey">
        ExtendedPrivateKey
      </a>
    </td>
    
    <td align="left">
      HD key derivation — master key generation, child derivation, path-based derivation.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/Entropy">
        Entropy
      </a>
    </td>
    
    <td align="left">
      Entropy generation and conversion for mnemonic phrases.
    </td>
  </tr>
</tbody>
</table>

## Staking

Validator and staker data structures.

<table>
<thead>
  <tr>
    <th align="left">
      Type
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./interfaces/PlainValidator">
        PlainValidator
      </a>
    </td>
    
    <td align="left">
      Shape of a validator returned by <code>
        getValidator()
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainValidatorData">
        PlainValidatorData
      </a>
    </td>
    
    <td align="left">
      Validator configuration fields.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainStaker">
        PlainStaker
      </a>
    </td>
    
    <td align="left">
      Shape of a staker returned by <code>
        getStaker()
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/StakingContract">
        StakingContract
      </a>
    </td>
    
    <td align="left">
      Staking contract parsing utilities.
    </td>
  </tr>
</tbody>
</table>

## Contracts

Vesting and HTLC contract helpers.

<table>
<thead>
  <tr>
    <th align="left">
      Class
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./classes/VestingContract">
        VestingContract
      </a>
    </td>
    
    <td align="left">
      Parse vesting contract data from transactions.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/HashedTimeLockedContract">
        HashedTimeLockedContract
      </a>
    </td>
    
    <td align="left">
      Parse HTLC data and proofs from transactions.
    </td>
  </tr>
</tbody>
</table>

## Utilities

Serialization, formatting, and buffer helpers.

<table>
<thead>
  <tr>
    <th align="left">
      Class
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./classes/SerialBuffer">
        SerialBuffer
      </a>
    </td>
    
    <td align="left">
      Binary serialization buffer for reading and writing typed data.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/BufferUtils">
        BufferUtils
      </a>
    </td>
    
    <td align="left">
      Convert between hex, base64, and byte arrays.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/NumberUtils">
        NumberUtils
      </a>
    </td>
    
    <td align="left">
      Number formatting and parsing.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/StringUtils">
        StringUtils
      </a>
    </td>
    
    <td align="left">
      String utilities.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./classes/ArrayUtils">
        ArrayUtils
      </a>
    </td>
    
    <td align="left">
      Array comparison and manipulation.
    </td>
  </tr>
</tbody>
</table>

## Network and Peers

<table>
<thead>
  <tr>
    <th align="left">
      Type
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./interfaces/PlainPeerInfo">
        PlainPeerInfo
      </a>
    </td>
    
    <td align="left">
      Shape of peer information from peer-change events.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/ConsensusState">
        ConsensusState
      </a>
    </td>
    
    <td align="left">
      Consensus state values (connecting, syncing, established).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/PlainService">
        PlainService
      </a>
    </td>
    
    <td align="left">
      Network service flags.
    </td>
  </tr>
</tbody>
</table>

## Initialization

<table>
<thead>
  <tr>
    <th align="left">
      Type
    </th>
    
    <th align="left">
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td align="left">
      <a href="./functions/default">
        default
      </a>
    </td>
    
    <td align="left">
      The <code>
        init()
      </code>
      
       function for web target — loads the WASM module.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./functions/initSync">
        initSync
      </a>
    </td>
    
    <td align="left">
      Synchronous WASM initialization (when async is not available).
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/InitInput">
        InitInput
      </a>
    </td>
    
    <td align="left">
      Accepted input types for async <code>
        init()
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./type-aliases/SyncInitInput">
        SyncInitInput
      </a>
    </td>
    
    <td align="left">
      Accepted input types for <code>
        initSync()
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/InitOutput">
        InitOutput
      </a>
    </td>
    
    <td align="left">
      Output of WASM initialization.
    </td>
  </tr>
  
  <tr>
    <td align="left">
      <a href="./interfaces/PlainClientConfiguration">
        PlainClientConfiguration
      </a>
    </td>
    
    <td align="left">
      Shape of the built client configuration object.
    </td>
  </tr>
</tbody>
</table>


## Sitemap

See the full [sitemap](https://nimiq.dev/sitemap.md) for all pages.
