Codebase tour — where things live

INTcoin is structured in modular layers. If you’re new to the codebase,
start here. Most layers correspond directly to a src/<name>/ directory.

Layer 0 (foundations)  crypto       primitives    util
Layer 1                script       policy
Layer 2                consensus    pow           storage
Layer 3                mempool      blockfilter   index    sync
Layer 4                net          node          mining   pst
Layer 5                wallet       rpc           explorer
Layer 6                qt           institutional metrics  zmq

Lower layers never import higher ones — that’s the contract.

Where to look first

I want to Look at
Add or change a consensus rule src/consensus/ (validation.cpp, pow rules in src/pow/)
Touch the P2P transport src/net/ (V2 transport in transport_v2.*, message dispatch in net_processing.cpp)
Hack on the wallet src/wallet/ (wallet.cpp, walletmanager.cpp, HD derivation in hd.cpp)
Add an RPC method src/rpc/<area>.cpp then register in the same file
Fix mining or block templates src/mining/ (block_assembler.cpp, coinbase.cpp) and src/intcoin-miner.cpp
Touch the GUI src/qt/ (pages in pages/, dialogs in dialogs/)
Cryptographic primitives src/crypto/ (Dilithium / Kyber wrappers around liboqs, SHA3)

Build expectations

  • CMake out-of-source: cmake -B build && cmake --build build -j$(nproc)
  • Dependencies via depends/ (liboqs, RandomX, LevelDB, Boost, Qt6, OpenSSL)
  • Tests: ./build/bin/test_intcoin --run_test=<suite>

Full build instructions in BUILDING.md.

Read these before sending a PR

  1. docs/dev/ARCHITECTURE.md — layer responsibilities
  2. docs/dev/CODE_STYLE.md — naming, formatting, file layout
  3. docs/dev/TESTING.md — how to add tests with the right fixtures

Open questions about a specific layer? Post in
Core Development and tag the relevant area.