a fully functional blockchain protocol in TypeScript from scratch that includes gossipping objects between nodes, signing and verifying transactions and blocks, storing the shared chain following the Longest Chain Rule, handling coinbase transactions, mining new blocks on chain, and storing mempool data. The nodes can be connected to with TCP/IP, and our protocol is an Unspent Transaction Output (UTXO) model, like Bitcoin and Litecoin.