This documentation is automatically generated from the Fedimint
source code, and it’s meant for developers, builders and people who want
to understand the Fedimint project on an implementation level.
If you are looking for higher level documentation and help, please
check:
This is a recently added document and subject of continuous change.
Please report problems and submit improvements.
Overview
Fedimint is implemented in Rust and consists of multiple Rust
crates. On a high-level Fedimint architecture consist of:
Server side: fedimintd daemon
typically running on Linux servers, serving a role of a a “peer” in a
Federation by communicating with other “peers” to form a consensus.
Client side: fedimint-client
library, that handles client side state handling and communication with
Fedimint peers. This library can be used to build Fedimint client
applications that can run on desktop computers, mobile devices and in
web browsers (WASM).
More high level documentation is available as a part of fedimint-docs
crate.
Modules
Fedimint architecture is extensible using a modular design. Fedimint
modules can build on top of Fedimint consensus to implement additional
functionality and applications.
In fact core functions of Fedimint are implemented as modules: