---
# System prepended metadata

title: Tendermint Docs

---

# Tendermint Docs
- Link:: https://docs.tendermint.com/master/
- # Introduction
    - ## What is Tendermint?
        - Software for securely running applications on many machines
        - Consists of two technical components
            - A blockchain
            - A generic application interface
        - It is a mi between blockchain and distributed key-value stores, like etcd, consul
        - ABCI
            - Application Blockchain Interface
            - So far, blockchains handle all of the following:
                - p2p peer connectivity
                - ledger
                - mempool
                - consensus on the most recent block
                - smart contracts
                - user permissions
            - ABCI makes it easy to separate the blockchain stack from the application stack
            - Tendermint Socket Protocol (Teaspoon) is ABCI for tendermint
            - ABCI consists of three message types
                - DeliverTx
                    - The application checks every transaction received with the DeliverTx message against the current state
                - CheckTx.
                    - Only validates a transaction
                - Commit
                    - merkle tree root hash of the current application state to be placed in the next block header
                - ![](https://docs.tendermint.com/master/assets/img/abci.3542de28.png)
            - Determinism
                - Programming languages for the ABCI need to be deterministic and use deterministic techniques. GO, C, C++, Java can achieve this.
            - Consensus
                - ![](https://docs.tendermint.com/master/assets/img/consensus_logic.e9f4ca6f.png)
            - Stake
- # Guides
    - ## Creating a built-in application in Go
- # Getting started
