Concepts
The domain model: holdings, accounts, vaults, groups, tokens, transactions, observations, the price graph, and the rollup. Every page ends with a why it’s modelled this way note. See Mental model.
These docs are written for three audiences at once — operators self-hosting the stack, contributors reading the code, and agents ingesting Scani as context. Same content, organised so each can skim it.
Concepts
The domain model: holdings, accounts, vaults, groups, tokens, transactions, observations, the price graph, and the rollup. Every page ends with a why it’s modelled this way note. See Mental model.
Design decisions
Why the ledger is append-only. Why there’s no USD canonicalisation. Why transfer linking runs nightly. The cross-cutting choices that explain the shape of the code. See Design decisions.
Self-hosting
Three tiers from one binary. Compose for a one-box deploy, managed Postgres / Redis / S3 when you outgrow it, backup & restore, upgrades, observability, troubleshooting. See Tier model.
Reference
A full financial glossary — Scani-specific terms plus general finance. Database schema, tRPC routes, jobs, provider matrix, env-var index, and an LLM-friendly index.
MIT licensed. The OSS distribution sends no telemetry, ever — no install ID, no anonymous usage counter, no version-check beacon. The only outbound calls a self-hosted stack makes are the ones you explicitly configure.