# ALL Mainnet (651940) Configuration

**Date**: 2026-01-26  
**Status**: ✅ **BIDIRECTIONAL BRIDGE CONFIGURED** (`bridge_live`). ⚠️ **Same-chain swap inventory partially published** per canonical [`config/allmainnet-non-dodo-protocol-surface.json`](../../../config/allmainnet-non-dodo-protocol-surface.json): DODO-backed routes are published, but production routing remains gated by required vault assignments, funding, live reserve reads, canary evidence, and per-provider enablement.  
**Last Updated**: 2026-04-30

---

## Single source of truth (read this first)

| Topic | Canonical location |
|--------|-------------------|
| **CCIP / LiFi flags, inbound list, `isCCIPSupported` / `isLiFiSupported`** | [`alltra-lifi-settlement/src/config/chains.ts`](../../../alltra-lifi-settlement/src/config/chains.ts) — `ALL_MAINNET` must keep `ccipSupported: false` and `lifiSupported: false` until Chainlink / LiFi list 651940. |
| **Routing when LiFi/CCIP are off** | **Alltra custom bridge only** for 138↔651940: `AlltraAdapter` + `AlltraCustomBridge` (table below). **LiFi** routes use `isLiFiSupported(chainId)` — false for 651940, so LiFi quotes must not target ALL Mainnet. **CCIP** routes use `isCCIPSupported(chainId)` — false for 651940. **Generic inbound** includes 651940 via `isSupportedInboundChain` for non–LiFi / non–CCIP settlement (Alltra / internal). |
| **Canonical ALL Mainnet protocol surface (651940)** | **[proxmox root]** [`config/allmainnet-non-dodo-protocol-surface.json`](../../../config/allmainnet-non-dodo-protocol-surface.json) — source of truth for `status`, `sameChainSwapInventoryPublished`, token/protocol rows, and `nextTasks`. Submodule copies must track this file; **config wins** over this markdown if they disagree. |
| **Pool/protocol completion runbook** | [`docs/03-deployment/ALL_MAINNET_PROTOCOL_COMPLETION_RUNBOOK.md`](../../../docs/03-deployment/ALL_MAINNET_PROTOCOL_COMPLETION_RUNBOOK.md) — strict continuation path for required inventory pools, auto-rebalancing, and enabling DODO/Uniswap/Balancer/Curve/Sushi/1inch/Aave surfaces. |
| **CI / validation (proxmox repo root)** | [`scripts/verify/check-allmainnet-protocol-surface.sh`](../../../scripts/verify/check-allmainnet-protocol-surface.sh) — JSON shape + `sameChainSwapInventoryPublished` vs `status` consistency. [`scripts/verify/check-allmainnet-chains-flags.sh`](../../../scripts/verify/check-allmainnet-chains-flags.sh) — `ALL_MAINNET` in [`alltra-lifi-settlement/src/config/chains.ts`](../../../alltra-lifi-settlement/src/config/chains.ts) keeps `ccipSupported`/`lifiSupported` false for 651940. [`scripts/verify/check-allmainnet-gate-surface-alignment.sh`](../../../scripts/verify/check-allmainnet-gate-surface-alignment.sh) aliases the protocol-surface check. Invoked from [`scripts/validation/validate-config-files.sh`](../../../scripts/validation/validate-config-files.sh) / [`scripts/verify/run-all-validation.sh`](../../../scripts/verify/run-all-validation.sh) step 2. |
| **Registry / machine checks** | **proxmox repo root:** `config/routing-registry.json`, `config/aggregator-route-matrix.csv`, `config/allmainnet-non-dodo-protocol-surface.json`, [`config/all-mainnet-pool-creation-matrix.json`](../../../config/all-mainnet-pool-creation-matrix.json). *(No `all-mainnet-production-gate.json` in repo root today — do not reference a missing file as canonical.)* |
| **This document** | Human narrative, verification history, and operator checklist — **not** a second copy of `chains.ts`; if they disagree, **fix `chains.ts` and regen checks**, then update this file. |

**Same-chain surface:** documented tokens and protocol scaffolding live in [`config/allmainnet-non-dodo-protocol-surface.json`](../../../config/allmainnet-non-dodo-protocol-surface.json). As of **2026-04-30**, the surface publishes partial same-chain inventory with DODO enabled through `EnhancedSwapRouterV2`; optional providers remain gated until real pool/factory/router evidence is committed. Follow `documentedTokens`, `protocols[]`, `nextTasks`, and the completion runbook for remaining pool/factory work; **`config/all-mainnet-pool-creation-matrix.json`** tracks pool lifecycle separately.

