Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions MEMORY_GRAPH_SEED.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ canonical state is the merged `main` of `citrate-docs` at `e2fc387`.
- The learning cycle has **four** phases (Observe/Orient/Decide/Act), described without combat metaphor.
- Storage state root is **SHA3-256 over flat KV**, not a Merkle-Patricia trie.
- BFT checkpoints: interval 50, committee 100, quorum 67 of 100 (`checkpoint.rs`); GhostDAG k=18, finality
depth 100; chain id 40204 / `eth_chainId` 0x9d0c; SALT 1T (one trillion) / 18 decimals; reward halving every 2,100,000
blocks.
depth 100; chain id 40204 / `eth_chainId` 0x9d0c; launch tokenomics TBD before launch; see https://docs.citrate.ai/chain/economics.
- `IPFSIncentives` **v1** is deployed (V2/V3 never deployed); x402 precompiles are `0x0200-0x0209`.
- `LoRAFactory` provenance does **not** link to learning rounds.
- Python SDK CLI is broken (no `cli.py`); JS SDK (`citrate-js` v0.2.0) is canonical.
Expand Down
3 changes: 3 additions & 0 deletions REGISTRY/SURFACE_REGISTRY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ status: active
sprint: DOCS-CODEX-S1
---

> **Current launch status (2026-11-04): tokenomics TBD before launch.** Historical engineering parameters below are not finalized launch terms. More announcements coming soon: https://docs.citrate.ai/chain/economics. Feedback: support@citrate.ai.


# Codex Surface Registry — the single source of truth

> The master checklist of **every surface in the federation** to be documented, with its access **tier**,
Expand Down
2 changes: 2 additions & 0 deletions STYLE_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,5 @@ Tutorials keep a numbered-step structure and link the relevant sandbox.
`npm run content-lint` fails the build on: any em-dash, any forbidden word, any banned vocabulary term. It
runs in CI next to `verify:bundle`. A page is not done until it is lint-clean, carries a status label and a
source SHA, and does not repeat its title.

Pre-launch status exception (owner direction, 2026-11-04): the phrases “launch tokenomics,” “current proposed tokenomics,” “current tokenomics status,” and “Tokenomics: to be determined before launch” are permitted for the current status notice. Promotional uses remain subject to the vocabulary gate.
2 changes: 1 addition & 1 deletion app/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
.filter((d) => d.tier === "public")
.map((d) => ({
url: `${SITE_URL}${d.slug}`,
lastModified,
lastModified: ["/chain/economics", "/contracts/economics", "/operators/rewards", "/start/primer", "/chain/genesis", "/research/gradient-papers"].includes(d.slug) ? new Date("2026-11-04") : lastModified,
changeFrequency: "monthly" as const,
priority: 0.7,
}));
Expand Down
4 changes: 2 additions & 2 deletions content/_generated/content.ts

Large diffs are not rendered by default.

113 changes: 10 additions & 103 deletions content/chain/economics.md
Original file line number Diff line number Diff line change
@@ -1,122 +1,29 @@
---
title: Network economics
title: Network economics: launch terms pending
codex_slug: /chain/economics
tier: public
org_scope: ~
source_kind: authored
source: citrate-chain/core/economics/
surfaces: [CHAIN-econ]
audited_against_sha: e68af83
status: Implemented
status: Pre-launch; terms to be determined
created: 2026-06-17T00:00:00Z
author: Citrate team
---

This is the unit of account on the Citrate Network and the rules that move it. SALT settles the work the
network performs, fees, block rewards, and staking; it is not a product to hold, and this page does not
treat it as one. It is for builders and operators who need to reason about what the network charges, what
it pays, and how supply behaves over the long view.
## Tokenomics: to be determined before launch

## What it is
Citrate’s launch tokenomics have not been finalized. Supply, distribution, allocations, vesting, issuance, staking requirements, rewards, fees, and any token-related eligibility or benefits remain to be determined before launch. No final terms or launch date are announced on this page.

