Introduction
Fystack is a self-hosted custodial wallet platform built on MPC (Multi-Party Computation). It lets you run secure threshold cryptography on hardware you control — no third-party custody required.
With Fystack you keep full ownership of:
- MPC nodes that handle distributed keygen and signing
- Key material and policies with no external dependencies
- Threshold signature security that scales across on-prem and private cloud setups
Architecture Overview
Fystack runs as a set of Docker containers orchestrated with Docker Compose. Here's how the components fit together:
Components
Apex (Backend Core)
The API backend that handles:
- Wallet and user management
- Key orchestration and policy enforcement
- Audit logging and API keys
- Transaction indexing
MPCIUM (MPC Nodes)
Each node runs part of the threshold signing/keygen logic (based on Binance's tss-lib) and communicates securely with Apex and other peers. The default setup runs 3 nodes with a 2-of-3 threshold.
Multichain Indexer
Indexes the latest blocks from blockchains in real-time, keeping track of on-chain transactions and events relevant to your wallets. Configured via config.indexer.yaml.
Rescanner
Reindexes block gaps to ensure complete blockchain data coverage, filling in any missing blocks or transactions that may have been skipped during initial indexing. Configured via config.rescanner.yaml.
Infrastructure Services
| Service | Purpose | Default Port |
|---|---|---|
| PostgreSQL | Primary database for custody operations | 5433 (host) → 5432 (container) |
| Redis | In-memory data store, bloom filters | 6380 (host) → 6379 (container) |
| MongoDB | Document database for audit logs | 27018 (host) → 27017 (container) |
| NATS | Messaging layer for node communication | 4223 (host) → 4222 (container) |
| Consul | Service discovery, KV store for block state | 8501 (host) → 8500 (container) |
Host ports are intentionally offset by 1 (e.g., 5433 instead of 5432) to avoid conflicts with any existing services on your development machine. Inside the Docker network, services communicate on their standard ports.
What's Next?
- Prerequisites — Make sure your system is ready
- Quick Start — Get Fystack running in minutes
- Verify Installation — Confirm everything works