// SPDX-License-Identifier: MIT
/**
 * Bitcoin documentation index
 *
 * Covers Bitcoin protocol, cryptography, wallets, Bitcoin Core, Lightning
 * (protocol + impl + app + security), L2 (statechains/Ark/Spark/Liquid/
 * Taproot Assets/RGB/Stacks/RSK/Fedimint/Cashu/Citrea/etc.), metaprotocols
 * (Ordinals/Inscriptions/BRC-20/Runes), privacy (CoinJoin/PayJoin/Silent
 * Payments), mining, hardware wallets, infrastructure, testing, and
 * libraries across Rust/TS/Python/Go/JVM/.NET/C.
 *
 * Each entry currently points to a `local` overview path (under
 * knowledge_base/bitcoin/) and a canonical upstream `url`. Phase B
 * topic-deep articles can be layered on later by adding additional keys
 * besides `overview`.
 */

import type { DocsRecord } from "./types.js";

export const BITCOIN_TECHNOLOGIES = [
  // protocol
  "bitcoin-consensus",
  "bitcoin-transactions",
  "bitcoin-scripts",
  "bitcoin-segwit",
  "bitcoin-taproot",
  "bitcoin-psbt",
  "bitcoin-descriptors",
  "bitcoin-miniscript",
  "bitcoin-bips",
  "bitcoin-p2p",
  "bitcoin-package-relay",
  "bitcoin-message-signing",
  "bitcoin-proposals",
  // cryptography
  "bitcoin-secp256k1",
  "bitcoin-ecdsa",
  "bitcoin-schnorr",
  "bitcoin-bip32",
  "bitcoin-musig2",
  "bitcoin-frost",
  "bitcoin-adaptor-sigs",
  "bitcoin-dlcs",
  // wallets
  "bitcoin-wallet-hd",
  "bitcoin-coin-selection",
  "bitcoin-fee-estimation",
  "bitcoin-rbf-cpfp",
  "bitcoin-vaults",
  "bitcoin-timelocks",
  "bitcoin-uri-schemes",
  "bitcoin-payment-codes",
  "bitcoin-wallet-labels",
  "bitcoin-wallet-entropy",
  "bitcoin-wallet-backup",
  // core
  "bitcoin-core-rpc",
  "bitcoin-core-operations",
  "bitcoin-core-descriptors-wallet",
  "bitcoin-core-indexes",
  "bitcoin-core-zmq",
  "bitcoin-core-rest-api",
  "bitcoin-core-release-engineering",
  "bitcoin-knots",
  // lightning
  "lightning-bolts",
  "lightning-channels",
  "lightning-htlcs",
  "lightning-routing",
  "lightning-onion",
  "lightning-gossip",
  "lightning-watchtowers",
  "lightning-splicing",
  "lightning-taproot-channels",
  "lightning-lnd",
  "lightning-cln",
  "lightning-ldk",
  "lightning-eclair",
  "lightning-greenlight",
  "lightning-phoenixd",
  "lightning-bolt12",
  "lightning-lnurl",
  "lightning-address",
  "lightning-lsp",
  "lightning-webln",
  "lightning-nwc",
  "lightning-uma",
  "lightning-trampoline",
  "lightning-amp-mpp",
  "lightning-keysend",
  "lightning-loop-pool-lit",
  "lightning-submarine-swaps",
  "lightning-replacement-cycling",
  "lightning-channel-jamming",
  "lightning-pinning-attacks",
  "lightning-consumer-wallets",
  // l2
  "bitcoin-l2-statechains",
  "bitcoin-l2-ark",
  "bitcoin-l2-spark",
  "bitcoin-l2-liquid",
  "bitcoin-l2-taproot-assets",
  "bitcoin-l2-rgb",
  "bitcoin-l2-counterparty",
  "bitcoin-l2-stacks",
  "bitcoin-l2-rootstock-rsk",
  "bitcoin-l2-fedimint",
  "bitcoin-l2-cashu",
  "bitcoin-l2-citrea",
  "bitcoin-l2-strata",
  "bitcoin-l2-bsquared",
  "bitcoin-l2-bitlayer",
  "bitcoin-l2-merlin",
  "bitcoin-l2-botanix",
  "bitcoin-l2-bob",
  "bitcoin-l2-hemi",
  "bitcoin-l2-map-protocol",
  "bitcoin-l2-babylon",
  "bitcoin-l2-bitvm",
  "bitcoin-l2-threshold-tbtc",
  "bitcoin-l2-drivechains-spacechains",
  // metaprotocols
  "bitcoin-metaprotocols-ordinals",
  "bitcoin-metaprotocols-inscriptions",
  "bitcoin-metaprotocols-brc-20",
  "bitcoin-metaprotocols-runes",
  "bitcoin-metaprotocols-atomicals",
  // privacy
  "bitcoin-privacy-coinjoin",
  "bitcoin-privacy-payjoin",
  "bitcoin-privacy-silent-payments",
  "bitcoin-privacy-stealth",
  "bitcoin-privacy-tor",
  "bitcoin-privacy-bip47",
  "bitcoin-privacy-dandelion",
  "bitcoin-privacy-p2p-exchanges",
  "bitcoin-privacy-atomic-swaps",
  // mining
  "bitcoin-mining-pow",
  "bitcoin-mining-difficulty",
  "bitcoin-mining-stratum-v1",
  "bitcoin-mining-stratum-v2",
  "bitcoin-mining-pool-architectures",
  "bitcoin-mining-decentralized-pools",
  "bitcoin-mining-firmware",
  // hardware
  "bitcoin-hardware-trezor",
  "bitcoin-hardware-ledger",
  "bitcoin-hardware-coldcard",
  "bitcoin-hardware-bitbox02",
  "bitcoin-hardware-jade",
  "bitcoin-hardware-passport",
  "bitcoin-hardware-seedsigner",
  "bitcoin-hardware-krux",
  "bitcoin-hardware-keystone",
  "bitcoin-hardware-specter-diy",
  "bitcoin-hardware-hwi",
  "bitcoin-hardware-psbt-flows",
  "bitcoin-hardware-multi-vendor-multisig",
  // infrastructure
  "bitcoin-infrastructure-electrs",
  "bitcoin-infrastructure-fulcrum",
  "bitcoin-infrastructure-esplora",
  "bitcoin-infrastructure-mempool-space",
  "bitcoin-infrastructure-btcpay",
  "bitcoin-infrastructure-specter-desktop",
  "bitcoin-infrastructure-sparrow",
  "bitcoin-infrastructure-electrum-wallet",
  "bitcoin-infrastructure-bluewallet",
  "bitcoin-infrastructure-caravan",
  "bitcoin-infrastructure-node-distros",
  // testing
  "bitcoin-testing-regtest",
  "bitcoin-testing-signet",
  "bitcoin-testing-polar",
  "bitcoin-testing-nigiri",
  "bitcoin-testing-core-test-framework",
  "bitcoin-testing-fuzz",
  "bitcoin-testing-property-based",
  // libraries
  "bitcoin-libraries-rust-bitcoin",
  "bitcoin-libraries-bdk",
  "bitcoin-libraries-ldk",
  "bitcoin-libraries-miniscript-rs",
  "bitcoin-libraries-secp256k1-rs",
  "bitcoin-libraries-rust-dlc",
  "bitcoin-libraries-bitcoinjs-lib",
  "bitcoin-libraries-scure-btc-signer",
  "bitcoin-libraries-mempool-js",
  "bitcoin-libraries-bcoin-js",
  "bitcoin-libraries-bolt11",
  "bitcoin-libraries-python-bitcoinlib",
  "bitcoin-libraries-embit",
  "bitcoin-libraries-bitcoinlib-py",
  "bitcoin-libraries-hdwallet-py",
  "bitcoin-libraries-bdk-python",
  "bitcoin-libraries-btcd",
  "bitcoin-libraries-btcsuite",
  "bitcoin-libraries-lnd-go",
  "bitcoin-libraries-tapd-go",
  "bitcoin-libraries-bitcoinj",
  "bitcoin-libraries-bdk-jvm",
  "bitcoin-libraries-nbitcoin",
  "bitcoin-libraries-secp256k1-c",
  "bitcoin-libraries-libwally",
  "bitcoin-libraries-libbitcoin",
] as const;

