# nsfida/triple-m architecture

> Architecture diagram of the GitHub repository nsfida/triple-m, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nsfida/triple-m
- Repository: https://github.com/nsfida/triple-m

## Overview

The README presents Triplem VIP as a browser-based finance and operations workspace, but the supplied tree does not expose its main application source. It does expose a substantial, separate NCoin implementation; its CLI drives wallet, chain, mining, and peer networking behavior. The graph preserves README-documented Triplem capabilities without asserting unsampled implementation links. NCoin relationships are based on the supplied source excerpts or SOURCE INDEX references.

Main entry points: [`NCoin/ncoin/chain.py`](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/chain.py) (Chain state), [`NCoin/ncoin/transaction.py`](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/transaction.py) (Transactions), [`NCoin/ncoin/mempool.py`](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/mempool.py) (Mempool), [`NCoin/ncoin/cli.py`](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/cli.py) (Node CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_triplem["Triplem VIP"]
  node_finance_workspace["Finance workspace"]
  node_dashboard["Dashboard"]
  node_finance_records["Finance records"]
  node_business_ops["Business operations"]
  node_reports_exports["Reports and exports"]
  node_access_security["Access and security"]
  node_messages_support["Messages and support"]
  node_subscriptions_admin["Subscriptions and admin"]
  node_pwa_offline["PWA and offline<br/>[service-worker.js]"]
end

subgraph group_ncoin_runtime["NCoin runtime"]
  node_cli["Node CLI<br/>[cli.py]"]
  node_wallet["Wallet<br/>[wallet.py]"]
  node_miner["Block miner<br/>[miner.py]"]
  node_peer_network["Peer networking<br/>[p2p.py]"]
end

subgraph group_ncoin_core["NCoin core"]
  node_chain[("Chain state<br/>[chain.py]")]
  node_mempool["Mempool<br/>[mempool.py]"]
  node_block["Blocks<br/>[block.py]"]
  node_transaction["Transactions<br/>[transaction.py]"]
  node_utxo["UTXO validation<br/>[utxo.py]"]
  node_consensus["Consensus rules<br/>[consensus.py]"]
  node_crypto["Cryptography<br/>[crypto.py]"]
  node_serialization["Serialization<br/>[serialization.py]"]
end

node_user(("User"))

node_user -->|"uses"| node_finance_workspace
node_finance_workspace -->|"includes"| node_dashboard
node_finance_workspace -->|"includes"| node_finance_records
node_finance_workspace -->|"includes"| node_business_ops
node_finance_workspace -->|"includes"| node_reports_exports
node_finance_workspace -->|"includes"| node_access_security
node_finance_workspace -->|"includes"| node_messages_support
node_finance_workspace -->|"includes"| node_subscriptions_admin
node_finance_workspace -.->|"supports"| node_pwa_offline
node_cli -->|"uses"| node_wallet
node_cli -->|"loads and updates"| node_chain
node_cli -->|"requests mining"| node_miner
node_cli -->|"manages transactions"| node_mempool
node_cli -->|"starts node"| node_peer_network
node_wallet -->|"reads UTXOs"| node_chain
node_wallet -->|"builds and signs"| node_transaction
node_miner -->|"mines on"| node_chain
node_miner -->|"selects transactions"| node_mempool
node_peer_network -->|"reads and adds blocks"| node_chain
node_peer_network -->|"admits transactions"| node_mempool
node_chain -->|"validates blocks"| node_block
node_chain -->|"checks consensus"| node_consensus
node_chain -->|"validates transactions"| node_transaction
node_chain -->|"updates UTXO set"| node_utxo
node_mempool -->|"checks chain state"| node_chain
node_mempool -->|"stores transactions"| node_transaction
node_mempool -->|"validates spends"| node_utxo
node_block -->|"contains"| node_transaction
node_block -->|"hashes headers"| node_crypto
node_block -->|"encodes data"| node_serialization
node_transaction -->|"signs and hashes"| node_crypto
node_transaction -->|"encodes data"| node_serialization
node_utxo -->|"validates inputs"| node_transaction
node_utxo -->|"verifies signatures"| node_crypto

click node_pwa_offline "https://github.com/nsfida/triple-m/blob/main/service-worker.js"
click node_cli "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/cli.py"
click node_wallet "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/wallet.py"
click node_miner "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/miner.py"
click node_peer_network "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/p2p.py"
click node_chain "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/chain.py"
click node_mempool "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/mempool.py"
click node_block "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/block.py"
click node_transaction "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/transaction.py"
click node_utxo "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/utxo.py"
click node_consensus "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/consensus.py"
click node_crypto "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/crypto.py"
click node_serialization "https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/serialization.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_finance_workspace,node_dashboard,node_finance_records,node_business_ops,node_reports_exports,node_access_security,node_messages_support,node_subscriptions_admin,node_pwa_offline,node_user toneBlue
class node_cli,node_wallet,node_miner,node_peer_network toneAmber
class node_chain,node_mempool,node_block,node_transaction,node_utxo,node_consensus,node_crypto,node_serialization toneMint
```

## Components

### Triplem VIP

- **Finance workspace**
- **Dashboard**
- **Finance records**
- **Business operations**
- **Reports and exports**
- **Access and security**
- **Messages and support**
- **Subscriptions and admin**
- [PWA and offline](https://github.com/nsfida/triple-m/blob/main/service-worker.js): `service-worker.js`

### NCoin runtime

- [Node CLI](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/cli.py): `NCoin/ncoin/cli.py`
- [Wallet](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/wallet.py): `NCoin/ncoin/wallet.py`
- [Block miner](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/miner.py): `NCoin/ncoin/miner.py`
- [Peer networking](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/p2p.py): `NCoin/ncoin/p2p.py`

### NCoin core

- [Chain state](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/chain.py): `NCoin/ncoin/chain.py`
- [Mempool](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/mempool.py): `NCoin/ncoin/mempool.py`
- [Blocks](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/block.py): `NCoin/ncoin/block.py`
- [Transactions](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/transaction.py): `NCoin/ncoin/transaction.py`
- [UTXO validation](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/utxo.py): `NCoin/ncoin/utxo.py`
- [Consensus rules](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/consensus.py): `NCoin/ncoin/consensus.py`
- [Cryptography](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/crypto.py): `NCoin/ncoin/crypto.py`
- [Serialization](https://github.com/nsfida/triple-m/blob/main/NCoin/ncoin/serialization.py): `NCoin/ncoin/serialization.py`

### Other components

- **User**

## Connections

- User → Finance workspace: uses
- Finance workspace → Dashboard: includes
- Finance workspace → Finance records: includes
- Finance workspace → Business operations: includes
- Finance workspace → Reports and exports: includes
- Finance workspace → Access and security: includes
- Finance workspace → Messages and support: includes
- Finance workspace → Subscriptions and admin: includes
- Finance workspace → PWA and offline: supports
- Node CLI → Wallet: uses (evidence: `NCoin/ncoin/cli.py`)
- Node CLI → Chain state: loads and updates (evidence: `NCoin/ncoin/cli.py`)
- Node CLI → Block miner: requests mining (evidence: `NCoin/ncoin/cli.py`)
- Node CLI → Mempool: manages transactions (evidence: `NCoin/ncoin/cli.py`)
- Node CLI → Peer networking: starts node (evidence: `NCoin/ncoin/cli.py`)
- Wallet → Chain state: reads UTXOs (evidence: `NCoin/ncoin/wallet.py`)
- Wallet → Transactions: builds and signs (evidence: `NCoin/ncoin/wallet.py`)
- Block miner → Chain state: mines on (evidence: `NCoin/ncoin/miner.py`)
- Block miner → Mempool: selects transactions (evidence: `NCoin/ncoin/miner.py`)
- Peer networking → Chain state: reads and adds blocks (evidence: `NCoin/ncoin/p2p.py`)
- Peer networking → Mempool: admits transactions (evidence: `NCoin/ncoin/p2p.py`)
- Chain state → Blocks: validates blocks (evidence: `NCoin/ncoin/chain.py`)
- Chain state → Consensus rules: checks consensus (evidence: `NCoin/ncoin/chain.py`)
- Chain state → Transactions: validates transactions (evidence: `NCoin/ncoin/chain.py`)
- Chain state → UTXO validation: updates UTXO set (evidence: `NCoin/ncoin/chain.py`)
- Mempool → Chain state: checks chain state (evidence: `NCoin/ncoin/mempool.py`)
- Mempool → Transactions: stores transactions (evidence: `NCoin/ncoin/mempool.py`)
- Mempool → UTXO validation: validates spends (evidence: `NCoin/ncoin/mempool.py`)
- Blocks → Transactions: contains (evidence: `NCoin/ncoin/block.py`)
- Blocks → Cryptography: hashes headers (evidence: `NCoin/ncoin/block.py`)
- Blocks → Serialization: encodes data (evidence: `NCoin/ncoin/block.py`)
- Transactions → Cryptography: signs and hashes (evidence: `NCoin/ncoin/transaction.py`)
- Transactions → Serialization: encodes data (evidence: `NCoin/ncoin/transaction.py`)
- UTXO validation → Transactions: validates inputs (evidence: `NCoin/ncoin/utxo.py`)
- UTXO validation → Cryptography: verifies signatures (evidence: `NCoin/ncoin/utxo.py`)
