Skip to main content

Chia Protocol

The Chia protocol is composed of a few different sub-protocols. All protocol messages are sent encoded in Streamable format, using the networking protocol defined in the Networking page. The following documents go into depth into the messages sent by each type of service/node, and how they should be interpreted.

The protocol is asynchronous and bidirectional, that is, each end of the connection can send messages, and receive a response, multiple responses, or no response for each message.

  1. Harvester protocol (harvester <-> farmer)
  2. Farmer protocol (farmer <-> full node)
  3. Timelord protocol (timelord <-> full node)
  4. Peer protocol (full node <-> full node)
  5. Pool protocol (pool <-> farmer)
  6. Wallet protocol (wallet/light client <-> full node)
  7. Introducer protocol (introducer <-> full node)

In addition to the sub-protocols that are specific to services, a few protocols are shared across all or most services.

  1. Shared networking protocol
  2. Timing protocol
  3. Message types protocol
  4. State machine protocol