Brief

status-go serves as the backbone of Status, handling core backend functionalities that ensure consistency across platforms. Its primary goal is to keep clients lightweight by delegating most processing and state management tasks to status-go, which acts as a single source of truth for all clients. The scope of status-go is very broad.

At its core, status-go implements the Status protocol. This includes features such as waku integration, account generation, secure transport (e.g., end-to-end encryption using extended Diffie-Hellman and double ratchet), as well as chat functionalities like 1:1 chats, group chats, communities, syncing, pairing, and more.

In addition to protocol-related functionalities, status-go supports client-oriented features such as a media server for serving images, an activity center for notifications, and push notifications. It also provides utilities for client consumption, such as public key serialization across different formats.

Furthermore, status-go implements the complete wallet backend. It handles wallet account generation and derivation, provides a router for multi-chain transactions, and integrates with providers such as Infura (currently accessed through a proxy). These are just a few examples of the wallet features managed by status-go.

Another crucial role of status-go is data persistence, managed through various SQLite databases. It securely stores essential data, including accounts, chats, messages, notifications, transactions, and more — effectively handling all non-client-specific data.

Overview

Status protocol implementation

Wallet features