# GRU Transport Active JSON **Purpose:** Define the active-policy overlay for the **GRU Monetary Transport Layer**. ## File - **Config:** [`config/gru-transport-active.json`](../../config/gru-transport-active.json) - **Standards profile:** [`config/gru-standards-profile.json`](../../config/gru-standards-profile.json) ## What it gates This file is the final activation gate for: - enabled canonical `c*` assets on Chain 138 - enabled public destination chains for `cW*` - approved `CWMultiTokenBridgeL1` / `CWMultiTokenBridgeL2` peers - reserve-verifier policy references for hard-peg eligible pairs - required `maxOutstanding` policy per canonical token / destination chain - public-pool exposure in token-aggregation - pool routing eligibility in token-aggregation - MCP visibility eligibility for public pools The active overlay does **not** replace the existing universe/config files. It sits on top of them. ## Runtime readiness The overlay now exposes two different readiness views through token-aggregation: - **`eligible`**: the pair is structurally valid according to JSON policy, mappings, deployment status, and declared config refs. - **`runtimeReady`**: the pair also has live bridge addresses, reserve-verifier refs, and required `maxOutstanding` values resolved in the current runtime environment. This distinction matters operationally: - A pair can be `eligible` but not `runtimeReady` if secrets or deploy-time env vars have not been loaded yet. - `/api/v1/token-mapping/transport/active` reports both the structural pair data and summary counts such as `runtimeReadyTransportPairs`. - `/api/v1/bridge/status` and `/api/v1/bridge/metrics` surface the same runtime-readiness view for operators. - `/api/v1/bridge/preflight` focuses the output down to blocked pairs and the exact `runtimeMissingRequirements` / `eligibilityBlockers` that must be cleared. ## Relationship to other JSONs - [`config/token-mapping-multichain.json`](../../config/token-mapping-multichain.json) Holds the full mapping universe for canonical `c*`, native public assets, and mirrored `cW*`. - [`config/routing-registry.json`](../../config/routing-registry.json) Holds the broader route-topology registry, including legacy WETH routes. - [`cross-chain-pmm-lps/config/deployment-status.json`](../../cross-chain-pmm-lps/config/deployment-status.json) Holds deployed `cW*` addresses and public PMM pool status. - [`cross-chain-pmm-lps/config/pool-matrix.json`](../../cross-chain-pmm-lps/config/pool-matrix.json) Defines the intended first local edge pools per chain. ## Activation model An active GRU transport pair is only valid when all of the following agree: 1. The canonical token is enabled in `gru-transport-active.json`. 2. The destination chain is enabled in `gru-transport-active.json`. 3. The pair exists in `token-mapping-multichain.json`. 4. The mirrored `cW*` token is deployed in `deployment-status.json`. 5. The approved bridge peer is present in `gru-transport-active.json`. 6. A `maxOutstanding` policy reference is set for the pair. 7. Required reserve-verifier wiring references are present. ## Standard methodology The repo now treats GRU Transport as the canonical standard for public-chain monetary transport: - **Chain 138** keeps the canonical `c*` asset. - A compatible public chain receives the mirrored **`cW*`** asset. - The transport method is **lock canonical `c*` on 138, mint mirrored `cW*` on destination**. - Local trading remains **chain-local edge pools**, not literal cross-chain pools. - Legacy WETH bridge routes remain separate and are not part of GRU Transport. Compatibility is intentionally strict. A destination chain belongs in this overlay only when: 1. a multichain mapping exists 2. the `cW*` deployment is non-zero 3. `bridgeAvailable` is true 4. the chain is explicitly enabled here ## Public pools Public pools remain **chain-local edge pools**, not literal cross-chain pools. Operators should: 1. Deploy the pool. 2. Record the pool address in `deployment-status.json`. 3. Mark the pool `active` in `gru-transport-active.json`. 4. Only then enable `routingEnabled` and/or `mcpVisible`. Until a pool is marked active in the overlay, token-aggregation hides GRU `cW*` pools that touch mirrored assets on public chains. ## v1 defaults The current overlay enables: - canonical assets: `cUSDT`, `cUSDC` - destination chains: `25`, `56`, `137`, `43114`, `42161`, `8453`, `10`, `100`, `1` - transport form: **Compliant Wrapped ISO-4217 M1** ## Related - [C_TO_CW_MAPPER_MAPPING.md](C_TO_CW_MAPPER_MAPPING.md) - [CW_BRIDGE_APPROACH.md](../07-ccip/CW_BRIDGE_APPROACH.md) - [CW_DEPLOY_AND_WIRE_RUNBOOK.md](../07-ccip/CW_DEPLOY_AND_WIRE_RUNBOOK.md)