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
docs/dev/ARCHITECTURE.md— layer responsibilitiesdocs/dev/CODE_STYLE.md— naming, formatting, file layoutdocs/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.