ABCI++ is a major evolution of ABCI (Application Blockchain Interface). Like its predecessor, ABCI++ is the interface between CometBFT (a state-machine replication engine) and the actual state machine being replicated (i.e., the Application). The API consists of a set of methods, each with a corresponding Request and Response message type.

The methods are always initiated by CometBFT. The Application implements its logic for handling all ABCI++ methods. Thus, CometBFT always sends the Request* messages and receives the Response* messages in return.

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

This specification is split as follows:

Decorative Orb