SALT is the credit the network counts in. When a transaction pays a fee, when a node earns a reward for
sealing a block, or when stake is placed and returned, the amount is denominated in SALT. The supply is
fixed at genesis: one trillion SALT, never more. The smallest unit is wei-style, so one SALT divides into
10^18 base units, the same granularity a developer already expects from an account balance.
**More announcements coming soon.** We intend to publish the finalized framework and applicable terms here before launch. Please check this page and [Citrate’s official announcements](https://x.com/citratenetwork) for updates.

The economics live in one crate, `core/economics/`. It holds the token itself (`token.rs`), the per-block
reward schedule (`enhanced_rewards.rs`), and the constants that bound the whole system (`lib.rs`). The
reward schedule is the part worth understanding early, because it is what gives a node a reason to keep the
network running, and it shrinks on a fixed cadence so that early seasons are more generous than late ones.
### About earlier materials

A block reward is built from a base reward plus four bonus pools, each expressed as a percentage of that
base reward. The four pools recognise four kinds of contribution: validator performance, AI contribution,
network health, and long-term staking. A node that does more of the work the network values earns a larger
share of the pools. The base reward halves every 2,100,000 blocks, about 24 days at the one-second
testnet cadence, so issuance tapers toward zero over the network's life rather than running flat forever.
Earlier materials published during ideation may describe proposals, estimates, examples, or testnet configurations. They should not be treated as finalized launch terms or relied on as a statement of the current proposed tokenomics. This notice supersedes earlier exploratory descriptions for that purpose. Technical implementations and testnet parameters may change and do not establish launch allocations, entitlements, rewards, or token value.

## How to use it
This update does not amend any signed agreement, withdraw any legally binding commitment, or limit anyone’s rights under applicable law. It is not an offer to sell or a solicitation to purchase a token, and it does not promise a token distribution, financial return, or future value.

You rarely set these values yourself; you read them, so you can price work and project earnings.
### Questions and feedback

1. **Price a transaction.** Estimate the fee the way you would on any account-based ledger: gas used times
the prevailing price. SALT carries 18 decimals, so amounts and balances behave like the smallest units
you are used to.
2. **Read the live economic state.** Call `citrate_getEconomicState` for current network metrics and
`citrate_getToken` for token fundamentals over JSON-RPC. Both are documented in the
[chain RPC reference](/chain/rpc).
3. **Reason about rewards.** If you operate a node, the reward you can expect for a sealed block is the base
reward plus your earned share of the four bonus pools, adjusted for where the chain sits in its halving
schedule. See [run a node](/operators/run-a-node) for the operator path.

## Reference

Token constants, verified in `core/economics/src/lib.rs` and `core/economics/src/token.rs`:

| Constant | Value | Source |
|---|---|---|
| Symbol (`TOKEN_SYMBOL`) | `SALT` | `lib.rs` |
| Name (`TOKEN_NAME`) | `Citrate` | `lib.rs` |
| Total supply (`TOTAL_SUPPLY`) | 1,000,000,000,000 (one trillion) | `lib.rs` |
| Decimals (`DECIMALS`) | 18 | `token.rs` |

Total supply in base units is `1_000_000_000_000 × 10^18`. The token tracks balances, total minted, and total
burned; circulating supply is minted minus burned, and minting is capped at the one trillion ceiling.

Block reward schedule, verified in `core/economics/src/enhanced_rewards.rs`:

| Element | Value | Source |
|---|---|---|
| Base reward | a configurable base reward | `enhanced_rewards.rs` (`base_block_reward`) |
| Validator performance pool | percentage of the base reward | `enhanced_rewards.rs` (`performance_bonus_pool`) |
| AI contribution pool | percentage of the base reward | `enhanced_rewards.rs` (`ai_contribution_pool`) |
| Network health pool | percentage of the base reward | `enhanced_rewards.rs` (`network_health_pool`) |
| Long-term staking pool | percentage of the base reward | `enhanced_rewards.rs` (`staking_bonus_pool`) |
| Halving interval | 2,100,000 blocks (~24 days at the 1 s testnet cadence) | `enhanced_rewards.rs` (`halving_interval`) |

The base reward and the four pool percentages are defaults in the source; we describe the base as a
configurable base reward rather than asserting a fixed number, since governance can move it. What does not
move is the halving cadence and the fixed supply.

```rust
use citrate_economics::*;

// Token fundamentals are constants:
assert_eq!(TOKEN_SYMBOL, "SALT");
assert_eq!(TOTAL_SUPPLY, 1_000_000_000_000); // 18 decimals; base units = value × 10^18
```

## Design rationale

A fixed supply with a halving base reward keeps the accounting honest: the network can settle the work it
performs without an open-ended issuance that quietly dilutes everyone who came before. Splitting the reward
into four pools, rather than paying a flat amount per block, lets the network pay for the behaviours it
actually depends on, uptime, useful compute, a healthy peer set, and committed stake, instead of paying
the same for a block whether or not the node contributed anything beyond sealing it. The trade is more
moving parts to reason about; the benefit is that incentives point at the work rather than at the clock.

## Failure modes

The supply cap is enforced at mint: an attempt to mint past one trillion SALT is rejected, so no path
through the reward schedule can inflate beyond the ceiling. Burned credits are tracked separately, so
circulating supply stays an honest minted-minus-burned figure rather than drifting. Because the base reward
and pool percentages are governance-configurable, the load-bearing invariant is the supply cap and the
halving cadence, not any single reward number; treat a published base-reward figure as a default, not a
guarantee.

## Access and canon

Public. SALT settles the work the network performs; it is not an investment instrument, and Almanac does not
describe it as one. The token fundamentals, the reward structure, and the halving cadence are exactly what a
builder or operator needs to reason about the economy. No keys, balances, or private allocations appear
here.

## Source and verification

- Source: `citrate-chain/core/economics/`, constants in `src/lib.rs` and `src/token.rs`, reward schedule in
`src/enhanced_rewards.rs`.
- Live state over JSON-RPC: `citrate_getEconomicState` and `citrate_getToken`
(`core/api/src/economics_rpc.rs`); see [chain RPC](/chain/rpc).
- Audited against SHA: `9d5959e`.
- Status: Implemented (testnet), internally tested, pre external audit. The base reward and pool
percentages are configurable defaults in source, not certified values.
We welcome comments on the proposed network economics. Email [support@citrate.ai](mailto:support@citrate.ai?subject=Tokenomics%20feedback).
3 changes: 1 addition & 2 deletions content/chain/genesis.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,7 @@ Genesis block, built deterministically from the shared genesis path
| Base fee per gas | 1 Gwei (1e9 wei) | `core/economics/src/genesis.rs` (`base_fee_per_gas`) |
| Gas limit | 30,000,000 | `core/economics/src/genesis.rs` (`gas_limit`) |

The genesis allocation categories sum to the one trillion SALT supply cap; the allocation structure is
covered under [network economics](/chain/economics). No private keys or mnemonics appear in any
Genesis allocations and launch supply remain [to be determined before launch](/chain/economics). No private keys or mnemonics appear in any
configuration in the repository, and we do not enumerate specific genesis account addresses in public docs.

## Design rationale
Expand Down
4 changes: 2 additions & 2 deletions content/chain/tutorials/call-citrate-rpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@ rpc citrate_getToken | jq
# { "name": "Citrate", "symbol": "SALT", "decimals": 18, "totalSupply": "0x...", "totalMinted": "0x..." }
```

SALT has 18 decimals and a one-trillion cap. It is the unit fees and rewards are counted in, not a product. For
the live economic snapshot, blocks height, gas price, staked amount, and treasury, call
Launch tokenomics remain [to be determined](/chain/economics). Testnet RPC responses are experimental configuration data, not launch terms. For
the live testnet snapshot, blocks height, gas price, staked amount, and treasury, call
`citrate_getEconomicState`:

```bash
Expand Down
3 changes: 3 additions & 0 deletions content/compute/node-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ created: 2026-06-17T00:00:00Z
author: Citrate team
---

> **Pre-launch technical reference.** Any token amounts, fees, collateral, rewards, or economic behavior below describe experimental testnet software, not finalized launch terms or promised benefits. [Launch tokenomics remain to be determined](/chain/economics).


Citrate Node is the daemon an operator runs to sell compute on Citrate Market from their own hardware.
It reads a small settings file, watches the market over JSON-RPC, decides which jobs to bid on, proves
liveness with a heartbeat, and drives a won job to payout. It holds no keys: every write it wants made is
Expand Down
3 changes: 3 additions & 0 deletions content/contracts/compute.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ created: 2026-06-17T00:00:00Z
author: Citrate team
---

> **Pre-launch technical reference.** Any token amounts, fees, collateral, rewards, or economic behavior below describe experimental testnet software, not finalized launch terms or promised benefits. [Launch tokenomics remain to be determined](/chain/economics).


These are the contracts that let a machine operator sell compute on Citrate Market and let a buyer pay
for verified work. Six contracts form one settlement loop: a buyer posts a job, an operator runs it,
the result is verified by tier, and payment settles on the public ledger. This page is for operators,
Expand Down
Loading
Loading