Bitcoin Core  27.99.0
P2P Digital Currency
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 NConsensusTransaction validation functions
 NCuckooCacheHigh-performance cache primitives
 NfsFilesystem operations and types
 NfsbridgeBridge operations to C stdio
 NGUIUtilUtility functions used by the Bitcoin Qt UI
 CAbstractThresholdConditionCheckerAbstract class that implements BIP9-style threshold logic, and caches results
 CActionSerializeSupport for all macros providing or using the ser_action parameter of the SerializationOps method
 CAddressBookPageWidget that shows a list of sending or receiving addresses
 CAddressPositionLocation information for an address in AddrMan
 CAddressTableModelQt model of the address book in the core
 CAddrInfoExtended statistics about a CAddress
 CAddrinfoRequestHandlerProcess addrinfo requests
 CAddrManStochastic address manager
 CAEADChaCha20Poly1305The AEAD_CHACHA20_POLY1305 authenticated encryption algorithm from RFC8439 section 2.8
 CAES256DecryptA decryption class for AES-256
 CAES256EncryptAn encryption class for AES-256
 CAmountSpinBoxQSpinBox that uses fixed-point numbers internally and uses our own formatting/parsing functions
 CAnnotatedMixinTemplate mixin that adds -Wthread-safety locking annotations and lock order checking to a subset of the mutex API
 Carith_uint256256-bit unsigned big integer
 CAskPassphraseDialogMultifunctional dialog to ask for passphrases
 CAssumeutxoDataHolds configuration for use during UTXO snapshot load and validation
 CAutoFileNon-refcounted RAII wrapper for FILE*
 CBanTableModelQt model providing information about banned peers, similar to the "getpeerinfo" RPC call
 CBase(Un)serialize a number as raw byte or 2 hexadecimal chars
 Cbase_blobTemplate base class for fixed-sized opaque blobs
 Cbase_uintTemplate base class for unsigned big integers
 CBaseIndexBase class for indices of blockchain data
 CBaseRequestHandlerClass that handles the conversion from a command-line to a JSON-RPC request, as well as converting back to a JSON object that can be shown as result
 CBaseSignatureCreatorInterface for signature creators
 CBasicTestingSetupBasic testing setup
 Cbilingual_strBilingual messages:
 CBIP324CipherThe BIP324 packet cipher, encapsulating its key derivation, stream cipher, and AEAD
 CBIP9StatsDisplay status of an in-progress BIP9 softfork
 CBitcoinAddressCheckValidatorBitcoin address widget validator, checks for a valid bitcoin address
 CBitcoinAddressEntryValidatorBase58 entry widget validator, checks for valid characters and removes some whitespace
 CBitcoinAmountFieldWidget for entering bitcoin amounts
 CBitcoinApplicationMain Bitcoin application object
 CBitcoinGUIBitcoin GUI main class
 CBitcoinUnitsBitcoin unit definitions
 CbitdequeClass that mimics std::deque<bool>, but with std::vector<bool>'s bit packing
 CBlockFilterComplete block filter struct as defined in BIP 157
 CBlockFilterIndexBlockFilterIndex is used to store and retrieve block filters, hashes, and headers for a range of blocks by height
 CBufferedFileWrapper around an AutoFile& that implements a ring buffer to deserialize from
 CByteVectorHashImplementation of Hash named requirement for types that internally store a byte array
 CCAddressA CService with information about it as peer
 CCBanDBAccess to the banlist database (banlist.json)
 CCBaseChainParamsCBaseChainParams defines the base parameters (shared between bitcoin-cli and bitcoind) of a given instance of the Bitcoin system
 CCBlockHeaderNodes collect new transactions into a block, hash them into a hash tree, and scan through nonce values to make the block's hash satisfy proof-of-work requirements
 CCBlockIndexThe block chain is a tree shaped structure starting with the genesis block at the root, with each block potentially having multiple candidates to be the next block
 CCBlockLocatorDescribes a place in the block chain to another node such that if the other node doesn't have the same branch, it can find a recent common trunk
 CCBlockPolicyEstimatorThe BlockPolicyEstimator is used for estimating the feerate needed for a transaction to be included in a block within a certain number of blocks
 CCBlockUndoUndo information for a CBlock
 CCBloomFilterBloomFilter is a probabilistic filter which SPV clients provide so that we can filter the transactions we send them
 CCChainAn in-memory indexed chain of blocks
 CCChainParamsCChainParams defines various tweakable parameters of a given instance of the Bitcoin system
 CCCheckQueueQueue for verifications that have to be performed
 CCCheckQueueControlRAII-style controller object for a CCheckQueue that guarantees the passed queue is finished before continuing
 CCClientUIInterfaceSignals for UI communication
 CCCoinsCacheEntryA Coin in one level of the coins database caching hierarchy
 CCCoinsViewAbstract view on the open txout dataset
 CCCoinsViewBackedCCoinsView backed by another CCoinsView
 CCCoinsViewCacheCCoinsView that adds a memory cache for transactions to another CCoinsView
 CCCoinsViewCursorCursor for iterating over CoinsView state
 CCCoinsViewDBCCoinsView backed by the coin database (chainstate/)
 CCCoinsViewDBCursorSpecialization of CCoinsViewCursor to iterate over a CCoinsViewDB
 CCCoinsViewErrorCatcherThis is a minimally invasive approach to shutdown on LevelDB read errors from the chainstate, while keeping user interface out of the common library, which is shared between bitcoind, and bitcoin-qt and non-server tools
 CCCoinsViewMemPoolCCoinsView that brings transactions from a mempool into view
 CCDBBatchBatch of changes queued to be written to a CDBWrapper
 CCDiskBlockIndexUsed to marshal pointers into hashes for db storage
 CCFeeRateFee rate in satoshis per kilovirtualbyte: CAmount / kvB
 CChaCha20Unrestricted ChaCha20 cipher
 CChaCha20AlignedChaCha20 cipher that only operates on multiples of 64 bytes
 CChainstateChainstate stores and provides an API to update our local knowledge of the current best chain
 CChainstateManagerProvides an interface for creating and interacting with one or two chainstates: an IBD chainstate generated by downloading blocks, and an optional snapshot chainstate loaded from a UTXO snapshot
 CChainTestingSetupTesting setup that performs all steps up until right before ChainstateManager gets initialized
 CChainTxDataHolds various statistics on transactions within a chain
 CCHash160A hasher class for Bitcoin's 160-bit hash (SHA-256 + RIPEMD-160)
 CCHash256A hasher class for Bitcoin's 256-bit hash (double SHA-256)
 CCheckValueTestTest GetSetting and GetArg type coercion, negation, and default value handling
 CCHKDF_HMAC_SHA256_L32A rfc5869 HKDF implementation with HMAC_SHA256 and fixed key output length of 32 bytes (L=32)
 CCHMAC_SHA256A hasher class for HMAC-SHA-256
 CCHMAC_SHA512A hasher class for HMAC-SHA-512
 CCInvInv message data
 CCKeyAn encapsulated private key
 CCKeyIDA reference to a CKey: the Hash160 of its serialized public key
 CClientModelModel for Bitcoin network client
 CCMainParamsMain network on which people trade goods and services
 CCMerkleBlockUsed to relay blocks as header + vector<merkle branch> to filtered nodes
 CCMessageHeaderMessage header
 CCMutableTransactionA mutable version of CTransaction
 CCNetAddrNetwork address
 CCNetMessageTransport protocol agnostic message container
 CCNodeInformation about a peer
 CCoinA UTXO entry
 CCoinStatsIndexCoinStatsIndex maintains statistics on the UTXO set
 CCoinsViewOptionsUser-controlled performance and debug options
 CCoinsViewsA convenience class for constructing the CCoinsView* hierarchy used to facilitate access to the UTXO set
 CCompactSizeFormatterFormatter for integers in CompactSize format
 CCompareBlocksByHeightComparison function for sorting the getchaintips heads
 CCompareNodeNetworkTimeSort eviction candidates by network/localhost and connection uptime
 CCompareTxMemPoolEntryByAncestorScoreSort an entry by min(score/size of entry's tx, score/size with all ancestors)
 CCompareTxMemPoolEntryByDescendantScoreSort an entry by max(score/size of entry's tx, score/size with all descendants)
 CCompareTxMemPoolEntryByScoreSort by feerate of entry (fee/size) in descending order This is only used for transaction relay, so we use GetFee() instead of GetModifiedFee() to avoid leaking prioritization information via the sort order
 CConnectTraceUsed to track blocks whose transactions were applied to the UTXO state as a part of a single ActivateBestChainStep call
 CCOutPointAn outpoint - a combination of a transaction hash and an index n into its vout
 CCPartialMerkleTreeData structure that represents a partial merkle tree
 CCPubKeyAn encapsulated public key
 CCreateWalletDialogDialog for creating wallets
 CCRegTestParamsRegression test: intended for private networks only
 CCRIPEMD160A hasher class for RIPEMD-160
 CCRollingBloomFilterRollingBloomFilter is a probabilistic "keep track of most recently inserted" set
 CCRPCTableRPC command dispatcher
 CCSchedulerSimple class for background tasks that should be run periodically or once "after a while"
 CCScriptSerialized script, used inside transaction inputs and outputs
 CCScriptCheckClosure representing one script verification Note that this stores references to the spending transaction
 CCScriptIDA reference to a CScript: the Hash160 of its serialization
 CCSemaphoreAn implementation of a semaphore
 CCSemaphoreGrantRAII-style semaphore lock
 CCServiceA combination of a network address (CNetAddr) and a (TCP) port
 CCSHA1A hasher class for SHA1
 CCSHA256A hasher class for SHA-256
 CCSHA512A hasher class for SHA-512
 CCSVModelWriterExport a Qt table model to a CSV file
 CCTestNetParamsTestnet (v3): public test network which is reset from time to time
 CCThreadInterruptA helper class for interruptible sleeps
 CCTransactionThe basic transaction that is broadcasted on the network and contained in blocks
 CCTxInAn input of a transaction
 CCTxMemPoolCTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the next block
 CCTxMemPoolEntryCTxMemPoolEntry stores data about the corresponding transaction, as well as data about all in-mempool transactions that depend on the transaction ("descendant" transactions)
 CCTxOutAn output of a transaction
 CCTxUndoUndo information for a CTransaction
 CCustomUintFormatterSerialization wrapper class for custom integers and enums
 CCValidationInterfaceImplement this to subscribe to events generated in validation and mempool
 CCVerifyDBRAII wrapper for VerifyDB: Verify consistency of the block and coin databases
 CDataStreamDouble ended buffer combining vector and stream-like interfaces
 CDBOptionsUser-controlled performance and debug options
 CDBParamsApplication-specific storage settings
 CDefaultFormatterDefault formatter
 CDefaultRequestHandlerProcess default single requests
 CDescriptorInterface for parsed descriptor objects
 CDescriptorCacheCache for single descriptor's derived extended pubkeys
 Cdeserialize_typeDummy data type to identify deserializing constructors
 CECC_ContextRAII class initializing and deinitializing global state for elliptic curve support
 CEditAddressDialogDialog for editing an address and associated information
 CEllSwiftPubKeyAn ElligatorSwift-encoded public key
 CEnvTestingSetupSave the log level and the value of CreateSock and restore them when the test ends
 CEpochEpoch: RAII-style guard for using epoch-based graph traversal algorithms
 CExternalSignerEnables interaction with an external signing device or service, such as a hardware wallet
 CFastRandomContextFast randomness source
 CFeeFracData structure storing a fee and size, ordered by increasing fee/size
 CFillableSigningProviderFillable signing provider that keeps keys in an address->secret map
 CFlatFileSeqFlatFileSeq represents a sequence of numbered files storing raw data
 CFSChaCha20Forward-secure ChaCha20
 CFSChaCha20Poly1305Forward-secure wrapper around AEADChaCha20Poly1305
 CGCSFilterThis implements a Golomb-coded set as defined in BIP 158
 CGenerateToAddressRequestHandlerProcess RPC generatetoaddress request
 CGenTxidA generic txid reference (txid or wtxid)
 CGetinfoRequestHandlerProcess getinfo requests
 CGFMulHelperHelper class for carryless multiplications
 CGFMulHelper< I, N, L, F, 0 >
 CGlobalMutexDifferent type to mark Mutex at global scope
 CHashedSourceWriterWrites data to an underlying source stream, while hashing the written data
 CHashVerifierReads data from an underlying stream, while hashing the read data
 CHashWriterA writer stream (for serialization) that computes a 256-bit hash
 CHasReasonBOOST_CHECK_EXCEPTION predicates to check the specific validation error
 CHelpMessageDialog"Help message" dialog box
 CHTTPClosureEvent handler closure
 CHTTPEventEvent class
 CHTTPReplyReply structure for request_done to fill in
 CHTTPRequestIn-flight HTTP request
 CHTTPRequestTrackerHelps keep track of open evhttp_connections with active evhttp_requests
 CHTTPRPCTimerSimple one-shot callback timer to be used by the RPC mechanism to e.g
 CHTTPWorkItemHTTP request work item
 CIdTransThe identity transformation
 CInitExecutorClass encapsulating Bitcoin Core startup and shutdown
 CIntroIntroduction screen (pre-GUI startup)
 CJSONUTF8StringFilterFilter that generates and validates UTF-8, as well as collates UTF-16 surrogate pairs as specified in RFC4627
 CLFSRClass which implements a stateless LFSR for generic moduli
 CLinTransA Linear N-bit transformation over the field I
 CLockedPageAllocatorOS-dependent allocation and deallocation of locked/pinned memory pages
 CLockedPoolPool for locked memory chunks
 CLockedPoolManagerSingleton class to keep track of locked (ie, non-swappable) memory, for use in std::allocator templates
 CMacDockIconHandlerMacOS-specific Dock icon handler
 CMacNotificationHandlerMacintosh-specific notification handler (supports UserNotificationCenter)
 CMempoolAcceptResultValidation result for a transaction evaluated by MemPoolAccept (single or package)
 CMockedDescriptorConverterConverts a mocked descriptor string to a valid one
 CModalOverlayModal overlay to display information about the chain-sync state
 CMuHash3072A class representing MuHash sets
 CMultiSigningProviderA signing provider to be used to interface with multiple signing providers at once
 CMutableTransactionSignatureCreatorA signature creator for transactions
 CNetEventsInterfaceInterface for message handling
 CNetGroupManagerNetgroup manager
 CNetinfoRequestHandlerProcess netinfo requests
 CNodeClockMockable clock in the context of tests, otherwise the system clock
 CNoLockLoggingTestingSetupIdentical to TestingSetup but excludes lock contention logging if DEBUG_LOCKCONTENTION is defined, as some of these tests are designed to be heavily contested to trigger race conditions or other issues
 CNotificatorCross-platform desktop notification client
 CNumA type to represent integers in the type system
 COptionsDialogPreferences dialog
 COptionsModelInterface from Qt to configuration data structure for Bitcoin client
 COtherParamCheckerChecker for value of OtherParam
 COverviewPageOverview ("home") page widget
 CPackageMempoolAcceptResultValidation result for package mempool acceptance
 CParamsStreamWrapper that overrides the GetParams() function of a stream
 CParamsWrapperWrapper that serializes objects with the specified parameters
 CParentInfoHelper for PackageV3Checks, storing info for a mempool or package parent
 CPartiallySignedTransactionA version of CTransaction with the PSBT format
 CPeerTableModelQt model providing information about connected peers, similar to the "getpeerinfo" RPC call
 CPoly1305C++ wrapper with std::byte Span interface around poly1305_donna code
 CPoolAllocatorForwards all allocations/deallocations to the PoolResource
 CPoolResourceA memory resource similar to std::pmr::unsynchronized_pool_resource, but optimized for node-based containers
 CPoolResourceTesterHelper to get access to private parts of PoolResource
 CPosixLockedPageAllocatorLockedPageAllocator specialized for OSes that don't try to be special snowflakes
 CprevectorImplements a drop-in replacement for std::vector<T> which stores up to N elements directly (without heap allocation)
 CProxyAddressValidatorProxy address widget validator, checks for a valid proxy address
 CProxyCredentialsCredentials for proxy authentication
 CPSBTInputA structure for PSBTs which contain per-input information
 CPSBTOperationsDialogDialog showing transaction details
 CPSBTOutputA structure for PSBTs which contains per output information
 CPSBTProprietaryA structure for PSBT proprietary types
 CQtRPCTimerBaseClass for handling RPC timers (used for e.g
 CQValidatedLineEditLine edit that can be marked as "invalid" to show input validation feedback
 CReachableNetsList of reachable networks
 CReceiveCoinsDialogDialog for requesting payment of bitcoins
 CRecentRequestsTableModelModel for list of recently generated payment requests / bitcoin: URIs
 CRecLinTransA linear transformation constructed using LinTrans tables for sections of bits
 CRecLinTrans< I, N >
 CRecLinTrans< I, N, X... >
 CRegTestingSetupIdentical to TestingSetup, but chain set to regtest
 CReorgTxnsReorg where 1 block is disconnected and 2 blocks are connected
 Creverse_rangeTemplate used for reverse iteration in range-based for loops
 CRPCConsoleLocal Bitcoin RPC console
 CRPCTimerBaseOpaque base class for timers returned by NewTimerFunc
 CRPCTimerInterfaceRPC timer "driver"
 CSatisfierContext for solving a Miniscript
 CScriptCompressionCompact serializer for scripts
 Csecp256k1_ecdsa_recoverable_signatureOpaque data structured that holds a parsed ECDSA signature, supporting pubkey recovery
 Csecp256k1_ecdsa_signatureOpaque data structured that holds a parsed ECDSA signature
 Csecp256k1_feThis field implementation represents the value as 10 uint32_t limbs in base 2^26
 Csecp256k1_geA group element in affine coordinates on the secp256k1 curve, or occasionally on an isomorphic curve of the form y^2 = x^3 + 7*t^6
 Csecp256k1_gejA group element of the secp256k1 curve, in jacobian coordinates
 Csecp256k1_keypairOpaque data structure that holds a keypair consisting of a secret and a public key
 Csecp256k1_pubkeyOpaque data structure that holds a parsed and valid public key
 Csecp256k1_scalarA scalar modulo the group order of the secp256k1 curve
 Csecp256k1_schnorrsig_extraparamsData structure that contains additional arguments for schnorrsig_sign_custom
 Csecp256k1_xonly_pubkeyOpaque data structure that holds a parsed and valid "x-only" public key
 CSectionA pair of strings that can be aligned (through padding) with other Sections later on
 CSectionsKeeps track of RPCArgs by transforming them into sections for the purpose of serializing everything to a single string
 CSendCoinsDialogDialog for sending bitcoins
 CSendCoinsEntryA single entry in the dialog for sending bitcoins
 CSerialTaskRunnerClass used by CScheduler clients which may schedule multiple jobs which are required to be run serially
 CShutdownWindow"Shutdown" window
 CSignatureCacheHasherWe're hashing a nonce into the entries themselves, so we don't need extra blinding in the set hash computation
 CSigNetParamsSignet: test network with an additional consensus parameter (see BIP325)
 CSignetTxsGenerate the signet tx corresponding to the given block
 CSigningProviderAn interface to be implemented by keystores that support signing
 CSketchAbstract class for internal representation of a minisketch object
 CSockRAII helper class that manages a socket and closes it automatically when it goes out of scope
 CSpanA Span is an object that can refer to a contiguous sequence of objects
 CSpanReaderMinimal stream for reading from an existing byte array by Span
 CSplashScreenClass for the splashscreen with information of the running client
 CStaticContentsSockA mocked Sock alternative that returns a statically contained data upon read and succeeds and ignores all writes
 CTaprootBuilderUtility class to construct Taproot outputs from internal key and script tree
 CTapSatisfierMiniscript satisfier specific to Tapscript context
 CTestChain100SetupTesting fixture that pre-creates a 100-block REGTEST-mode block chain
 CTestingSetupTesting setup that configures a complete environment
 CTestLockedPageAllocatorMock LockedPageAllocator for testing
 CTokenPipeAn interprocess or interthread pipe for sending tokens (one-byte values) over
 CTokenPipeEndOne end of a token pipe
 CTorControlConnectionLow-level handling for Tor control connection
 CTorControllerController that connects to Tor control socket, authenticate, then create and maintain an ephemeral onion service
 CTorControlReplyReply from Tor, can be single or multi-line
 Ctransaction_identifierTransaction_identifier represents the two canonical transaction identifier types (txid, wtxid)
 CTransactionDescProvide a human-readable extended HTML description of a transaction
 CTransactionDescDialogDialog showing transaction details
 CTransactionFilterProxyFilter the transaction list according to pre-specified rules
 CTransactionRecordUI model for a transaction
 CTransactionStatusUI model for transaction status
 CTransactionTableModelUI model for the transaction table of a wallet
 CTransactionViewWidget showing the transaction list for a wallet, including a filter row
 CTransportThe Transport converts one connection's sent messages to wire bytes, and received bytes back
 CTxConfirmStatsWe will instantiate an instance of this class to track transactions that were included in a block
 CTxIndexTxIndex is used to look up transactions included in the blockchain by hash
 CTxInUndoFormatterFormatter for undo information for a CTxIn
 CTxMempoolInfoInformation about a mempool transaction
 CTxOrphanageA class to track orphan transactions (failed on TX_MISSING_INPUTS) Since we cannot distinguish orphans from bad transactions with non-existent inputs, we heavily limit the number of orphans we keep and the duration we keep them for
 CTxOutCompressionWrapper for CTxOut that provides a more compact serialization
 CTxReconciliationTrackerTransaction reconciliation is a way for nodes to efficiently announce transactions
 CTxRequestTrackerData structure to keep track of, and schedule, transaction downloads from peers
 Cuint160160-bit opaque blob
 Cuint256256-bit opaque blob
 CUniqueLockWrapper around std::unique_lock style lock for MutexType
 CUniValueTypeWrapper for UniValue::VType, which includes typeAny: Used to denote don't care type
 CValidationSignalsImplValidationSignalsImpl manages a list of shared_ptr<CValidationInterface> callbacks
 CValidationStateTemplate for capturing information about block/transaction validation
 CVarIntFormatterSerialization wrapper class for integers in VarInt format
 CVectorFormatterFormatter to serialize/deserialize vector elements using another formatter
 CVersionBitsCacheBIP 9 allows multiple softforks to be deployed in parallel
 CWalletControllerController between interfaces::Node, WalletModel instances and the GUI
 CWalletFrameA container for embedding all wallet-related controls into BitcoinGUI
 CWalletModelInterface to Bitcoin wallet from Qt view code
 CWalletModelTransactionData model for a walletmodel transaction
 CWarningBitsConditionCheckerThreshold condition checker that triggers when unknown versionbits are seen on the network
 CWitnessUnknownCTxDestination subtype to encode any future Witness version
 CWorkQueueSimple work queue for distributing work over multiple threads
 CWrapperSimple wrapper class to serialize objects using a formatter; used by Using()
 CWshSatisfierMiniscript satisfier specific to P2WSH context
 CXoRoShiRo128PlusPlusXoroshiro128++ PRNG