---

## Chain Information

- **Chain ID**: 651940 (0x9f2a4)
- **Network Name**: ALL Mainnet
- **Native Currency**: ALL (18 decimals)
- **RPC**: https://mainnet-rpc.alltra.global
- **Explorer**: https://alltra.global
- **Info URL**: https://alltra.world
- **ChainList**: https://chainlist.org/chain/651940

---

## ⚠️ Verification Required

### 1. CCIP Support Check

**Action Required**: Verify if ALL Mainnet (651940) is supported by Chainlink CCIP

**How to Check**:
1. Visit [CCIP Directory - Mainnet](https://docs.chain.link/ccip/directory/mainnet)
2. Search for chain ID 651940 or "ALL Mainnet"
3. If found, record:
   - CCIP Router address
   - CCIP Chain Selector
   - Supported tokens
   - Lane status

**Current Status**: ✅ **VERIFIED** - ❌ **NOT SUPPORTED** (2026-01-26)

**Verification Result**: 
- Checked CCIP Directory: https://docs.chain.link/ccip/directory/mainnet
- ALL Mainnet (651940) is **NOT** listed in the supported networks
- CCIP Directory shows 75 networks, but ALL Mainnet is not among them

**If CCIP Not Supported** (Current Status):
- Disable CCIP bridging for ALL Mainnet
- Use alternative bridging mechanism (e.g., custom bridge adapter)
- Document fallback routing strategy
- Update `chains.ts` to set `ccipSupported: false`

**If CCIP Supported**:
- Update `chains.ts` with CCIP selector
- Set `ccipSupported: true`
- Configure CCIP router addresses
- Enable CCIP bridging routes

---

### 2. LiFi Support Check

**Action Required**: Verify if ALL Mainnet (651940) is supported by LiFi

**How to Check**:
1. Query LiFi API: `GET https://li.quest/v1/chains`
2. Search response for chain ID 651940
3. If found, record supported features

**Current Status**: ✅ **VERIFIED** - ❌ **NOT SUPPORTED** (2026-01-26)

**Verification Result**:
- Queried LiFi API: `GET https://li.quest/v1/chains`
- Searched response for chain ID 651940
- **NOT FOUND** - ALL Mainnet is not in LiFi's supported chains list
- LiFi supports 100+ chains but 651940 is not included

**If LiFi Not Supported** (Current Status):
- ALL Mainnet payments must use alternative routing (Alltra custom bridge + internal paths)
- Keep `lifiSupported: false` in `chains.ts` (LiFi service must not quote 651940)
- Use `isAlltraCustomBridgeOnlyChain(651940)` / `isSupportedInboundChain(651940)` for non–LiFi inbound — **do not** route via LiFi SDK
- **Done in repo:** [Routing logic (implemented)](#routing-logic-implemented) and `lifi-routing.service.ts` guard on `isLiFiSupported`

**If LiFi Supported**:
- Update `chains.ts` to set `lifiSupported: true`
- Add 651940 to `isSupportedInboundChain()` array
- Enable LiFi routing for ALL Mainnet

---

### 3. USDC Deployment Check

**Action Required**: Verify USDC contract deployment on ALL Mainnet

**How to Check**:
1. Query ALL Mainnet RPC for USDC contract
2. Check explorer for verified USDC contract
3. Record contract address and decimals

**Current Status**: ✅ **VERIFIED** - USDC (AUSDC) deployed (2026-01-26)

**Verification Result**:
- USDC Contract Address: `0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881`
- Token Name: AUSDC (USDC on ALL Mainnet)
- Verified on: https://alltra.global
- Updated in `chains.ts`: ✅ Complete

**Action Taken**:
- ✅ Updated `chains.ts` with USDC address
- ✅ USDC-based routing enabled
- ✅ Settlement contracts can use this address

---

## Configuration Values

### Live Bridge Deployment

ALL Mainnet is not available through CCIP or LiFi, so production routing uses the custom `AlltraAdapter` + `AlltraCustomBridge` transport.

| Chain | Component | Address | Status |
|------:|-----------|---------|--------|
| 138 | `AlltraAdapter` | `0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc` | live |
| 138 | `AlltraCustomBridge` transport | `0x0A734337f080217d87B0a02524556C118d6a3Ee3` | live, configured |
| 651940 | `AlltraAdapter` | `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` | live |
| 651940 | `AlltraCustomBridge` transport | `0xAb57BF30F1354CA0590af22D8974c7f24DB2DbD7` | live, configured |

Bridge route coverage is committed in:

- `config/routing-registry.json`
- `config/aggregator-route-matrix.csv`
- `config/allmainnet-non-dodo-protocol-surface.json`
- `config/all-mainnet-pool-creation-matrix.json` (pool lifecycle; proxmox root)

**Verification (from proxmox repo root):** run repo config validation (includes ALL Mainnet pool matrix when present) and review the canonical surface JSON:

```bash
bash scripts/validation/validate-config-files.sh
```

USDC-on-651940 probe helper (submodule): [`smom-dbis-138/scripts/verify-all-mainnet-usdc.sh`](../../scripts/verify-all-mainnet-usdc.sh).

**Related docs:** [ALL_MAINNET_VERIFICATION_COMPLETE.md](ALL_MAINNET_VERIFICATION_COMPLETE.md); ecosystem routing narrative [docs/11-references/DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md](../../../docs/11-references/DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md). *(Earlier pointers to `ALL_MAINNET_PRODUCTION_GATE.md`, `ALL_MAINNET_OPERATOR_ACTIONS.md`, or a fixed-path evidence bundle were removed — those paths are not present in this workspace.)*

### EVM Chain ID
```solidity
uint256 public constant ALLTRA_MAINNET = 651940;
```

### Chain Registry Entry (TypeScript)
```typescript
ALL_MAINNET: {
  chainId: 651940,
  selector: '', // CCIP not supported - use custom bridge adapter
  confirmations: 12,
  usdcAddress: '0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881', // ✅ VERIFIED: AUSDC on ALL Mainnet
  name: 'ALL Mainnet',
  rpcUrl: 'https://mainnet-rpc.alltra.global',
  explorerUrl: 'https://alltra.global',
  nativeCurrency: {
    name: 'ALL',
    symbol: 'ALL',
    decimals: 18,
  },
  ccipSupported: false, // ✅ VERIFIED: Not in CCIP Directory (2026-01-26)
  lifiSupported: false, // ✅ VERIFIED: Not in LiFi API (2026-01-26)
  chainKey: 'all-mainnet',
  displayName: 'ALL Mainnet',
}
```

### On-Chain Registry (ChainRegistry.sol)
```solidity
// To be registered via registerEVMChain()
registerEVMChain(
    651940,  // chainId
    alltraAdapterAddress,  // adapter
    "https://alltra.global",  // explorerUrl
    12,  // minConfirmations
    2,  // avgBlockTime (seconds, TBD)
    ""  // additionalData
);
```

---

## Naming Convention

**Important**: Distinguish between:
- **ALL Mainnet** (chain, chainId 651940) - The EVM blockchain
- **ALLTRA** (orchestration layer) - The hybrid service layer that manages payments

**Chain Type**: `"EVM"` (not "Alltra")  
**Chain Identifier**: `"ALL-Mainnet"` (not "Alltra-Mainnet")

---

## Telemetry Labels

Use consistent labels for metrics:

```typescript
{
  chainId: 651940,
  chainKey: "all-mainnet",
  displayName: "ALL Mainnet",
  chainType: "EVM"
}
```

---

## Routing logic (implemented)

**Do not duplicate** the snippet below in app code; **import** from [`alltra-lifi-settlement/src/config/chains.ts`](../../../alltra-lifi-settlement/src/config/chains.ts).

- **`isSupportedInboundChain(651940)`** — `true` (Alltra + internal settlement allowed).
- **`isCCIPSupported(651940)`** / **`isLiFiSupported(651940)`** — `false` (use Alltra custom bridge, not CCIP/LiFi rails).
- **`isAlltraCustomBridgeOnlyChain(chainId)`** — `true` only for `651940` (convenience for “no LiFi/CCIP” paths).

```typescript
// See chains.ts for full implementations
import {
  isSupportedInboundChain,
  isCCIPSupported,
  isLiFiSupported,
  isAlltraCustomBridgeOnlyChain,
} from 'alltra-lifi-settlement/src/config/chains';
// LiFi quote/build paths: if (!isLiFiSupported(fromChainId)) { ... }
// CCIP send paths: if (!isCCIPSupported(chainId)) { use AlltraAdapter / not CCIP }
```

---

## Next Steps

1. ✅ Update `AlltraAdapter.sol` with chain ID 651940
2. ✅ Update `chains.ts` with ALL_MAINNET config
3. ✅ **VERIFY CCIP SUPPORT** - not supported as of 2026-01-26
4. ✅ **VERIFY LIFI SUPPORT** - not supported as of 2026-01-26
5. ✅ **VERIFY USDC DEPLOYMENT** - AUSDC verified on ALL Mainnet
6. ✅ Update routing services based on verification results
7. ✅ Update telemetry/metrics labels
8. ✅ Deploy and configure adapter transports on Chain 138 and 651940
9. ✅ Publish bidirectional bridge routes for WETH, cUSDT/AUSDT, and cUSDC/AUSDC
10. ⬜ **Promote same-chain swap inventory** — set `summary.sameChainSwapInventoryPublished` to **`true`** in [`config/allmainnet-non-dodo-protocol-surface.json`](../../../config/allmainnet-non-dodo-protocol-surface.json) only after factory/router/pool addresses are verified and aligned with [`config/all-mainnet-pool-creation-matrix.json`](../../../config/all-mainnet-pool-creation-matrix.json); until then status remains `bridge_live_swap_inventory_pending`.

---

## Verification Checklist

- [x] CCIP Directory checked for chain 651940 ✅ (2026-01-26)
- [x] CCIP support confirmed: ❌ NOT SUPPORTED ✅ (2026-01-26)
- [x] LiFi API checked for chain 651940 ✅ (2026-01-26)
- [x] LiFi support confirmed: ❌ NOT SUPPORTED ✅ (2026-01-26)
- [x] USDC contract address verified on ALL Mainnet ✅ (2026-01-26)
- [x] USDC address: `0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881` ✅ (2026-01-26)
- [x] USDC decimals confirmed (verify on explorer if needed) ✅ (2026-01-26)
- [x] Routing logic updated based on support status ✅
- [x] Telemetry labels standardized ✅
- [x] Documentation updated with verified values ✅
- [x] Chain 138 adapter transport configured ✅ (2026-04-26)
- [x] ALL Mainnet adapter transport configured ✅ (2026-04-26)
- [x] Bidirectional route registry entries committed ✅ (2026-04-26)
- [ ] Same-chain ALL DEX pool inventory **published** in canonical surface JSON (`sameChainSwapInventoryPublished: true`) — **pending** as of 2026-04-28; bridge-only posture documented in JSON.

## Verification Summary

**Date**: 2026-04-26

| Item | Status | Result |
|------|--------|--------|
| CCIP Support | ✅ Verified | ❌ **NOT SUPPORTED** |
| LiFi Support | ✅ Verified | ❌ **NOT SUPPORTED** |
| USDC Deployment | ✅ Verified | ✅ **DEPLOYED** - `0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881` (AUSDC) |
| Chain 138 Bridge Transport | ✅ Verified | `0x66FE...B8Dc` → `0x0A73...e3Ee3` |
| ALL Mainnet Bridge Transport | ✅ Verified | `0xe0E9...5D0` → `0xAb57...DbD7` |
| Same-chain ALL DEX Inventory | ⬜ **Pending** | [`config/allmainnet-non-dodo-protocol-surface.json`](../../../config/allmainnet-non-dodo-protocol-surface.json) — `sameChainSwapInventoryPublished: false`; document tokens/protocols without asserting full routable inventory |

**Action Taken**: 
- ✅ Use `AlltraAdapter` for bridging (CCIP not available)
- ✅ Use internal routing for payments (LiFi not available)
- ✅ USDC contract verified: `0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881` (AUSDC)
- ✅ Chain 138 ↔ ALL Mainnet bridge support is configured and machine-verifiable
- **Same-chain:** do **not** treat surface JSON as full swap readiness until `sameChainSwapInventoryPublished` is **`true`**; follow `nextTasks` / pool matrix promotion; bridge-only flows remain valid.

---

## References

- **ChainList**: https://chainlist.org/chain/651940
- **CCIP Directory**: https://docs.chain.link/ccip/directory/mainnet
- **CCIP API**: https://docs.chain.link/api/ccip/README
- **LiFi API**: https://docs.li.fi/api-reference/get-information-about-all-currently-supported-chains
- **ALL Mainnet Explorer**: https://alltra.global
- **ALL Mainnet Info**: https://alltra.world
