MuSig2AggregatePubkeys

Compute the full aggregate pubkey from the given participant pubkeys in their current order. Outputs the secp256k1_musig_keyagg_cache and validates that the computed aggregate pubkey matches an expected aggregate pubkey. This is necessary for most MuSig2 operations.

Synopsis

Declared in <musig.h>

std::optional<CPubKey>
MuSig2AggregatePubkeys(
    std::vector<CPubKey> const& pubkeys,
    secp256k1_musig_keyagg_cache& keyagg_cache,
    std::optional<CPubKey> const& expected_aggregate);

Return Value

The aggregate public key, or std::nullopt if aggregation fails or does not match expected_aggregate.

Parameters

NameDescription
pubkeysThe participant public keys, in the order they should be aggregated.
keyagg_cacheOutput cache populated with the aggregation state for later MuSig2 operations.
expected_aggregateOptional aggregate pubkey to validate the computed result against.