ordspv
    Preparing search index...

    Interface HeaderTrustOptions

    interface HeaderTrustOptions {
        checkpoints?: ReadonlyMap<number, string>;
        esploras?: EsploraBackend[];
        minAgreement?: number;
        minConfirmations?: number;
        onDisagreement?: "throw" | "flag";
        powLimitBits?: number | null;
        proofSource?: string;
        proofSources?: Iterable<string, any, any>;
    }
    Index
    checkpoints?: ReadonlyMap<number, string>
    esploras?: EsploraBackend[]

    Attesting backends: the endpoints asked for the hash at the proof's height. Callers pass their anchor sources here (see DEFAULT_ANCHOR_SOURCES), which need only /block-height/<n> and are a different membership question from the backends that serve proofs.

    minAgreement?: number

    How many agreeing attesters must support the header at a non-checkpoint height (default 2). Backends that served the bundle are excluded from the vote and add nothing to the count. Lowering this to 1 leaves a single outside source able to anchor a header; do that only when a covering checkpoint set or headerSyncTrust provides the anchor instead. Values below 1 are rejected at construction: a threshold of 0 anchors a header on nobody's word, which is the same as not anchoring at all.

    minConfirmations?: number

    Require this many confirmations on top of the proof's block (0 = skip). A whole number of blocks, validated at construction for the reason minAgreement is: the reach is Number(process.env.X), NaN is falsy, and a falsy depth skipped the phase entirely, so a caller that asked for a floor got no tip query at all and no field in the report to say so.

    onDisagreement?: "throw" | "flag"

    What a reachable disagreement does (default 'throw'). An attester that answers a well-formed hash which is not the header's asserts a different block at the proven height, which is a claim that the chain forked there. This library has no means to adjudicate that, and the checkpoint arm already refuses the same shape of evidence, so a compiled-in hash and a live operator's hash are treated alike. 'flag' records the disagreement in the report and lets the call resolve, for an operator who knows one of their endpoints lags; the anchor then withholds its attestation, so a sub-BIP34 coinbase height resting on it is refused rather than accepted on a contested pair.

    powLimitBits?: number | null

    Compact-bits proof-of-work floor: reject any header whose target is easier than this limit. Defaults to the mainnet powLimit (0x1d00ffff), matching the default mainnet checkpoints; pass the network's own limit (or null to disable) for non-mainnet chains.

    proofSource?: string

    baseUrl of the backend that produced the proof being anchored. Its hash-at-height answer is excluded from the attesting set so it cannot vote for its own header.

    proofSources?: Iterable<string, any, any>

    Every baseUrl that served bytes for the bundle, for builds spread across a pool. All of them are excluded from the attesting set, as proofSource is for a single-backend build; the two options are additive.