Integrity
How anyone can check that the MLX ledger's history was never rewritten, that everyone is shown the same history, and that every wallet's USDC is counted in the network's total.
The ledger is run by one sequencer. It can't prove it executed every transaction correctly, but it can make any rewrite or any split view impossible to hide. Five pieces do that, and each can be checked with public data and a few lines of code.
| Piece | What it is | Page |
|---|---|---|
| Transparency log | An RFC 9162 Merkle tree whose leaf i is block i, the construction Certificate Transparency uses. | Proofs |
| Checkpoint | The log's size and root, signed by the sequencer's Ed25519 key in the C2SP signed-note format. | Checkpoints |
| State commitment | Hourly, a Merkle sum tree over every account's balances whose root also commits to the total USDC the network owes. | State commitments |
| Anchors | Hourly memos on Solana and daily OpenTimestamps receipts on Bitcoin carrying the log root and the state root. | Anchors |
| Witnesses | Macs running MLX Node check each new checkpoint against the last one they saw and cosign it. | Witnesses |
The produce job builds all of it in step with block production: it appends new blocks to the log, signs a checkpoint, commits state at most once an hour, and sends the anchors.
Check it in the browser
explorer.mlx.app/integrity runs these checks for you: it verifies the newest checkpoint's signature, checks a consistency proof from the checkpoint your browser saw last time, checks any wallet's balance against the newest state commitment, and lists anchors and witnesses. The MLX Wallet shows "Verified · block N" beside its network line when the same check passes for the open wallet.
The summary endpoint
https://mlx.app/api/logEverything at a glance: the newest checkpoint and who cosigned it, the newest state commitments, the anchors and the anchor account. No parameters.
{
"chain": "mlx-1",
"sequencer": "92114fe09a90d1a3aced63f35463e4120969d1b323c41070a9ee3ca3cf6ae9a3",
"checkpoint": {
"origin": "mlx.app/ledger/mlx-1",
"size": 398,
"root": "cb97aebd459faf519f4d967d5b6a98fafff2df0f6a681f4bf89d34560b253d7e",
"body": "mlx.app/ledger/mlx-1\n398\ny5euvUWfr1GfTZZ9W2qY+v/y3w9qaB9L+J00VgslPX4=\n",
"note": "mlx.app/ledger/mlx-1\n398\ny5euvUWfr1GfTZZ9W2qY+v/y3w9qaB9L+J00VgslPX4=\n\n— mlx.app/ledger/mlx-1 dAoLiBOyZ5xVXeU7JgBkvkJ4wV/8/ZvBbicOP4TsnQnNzvq3yWezFEx/fF10adlfmUJfQ4EmTZLa9gDek7gKluD3oAk=\n",
"sig": "13b2679c555de53b260064be4278c15ffcfd9bc16e270e3f84ec9d09cdcefab7c967b3144c7f7c5d7469d95f99425f4381264d92daf600de93b80a96e0f7a009",
"ts": 1793113803574,
"head": "ef5f250abbe3aa7f14767ea19ce5b1b67525fff8a8c039f0e72d5a7d33d04601"
},
"witnesses": [
{ "id": "2b372dd759bf0d89", "time": 1793116011 },
{ "id": "9547fd72c3308a3d", "time": 1793116266 }
],
"state": {
"height": 397,
"root": "e61dd19f5dffb8ba9b465106faa6a7a2928cfd2bbabd7ef7af13d39d39c5448d",
"usdc": "11285277511",
"accounts": 68,
"size": 398,
"logRoot": "cb97aebd459faf519f4d967d5b6a98fafff2df0f6a681f4bf89d34560b253d7e",
"ts": 1793115783839,
"sig": "78fc7df1a95d357b45aecb195a95c216600cd95f48391f9a604a05e1e89c516c0da09883bd70e5d787d97d11b3eceb11d7a5a9f94fea4b6f0cf39eb869d04704"
},
"history": [
{ "height": 397, "root": "e61dd19f…", "usdc": "11285277511", "accounts": 68, "size": 398, "logRoot": "cb97aebd…", "ts": 1793115783839, "sig": "78fc7df1…" }
],
"anchors": [
{
"chain": "solana",
"at": 1793115364283,
"size": 398,
"logRoot": "cb97aebd459faf519f4d967d5b6a98fafff2df0f6a681f4bf89d34560b253d7e",
"height": 394,
"stateRoot": "0cc077af7c40681c5a24702c0e71bed5c67333af42f1f4f16317a2123fd88f63",
"usdc": "11285277511",
"tx": "4oShU8RoQKw9BQr1yY2cFAm2go5tBeagcgxeouzZ1rD9U68GdTnr7fN9LPY5GFw3zwysWrtYXnBEKBssb4eDhUFn"
}
],
"anchorStatus": { "solana": "ok", "address": "AeWxrwqF51Ln4xzNZeccR1J4WiaNAkG9rj6XcsHTJTgJ", "checked": 1793115364264 }
}The witnesses list, the history of state commitments and the anchors were trimmed to one or two entries, and the history entry's hashes shortened.
| Field | Type | Notes |
|---|---|---|
chain | string | The chain id the log belongs to. |
sequencer | string | The sequencer's Ed25519 public key (hex). It signs blocks, checkpoints and state commitments. |
checkpoint | object | The newest checkpoint: origin, size, root (hex), body and note (the signed text), sig (hex), ts, and head, the hash of the newest block in it. See Checkpoints. |
witnesses | array | Macs that cosigned this checkpoint: an opaque id and the time (Unix seconds) they signed. |
state | object | The newest state commitment. |
history | array | Recent state commitments, newest first. |
anchors | array | Recent anchors, newest first: Solana (tx) and Bitcoin (digest, calendars). |
anchorStatus | object | The Solana anchor account: address, solana (ok or waiting for SOL), checked (ms). |
Pin sequencer the first time you see it, and treat a change as a reason to stop trusting what you are shown. The same key is in every block's producer and in GET /api/stats.
What it proves, and what not yet
It proves:
- No rewrite. Once you, a witness or an anchor has seen a checkpoint, every later checkpoint must extend it; a consistency proof shows it does.
- No split view. Two different histories can't both be signed, anchored on Solana and cosigned by witnesses without the contradiction showing.
- Every wallet is counted. A wallet's balance proof shows its USDC inside the committed total, and that total can be set against the reserves.
Not yet:
- that every transaction was executed correctly (planned: deterministic replay, with Macs re-running random blocks);
- that oracle inputs and work scores were honest;
- that no transaction was censored;
- that witnesses are independent of the operator.
Endpoints
| Endpoint | Returns |
|---|---|
GET /api/log | The summary above. |
GET /api/log/checkpoint | The newest checkpoint as a signed note (text). Checkpoints |
GET /api/log/inclusion?height=H[&size=N] | A block's inclusion proof. Proofs |
GET /api/log/consistency?from=A&to=B | A consistency proof between two log sizes. Proofs |
GET /api/log/state/<name>[?height=H] | A wallet's leaf and sum path in a state commitment. State commitments |
GET /api/log/ots/<digest>?cal=0|1|2 | A Bitcoin anchor's OpenTimestamps receipt (.ots). Anchors |
POST /api/log/cosign | A witness Mac's cosignature. Witnesses |