A primer on the mental models
1 source change since auditFive ideas make the rest of Almanac click. If your intuition comes from a single-chain world, these are the places it needs to bend. Read what Citrate is first if you have not.
What it is
A short tour of the concepts the deeper pages assume. Each one ends with a pointer to where it is treated in full.
Blue score, not height
On a single-parent chain, "block N" is unambiguous. On a BlockDAG, a block can name several parents, so height alone cannot order the ledger.
- Height is roughly how many layers deep a block sits. It is useful, but it is not the ordering key.
- Blue score is the ordering key GhostDAG uses: the cumulative count of a block's blue ancestors, the honest-majority-consistent set picked out by the k-cluster rule (k = 18). The tip with the highest blue score wins.
Blue score is the DAG's clock. When you read citrate_getDagStats, the field that tells you the head is
maxBlueScore, not height. Full detail under Citrate Network.
Confirmation by depth
Confirmation on the testnet is probabilistic: a block gains weight as later blocks build on it, so the
deeper a block sits behind the selected tip, the more work a competing branch would need to displace it.
There is no protocol finality point today. A finality depth of 100 (finality_depth) and a BFT
checkpoint committee are specified in the code, but checkpoint finality is not running. The explorer's depth≥100 flag is a display heuristic, not a
settlement guarantee. See consensus, current status.
Merge parents
A block names one selected parent, the place on the chain it builds on, plus zero or more merge parents, other tips it folds into the order. Merging is how the DAG stays one ledger instead of forking: a block absorbs its sibling tips rather than orphaning them. Selected parent is where you stand; merge parents are the siblings you are folding in. The block's mergeset is then interleaved into the canonical order. See Citrate Network.
Accounts without a seed phrase
Citrate accounts live in Citrate Keyring. An account is a smart contract, and you sign in with a passkey (WebAuthn over P-256) or an existing key, so there is no seed phrase to lose. Transactions are sent as user operations through a bundler, and a sponsor contract can pay the fee, so you can transact with no SALT in hand. Recovery is by guardians, two to seven of a set you choose, and Citrate is never one of your guardians. The account is a contract, the key is a passkey, and someone else can cover the fee. See Citrate Keyring, sponsorship, and guardians.
SALT, the unit you count in
SALT is used in experimental testnet interfaces. Launch tokenomics, including supply and rewards, remain to be determined before launch. Testnet configurations are not launch terms.
How to use it
Put the five together and a transaction's life reads cleanly. You sign a user operation with a passkey, a bundler submits it, the execution layer runs it (often alongside others, in parallel), and it lands in a block that names a selected parent and maybe some merge parents. GhostDAG assigns the block a blue score and places it in the total order. Once the block is 100 deep, it is final. The fee and any reward are denominated in SALT. If you can hold that sentence in your head, the rest of Almanac will read easily.
Reference
| Idea | The key fact | Where it is treated in full |
|---|---|---|
| Blue score | ordering key; maxBlueScore is the head | consensus |
| Finality | probabilistic confirmation; checkpoint finality is specified, not running | consensus, current status |
| Merge parents | one selected parent, many merge parents | consensus |
| Citrate Keyring | smart-contract account, passkey, sponsored fees | Citrate Keyring |
| SALT | Launch terms to be determined | economics |
Access and canon
Public. These are conceptual explainers only, with no secrets, keys, or private endpoints. The proofs behind GhostDAG and finality are academic-tier and live on the linked Citrate Network pages.
Source and verification
The numbers (k = 18, finality depth 100, chain id 40204) are verified against
citrate-chain at 9d5959e: core/consensus/src/types.rs and core/api/src/economics_rpc.rs, surfaced
through the consensus and economics pages. Status: Implemented
(testnet).