# PLAI Chain Canonical Ledger Boundary

## Canonical candidate ledger

`AISFOR_CHAIN_CANONICAL_LEDGER=besu-qbft` declares the Besu QBFT network as the
only canonical candidate ledger. The security startup gate refuses to start the
public control plane if this value, QBFT consensus, the EVM candidate switch, or
the legacy write lock drifts from the hardened policy.

Canonical identity is read from RPC rather than from the Express mock ledger:

- chain ID: `20260718`
- consensus: QBFT
- target block period: 2 seconds
- canonical API: `/api/canonical/**`
- canonical Explorer blocks: `/explorer/block/:height-or-hash`

The status service checks RPC availability, chain ID, current block age, validator
quorum, peer connectivity, and external-transfer lock. It never uses legacy mock
height or mock votes as canonical finality.

Canonical PLAIS and legacy application points are separate asset roles. See
`docs/CANONICAL_ASSET_POLICY.md` for the genesis-supply check, decimal policy,
and issuance/conversion locks.

## Legacy application archive

The former Express block ledger is retained as `legacy-read-only-archive` so proof,
reward, wallet, and callback history remains auditable. It is not a validator or
finality source for Besu QBFT.

- compatible legacy API: `/api/block/**`
- explicit legacy API: `/api/legacy/block/**`
- legacy Explorer blocks: `/explorer/legacy/block/:height-or-hash`
- mutation state: locked

Archived and quarantined legacy records do not reduce canonical QBFT readiness as
long as their hash chain is valid, pending validation is zero, and mock writes stay
locked.

## Remaining gate

Canonical selection does not make the network mainnet-ready. The four active
validators currently share one physical host. Candidate readiness therefore keeps
`validator_host_distribution` failed until four independently operated hosts are
verified.

The count is derived from live `admin_peers` data matched to the four active
validator public identities; it is not accepted from a manually entered host
count. See `docs/CANONICAL_VALIDATOR_MIGRATION.md` for the genesis-preserving
migration procedure.