const e = (local: string, url: string) => ({ overview: { local, url } });

export const bitcoinDocs: DocsRecord = {
  // protocol
  "bitcoin-consensus": e("bitcoin/protocol/consensus/overview.md", "https://github.com/bitcoin/bips/blob/master/README.mediawiki"),
  "bitcoin-transactions": e("bitcoin/protocol/transactions/overview.md", "https://en.bitcoin.it/wiki/Transaction"),
  "bitcoin-scripts": e("bitcoin/protocol/scripts/overview.md", "https://en.bitcoin.it/wiki/Script"),
  "bitcoin-segwit": e("bitcoin/protocol/segwit/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki"),
  "bitcoin-taproot": e("bitcoin/protocol/taproot/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki"),
  "bitcoin-psbt": e("bitcoin/protocol/psbt/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki"),
  "bitcoin-descriptors": e("bitcoin/protocol/descriptors/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md"),
  "bitcoin-miniscript": e("bitcoin/protocol/miniscript/overview.md", "https://bitcoin.sipa.be/miniscript/"),
  "bitcoin-bips": e("bitcoin/protocol/bips/overview.md", "https://github.com/bitcoin/bips"),
  "bitcoin-p2p": e("bitcoin/protocol/p2p/overview.md", "https://en.bitcoin.it/wiki/Protocol_documentation"),
  "bitcoin-package-relay": e("bitcoin/protocol/package-relay/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0331.mediawiki"),
  "bitcoin-message-signing": e("bitcoin/protocol/message-signing/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki"),
  "bitcoin-proposals": e("bitcoin/protocol/proposals/overview.md", "https://github.com/bitcoin/bips"),
  // cryptography
  "bitcoin-secp256k1": e("bitcoin/cryptography/secp256k1/overview.md", "https://github.com/bitcoin-core/secp256k1"),
  "bitcoin-ecdsa": e("bitcoin/cryptography/ecdsa/overview.md", "https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm"),
  "bitcoin-schnorr": e("bitcoin/cryptography/schnorr/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki"),
  "bitcoin-bip32": e("bitcoin/cryptography/bip32/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki"),
  "bitcoin-musig2": e("bitcoin/cryptography/musig2/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0327.mediawiki"),
  "bitcoin-frost": e("bitcoin/cryptography/frost/overview.md", "https://datatracker.ietf.org/doc/draft-irtf-cfrg-frost/"),
  "bitcoin-adaptor-sigs": e("bitcoin/cryptography/adaptor-sigs/overview.md", "https://bitcoinops.org/en/topics/adaptor-signatures/"),
  "bitcoin-dlcs": e("bitcoin/cryptography/dlcs/overview.md", "https://github.com/discreetlogcontracts/dlcspecs"),
  // wallets
  "bitcoin-wallet-hd": e("bitcoin/wallets/hd/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki"),
  "bitcoin-coin-selection": e("bitcoin/wallets/coin-selection/overview.md", "https://murch.one/wp-content/uploads/2024/07/erhardt2016coinselection.pdf"),
  "bitcoin-fee-estimation": e("bitcoin/wallets/fee-estimation/overview.md", "https://bitcoin.org/en/developer-reference#estimatesmartfee"),
  "bitcoin-rbf-cpfp": e("bitcoin/wallets/rbf-cpfp/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki"),
  "bitcoin-vaults": e("bitcoin/wallets/vaults/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0345.mediawiki"),
  "bitcoin-timelocks": e("bitcoin/wallets/timelocks/overview.md", "https://en.bitcoin.it/wiki/Timelock"),
  "bitcoin-uri-schemes": e("bitcoin/wallets/uri-schemes/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki"),
  "bitcoin-payment-codes": e("bitcoin/wallets/payment-codes/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki"),
  "bitcoin-wallet-labels": e("bitcoin/wallets/labels/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0329.mediawiki"),
  "bitcoin-wallet-entropy": e("bitcoin/wallets/entropy/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki"),
  "bitcoin-wallet-backup": e("bitcoin/wallets/backup/overview.md", "https://github.com/satoshilabs/slips/blob/master/slip-0039.md"),
  // core
  "bitcoin-core-rpc": e("bitcoin/core/rpc/overview.md", "https://developer.bitcoin.org/reference/rpc/"),
  "bitcoin-core-operations": e("bitcoin/core/operations/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/bitcoin-conf.md"),
  "bitcoin-core-descriptors-wallet": e("bitcoin/core/descriptors-wallet/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md"),
  "bitcoin-core-indexes": e("bitcoin/core/indexes/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/files.md"),
  "bitcoin-core-zmq": e("bitcoin/core/zmq/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/zmq.md"),
  "bitcoin-core-rest-api": e("bitcoin/core/rest-api/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md"),
  "bitcoin-core-release-engineering": e("bitcoin/core/release-engineering/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/contrib/guix/README.md"),
  "bitcoin-knots": e("bitcoin/core/knots/overview.md", "https://bitcoinknots.org/"),
  // lightning
  "lightning-bolts": e("bitcoin/lightning/bolts/overview.md", "https://github.com/lightning/bolts"),
  "lightning-channels": e("bitcoin/lightning/channels/overview.md", "https://github.com/lightning/bolts/blob/master/02-peer-protocol.md"),
  "lightning-htlcs": e("bitcoin/lightning/htlcs/overview.md", "https://github.com/lightning/bolts/blob/master/03-transactions.md"),
  "lightning-routing": e("bitcoin/lightning/routing/overview.md", "https://github.com/lightning/bolts/blob/master/04-onion-routing.md"),
  "lightning-onion": e("bitcoin/lightning/onion/overview.md", "https://github.com/lightning/bolts/blob/master/04-onion-routing.md"),
  "lightning-gossip": e("bitcoin/lightning/gossip/overview.md", "https://github.com/lightning/bolts/blob/master/07-routing-gossip.md"),
  "lightning-watchtowers": e("bitcoin/lightning/watchtowers/overview.md", "https://github.com/lightning/bolts/blob/master/13-watchtowers.md"),
  "lightning-splicing": e("bitcoin/lightning/splicing/overview.md", "https://github.com/lightning/bolts/pull/1160"),
  "lightning-taproot-channels": e("bitcoin/lightning/taproot-channels/overview.md", "https://github.com/lightning/bolts/pull/995"),
  "lightning-lnd": e("bitcoin/lightning/lnd/overview.md", "https://github.com/lightningnetwork/lnd"),
  "lightning-cln": e("bitcoin/lightning/cln/overview.md", "https://github.com/ElementsProject/lightning"),
  "lightning-ldk": e("bitcoin/lightning/ldk/overview.md", "https://lightningdevkit.org/"),
  "lightning-eclair": e("bitcoin/lightning/eclair/overview.md", "https://github.com/ACINQ/eclair"),
  "lightning-greenlight": e("bitcoin/lightning/greenlight/overview.md", "https://blockstream.com/lightning/greenlight/"),
  "lightning-phoenixd": e("bitcoin/lightning/phoenixd/overview.md", "https://github.com/ACINQ/phoenixd"),
  "lightning-bolt12": e("bitcoin/lightning/bolt12/overview.md", "https://bolt12.org/"),
  "lightning-lnurl": e("bitcoin/lightning/lnurl/overview.md", "https://github.com/lnurl/luds"),
  "lightning-address": e("bitcoin/lightning/lightning-address/overview.md", "https://github.com/andrerfneves/lightning-address"),
  "lightning-lsp": e("bitcoin/lightning/lsp/overview.md", "https://github.com/lightning/blips"),
  "lightning-webln": e("bitcoin/lightning/webln/overview.md", "https://www.webln.guide/"),
  "lightning-nwc": e("bitcoin/lightning/nwc/overview.md", "https://github.com/nostr-protocol/nips/blob/master/47.md"),
  "lightning-uma": e("bitcoin/lightning/uma/overview.md", "https://uma.me/"),
  "lightning-trampoline": e("bitcoin/lightning/trampoline/overview.md", "https://github.com/lightning/bolts/pull/829"),
  "lightning-amp-mpp": e("bitcoin/lightning/amp-mpp/overview.md", "https://github.com/lightning/bolts/blob/master/04-onion-routing.md#basic-multi-part-payments"),
  "lightning-keysend": e("bitcoin/lightning/keysend/overview.md", "https://github.com/lightning/bolts/issues/605"),
  "lightning-loop-pool-lit": e("bitcoin/lightning/loop-pool-lit/overview.md", "https://lightning.engineering/posts/2024-04-25-lit/"),
  "lightning-submarine-swaps": e("bitcoin/lightning/submarine-swaps/overview.md", "https://docs.boltz.exchange/"),
  "lightning-replacement-cycling": e("bitcoin/lightning/replacement-cycling/overview.md", "https://github.com/ariard/mempool-research"),
  "lightning-channel-jamming": e("bitcoin/lightning/channel-jamming/overview.md", "https://bitcoinops.org/en/topics/channel-jamming-attacks/"),
  "lightning-pinning-attacks": e("bitcoin/lightning/pinning-attacks/overview.md", "https://bitcoinops.org/en/topics/pinning-attacks/"),
  "lightning-consumer-wallets": e("bitcoin/lightning/consumer-wallets/overview.md", "https://www.lopp.net/lightning-wallet-comparison.html"),
  // l2
  "bitcoin-l2-statechains": e("bitcoin/l2/statechains/overview.md", "https://commerceblock.com/mercury-layer/"),
  "bitcoin-l2-ark": e("bitcoin/l2/ark/overview.md", "https://ark-protocol.org/"),
  "bitcoin-l2-spark": e("bitcoin/l2/spark/overview.md", "https://www.spark.money/"),
  "bitcoin-l2-liquid": e("bitcoin/l2/liquid/overview.md", "https://liquid.net/"),
  "bitcoin-l2-taproot-assets": e("bitcoin/l2/taproot-assets/overview.md", "https://docs.lightning.engineering/the-lightning-network/taproot-assets"),
  "bitcoin-l2-rgb": e("bitcoin/l2/rgb/overview.md", "https://rgb.tech/"),
  "bitcoin-l2-counterparty": e("bitcoin/l2/counterparty/overview.md", "https://counterparty.io/"),
  "bitcoin-l2-stacks": e("bitcoin/l2/stacks/overview.md", "https://www.stacks.co/"),
  "bitcoin-l2-rootstock-rsk": e("bitcoin/l2/rootstock-rsk/overview.md", "https://rootstock.io/"),
  "bitcoin-l2-fedimint": e("bitcoin/l2/fedimint/overview.md", "https://fedimint.org/"),
  "bitcoin-l2-cashu": e("bitcoin/l2/cashu/overview.md", "https://cashu.space/"),
  "bitcoin-l2-citrea": e("bitcoin/l2/citrea/overview.md", "https://citrea.xyz/"),
  "bitcoin-l2-strata": e("bitcoin/l2/strata/overview.md", "https://www.alpenlabs.io/"),
  "bitcoin-l2-bsquared": e("bitcoin/l2/bsquared/overview.md", "https://www.bsquared.network/"),
  "bitcoin-l2-bitlayer": e("bitcoin/l2/bitlayer/overview.md", "https://www.bitlayer.org/"),
  "bitcoin-l2-merlin": e("bitcoin/l2/merlin/overview.md", "https://merlinchain.io/"),
  "bitcoin-l2-botanix": e("bitcoin/l2/botanix/overview.md", "https://botanixlabs.xyz/"),
  "bitcoin-l2-bob": e("bitcoin/l2/bob/overview.md", "https://www.gobob.xyz/"),
  "bitcoin-l2-hemi": e("bitcoin/l2/hemi/overview.md", "https://hemi.xyz/"),
  "bitcoin-l2-map-protocol": e("bitcoin/l2/map-protocol/overview.md", "https://www.mapprotocol.io/"),
  "bitcoin-l2-babylon": e("bitcoin/l2/babylon/overview.md", "https://babylonlabs.io/"),
  "bitcoin-l2-bitvm": e("bitcoin/l2/bitvm/overview.md", "https://bitvm.org/"),
  "bitcoin-l2-threshold-tbtc": e("bitcoin/l2/threshold-tbtc/overview.md", "https://threshold.network/"),
  "bitcoin-l2-drivechains-spacechains": e("bitcoin/l2/drivechains-spacechains/overview.md", "https://www.drivechain.info/"),
  // metaprotocols
  "bitcoin-metaprotocols-ordinals": e("bitcoin/metaprotocols/ordinals/overview.md", "https://docs.ordinals.com/"),
  "bitcoin-metaprotocols-inscriptions": e("bitcoin/metaprotocols/inscriptions/overview.md", "https://docs.ordinals.com/inscriptions.html"),
  "bitcoin-metaprotocols-brc-20": e("bitcoin/metaprotocols/brc-20/overview.md", "https://layer1.gitbook.io/layer1-foundation/protocols/brc-20"),
  "bitcoin-metaprotocols-runes": e("bitcoin/metaprotocols/runes/overview.md", "https://docs.ordinals.com/runes.html"),
  "bitcoin-metaprotocols-atomicals": e("bitcoin/metaprotocols/atomicals/overview.md", "https://docs.atomicals.xyz/"),
  // privacy
  "bitcoin-privacy-coinjoin": e("bitcoin/privacy/coinjoin/overview.md", "https://en.bitcoin.it/wiki/CoinJoin"),
  "bitcoin-privacy-payjoin": e("bitcoin/privacy/payjoin/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0078.mediawiki"),
  "bitcoin-privacy-silent-payments": e("bitcoin/privacy/silent-payments/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0352.mediawiki"),
  "bitcoin-privacy-stealth": e("bitcoin/privacy/stealth/overview.md", "https://en.bitcoin.it/wiki/Stealth_address"),
  "bitcoin-privacy-tor": e("bitcoin/privacy/tor/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/tor.md"),
  "bitcoin-privacy-bip47": e("bitcoin/privacy/bip47-paynyms/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki"),
  "bitcoin-privacy-dandelion": e("bitcoin/privacy/dandelion/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0156.mediawiki"),
  "bitcoin-privacy-p2p-exchanges": e("bitcoin/privacy/p2p-exchanges/overview.md", "https://bisq.network/"),
  "bitcoin-privacy-atomic-swaps": e("bitcoin/privacy/atomic-swaps/overview.md", "https://en.bitcoin.it/wiki/Atomic_swap"),
  // mining
  "bitcoin-mining-pow": e("bitcoin/mining/pow/overview.md", "https://en.bitcoin.it/wiki/Proof_of_work"),
  "bitcoin-mining-difficulty": e("bitcoin/mining/difficulty/overview.md", "https://en.bitcoin.it/wiki/Difficulty"),
  "bitcoin-mining-stratum-v1": e("bitcoin/mining/stratum-v1/overview.md", "https://braiins.com/stratum-v1/docs"),
  "bitcoin-mining-stratum-v2": e("bitcoin/mining/stratum-v2/overview.md", "https://stratumprotocol.org/"),
  "bitcoin-mining-pool-architectures": e("bitcoin/mining/pool-architectures/overview.md", "https://en.bitcoin.it/wiki/Comparison_of_mining_pools"),
  "bitcoin-mining-decentralized-pools": e("bitcoin/mining/decentralized-pools/overview.md", "https://ocean.xyz/"),
  "bitcoin-mining-firmware": e("bitcoin/mining/firmware/overview.md", "https://braiins.com/os"),
  // hardware
  "bitcoin-hardware-trezor": e("bitcoin/hardware/trezor/overview.md", "https://trezor.io/"),
  "bitcoin-hardware-ledger": e("bitcoin/hardware/ledger/overview.md", "https://www.ledger.com/"),
  "bitcoin-hardware-coldcard": e("bitcoin/hardware/coldcard/overview.md", "https://coldcard.com/"),
  "bitcoin-hardware-bitbox02": e("bitcoin/hardware/bitbox02/overview.md", "https://shiftcrypto.ch/bitbox02/"),
  "bitcoin-hardware-jade": e("bitcoin/hardware/jade/overview.md", "https://blockstream.com/jade/"),
  "bitcoin-hardware-passport": e("bitcoin/hardware/passport/overview.md", "https://foundationdevices.com/passport/"),
  "bitcoin-hardware-seedsigner": e("bitcoin/hardware/seedsigner/overview.md", "https://seedsigner.com/"),
  "bitcoin-hardware-krux": e("bitcoin/hardware/krux/overview.md", "https://selfcustody.github.io/krux/"),
  "bitcoin-hardware-keystone": e("bitcoin/hardware/keystone/overview.md", "https://keyst.one/"),
  "bitcoin-hardware-specter-diy": e("bitcoin/hardware/specter-diy/overview.md", "https://github.com/cryptoadvance/specter-diy"),
  "bitcoin-hardware-hwi": e("bitcoin/hardware/hwi/overview.md", "https://github.com/bitcoin-core/HWI"),
  "bitcoin-hardware-psbt-flows": e("bitcoin/hardware/psbt-flows/overview.md", "https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki"),
  "bitcoin-hardware-multi-vendor-multisig": e("bitcoin/hardware/multi-vendor-multisig/overview.md", "https://www.unchained.com/multisig"),
  // infrastructure
  "bitcoin-infrastructure-electrs": e("bitcoin/infrastructure/electrs/overview.md", "https://github.com/romanz/electrs"),
  "bitcoin-infrastructure-fulcrum": e("bitcoin/infrastructure/fulcrum/overview.md", "https://github.com/cculianu/Fulcrum"),
  "bitcoin-infrastructure-esplora": e("bitcoin/infrastructure/esplora/overview.md", "https://github.com/Blockstream/esplora"),
  "bitcoin-infrastructure-mempool-space": e("bitcoin/infrastructure/mempool-space/overview.md", "https://mempool.space/docs/api"),
  "bitcoin-infrastructure-btcpay": e("bitcoin/infrastructure/btcpay/overview.md", "https://btcpayserver.org/"),
  "bitcoin-infrastructure-specter-desktop": e("bitcoin/infrastructure/specter-desktop/overview.md", "https://specter.solutions/"),
  "bitcoin-infrastructure-sparrow": e("bitcoin/infrastructure/sparrow/overview.md", "https://sparrowwallet.com/"),
  "bitcoin-infrastructure-electrum-wallet": e("bitcoin/infrastructure/electrum-wallet/overview.md", "https://electrum.org/"),
  "bitcoin-infrastructure-bluewallet": e("bitcoin/infrastructure/bluewallet/overview.md", "https://bluewallet.io/"),
  "bitcoin-infrastructure-caravan": e("bitcoin/infrastructure/caravan/overview.md", "https://unchained-capital.github.io/caravan/"),
  "bitcoin-infrastructure-node-distros": e("bitcoin/infrastructure/node-distros/overview.md", "https://umbrel.com/"),
  // testing
  "bitcoin-testing-regtest": e("bitcoin/testing/regtest/overview.md", "https://developer.bitcoin.org/examples/testing.html"),
  "bitcoin-testing-signet": e("bitcoin/testing/signet/overview.md", "https://en.bitcoin.it/wiki/Signet"),
  "bitcoin-testing-polar": e("bitcoin/testing/polar/overview.md", "https://lightningpolar.com/"),
  "bitcoin-testing-nigiri": e("bitcoin/testing/nigiri/overview.md", "https://github.com/vulpemventures/nigiri"),
  "bitcoin-testing-core-test-framework": e("bitcoin/testing/core-test-framework/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/test/README.md"),
  "bitcoin-testing-fuzz": e("bitcoin/testing/fuzz/overview.md", "https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md"),
  "bitcoin-testing-property-based": e("bitcoin/testing/property-based/overview.md", "https://github.com/proptest-rs/proptest"),
  // libraries
  "bitcoin-libraries-rust-bitcoin": e("bitcoin/libraries/rust-bitcoin/overview.md", "https://github.com/rust-bitcoin/rust-bitcoin"),
  "bitcoin-libraries-bdk": e("bitcoin/libraries/bdk/overview.md", "https://bitcoindevkit.org/"),
  "bitcoin-libraries-ldk": e("bitcoin/libraries/ldk/overview.md", "https://lightningdevkit.org/"),
  "bitcoin-libraries-miniscript-rs": e("bitcoin/libraries/miniscript-rs/overview.md", "https://github.com/rust-bitcoin/rust-miniscript"),
  "bitcoin-libraries-secp256k1-rs": e("bitcoin/libraries/secp256k1-rs/overview.md", "https://github.com/rust-bitcoin/rust-secp256k1"),
  "bitcoin-libraries-rust-dlc": e("bitcoin/libraries/rust-dlc/overview.md", "https://github.com/p2pderivatives/rust-dlc"),
  "bitcoin-libraries-bitcoinjs-lib": e("bitcoin/libraries/bitcoinjs-lib/overview.md", "https://github.com/bitcoinjs/bitcoinjs-lib"),
  "bitcoin-libraries-scure-btc-signer": e("bitcoin/libraries/scure-btc-signer/overview.md", "https://github.com/paulmillr/scure-btc-signer"),
  "bitcoin-libraries-mempool-js": e("bitcoin/libraries/mempool-js/overview.md", "https://github.com/mempool/mempool.js"),
  "bitcoin-libraries-bcoin-js": e("bitcoin/libraries/bcoin-js/overview.md", "https://github.com/bcoin-org/bcoin"),
  "bitcoin-libraries-bolt11": e("bitcoin/libraries/bolt11-decoder/overview.md", "https://github.com/bitcoinjs/bolt11"),
  "bitcoin-libraries-python-bitcoinlib": e("bitcoin/libraries/python-bitcoinlib/overview.md", "https://github.com/petertodd/python-bitcoinlib"),
  "bitcoin-libraries-embit": e("bitcoin/libraries/embit/overview.md", "https://github.com/diybitcoinhardware/embit"),
  "bitcoin-libraries-bitcoinlib-py": e("bitcoin/libraries/bitcoinlib-py/overview.md", "https://github.com/1200wd/bitcoinlib"),
  "bitcoin-libraries-hdwallet-py": e("bitcoin/libraries/hdwallet-py/overview.md", "https://github.com/meherett/python-hdwallet"),
  "bitcoin-libraries-bdk-python": e("bitcoin/libraries/bdk-python/overview.md", "https://github.com/bitcoindevkit/bdk-python"),
  "bitcoin-libraries-btcd": e("bitcoin/libraries/btcd/overview.md", "https://github.com/btcsuite/btcd"),
  "bitcoin-libraries-btcsuite": e("bitcoin/libraries/btcsuite/overview.md", "https://github.com/btcsuite"),
  "bitcoin-libraries-lnd-go": e("bitcoin/libraries/lnd-go/overview.md", "https://github.com/lightningnetwork/lnd"),
  "bitcoin-libraries-tapd-go": e("bitcoin/libraries/tapd-go/overview.md", "https://github.com/lightninglabs/taproot-assets"),
  "bitcoin-libraries-bitcoinj": e("bitcoin/libraries/bitcoinj/overview.md", "https://bitcoinj.org/"),
  "bitcoin-libraries-bdk-jvm": e("bitcoin/libraries/bdk-jvm/overview.md", "https://github.com/bitcoindevkit/bdk-jvm"),
  "bitcoin-libraries-nbitcoin": e("bitcoin/libraries/nbitcoin/overview.md", "https://github.com/MetacoSA/NBitcoin"),
  "bitcoin-libraries-secp256k1-c": e("bitcoin/libraries/secp256k1-c/overview.md", "https://github.com/bitcoin-core/secp256k1"),
  "bitcoin-libraries-libwally": e("bitcoin/libraries/libwally/overview.md", "https://github.com/ElementsProject/libwally-core"),
  "bitcoin-libraries-libbitcoin": e("bitcoin/libraries/libbitcoin/overview.md", "https://libbitcoin.info/"),
};
