ABCI stands for "Application Blockchain Interface". ABCI is the interface between Tendermint (a state-machine replication engine) and your application (the actual state machine). It consists of a set of methods, each with a corresponding Request and Responsemessage type. To perform state-machine replication, Tendermint calls the ABCI methods on the ABCI application by sending the Request* messages and receiving the Response* messages in return.

All ABCI messages and methods are defined in protocol buffers. This allows Tendermint to run with applications written in many programming languages.

This specification is split as follows:

  • Methods and Types - complete details on all ABCI methods and message types
  • Applications - how to manage ABCI application state and other details about building ABCI applications
  • Client and Server - for those looking to implement their own ABCI application servers