Compare commits

..

3 Commits

Author SHA1 Message Date
Devin AI
13286f5d58 docs(chain-138): align ATTACHMENT.md with canonical DeFi Oracle Meta Mainnet capitalization
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 30s
Follows the repo-wide rename in PR #8. Keeps the two CoinGecko-listing branches
consistent so #7 and #8 can merge in either order without reintroducing drift.
2026-04-19 19:53:24 +00:00
Devin AI
64bcc75892 docs(chain-138): rename submission attachment to canonical filename per user normalization
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 31s
Aligns with the canonical CoinGecko doc set called out by the maintainer:
- docs/04-configuration/coingecko/COINGECKO_CHAIN138_SUBMISSION_ATTACHMENT.md
  (was COINGECKO_CHAIN138_SUBMISSION_2026-04-19.md in the previous commit)
- SUPERSEDED banner link in COINGECKO_SUBMISSION_PACKAGE.md updated to the new filename.
2026-04-19 19:48:15 +00:00
Devin AI
bea43946bc docs(chain-138): integrate CoinGecko submission + chain logo; correct stale stablecoin addresses in submission package
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 29s
- Add chain logo asset docs/04-configuration/coingecko/logos/chain/eip155-138.png (sha256 266c1bfb…, IPFS CID QmYrMRnjQJcNkYq9AvZ2FQ9kzYj9szzP4YDmyNA1ybd8xE)
- Register the CID + local path under new 'chains' key in ipfs-manifest.json
- Commit COINGECKO_CHAIN138_SUBMISSION_2026-04-19.md (user-provided canonical submission payload)
- Re-point token-lists/chainlists/chain-138.json 'icon' from ethereum.org eth-diamond placeholder to ipfs://QmYrMR… (actual Chain 138 logo CID)
- Add 'icon':'dfiometa' to docs/04-configuration/pr-ready/eip155-138.json + packaged copy; add companion dfiometa.icon.json referencing ipfs://QmYrMR…
- COINGECKO_SUBMISSION_PACKAGE.md: add SUPERSEDED banner pointing to the 2026-04-19 payload; correct seven stale stablecoin addresses (cUSDC, cEURC, cGBPC, cAUDC, cJPYC, cCHFC, cCADC) to the canonical registry values (cursor rule chain138-tokens-and-pmm requires cUSDC=0xf22258…640b); add cGBPT, cEURT, cXAUC, cXAUT, cAUSDT rows per 2026-04-19 payload.

No runbooks, scripts, or on-chain state modified.
2026-04-19 19:14:03 +00:00
1552 changed files with 109907 additions and 105121 deletions

View File

@@ -10,23 +10,9 @@ alwaysApply: true
- **cUSDT:** `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` (6 decimals)
- **cUSDC:** `0xf22258f57794CC8E06237084b353Ab30fFfa640b` (6 decimals)
**DODOPMMIntegration (live, traded):** `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` — confirmed live via on-chain probe (2026-04-22): `compliantUSDT()` / `compliantUSDC()` return the canonical cUSDT/cUSDC above; `pools[][]` mapping resolves to the live funded pool set below; `isRegisteredPool` is TRUE for all 8 pools listed under "PMM pools (live, traded)". `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` is a parallel deployment of the same source with different immutables and seeded but un-traded pools — do not wire dApps or routers to it.
**DODOPMMIntegration:** `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` — reconciled with `docs/11-references/ADDRESS_MATRIX_AND_STATUS.md` (on-chain verification 2026-03-26); `compliantUSDT()` / `compliantUSDC()` return the canonical cUSDT/cUSDC above.
**DODOPMMProvider (ILiquidityProvider, live):** `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` — `dodoIntegration() == 0x86ADA6Ef…`, `providerName() == "DODO PMM"`, `isKnownPool` TRUE for all 8 live pools. Use this address as `dodoLiquidityProvider` when deploying `EnhancedSwapRouter`; see `docs/11-references/PMM_DEX_ROUTING_STATUS.md`.
**PMM pools (live, traded — 2026-04-22 on-chain probe):**
- cUSDT/cUSDC `0x9e89bAe009adf128782E19e8341996c596ac40dC` (~983k cUSDT / ~1.016M cUSDC, asymmetric — actively traded)
- cUSDT/USDT `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` (~1M / ~1M)
- cUSDC/USDC `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` (~1M / ~1M)
- cBTC/cUSDT `0x67049e7333481e2cac91af61403ac7bddfab7bcd` (10k cBTC base / 9M cUSDT quote)
- cBTC/cUSDC `0x72f1a0794153c3b8a1e8a731f1d8e1a52cb10dc5` (10k cBTC base / 9M cUSDC quote)
- WETH/USDC `0xb53a0508940b1ff90f1aad4f6cb50a7012fe5593` (~10.1M USDC quote)
- WETH/USDT `0xe227f6c0520c0c6e8786fe56fa76c4914f861533` (~10.1M USDT quote)
- cBTC/cXAUC `0xf3e8a07d419b61f002114e64d79f7cf8f7989433` (10k cBTC base / 1.7k cXAUC quote)
The earlier rule's pool addresses (`0xff8d3b8f…`, `0x6fc60D…`, `0x9f74Be…`) belong to the **parallel** integration `0x5BDc62f1…` (Stack B) and are seeded 10M/10M flat or 0/0 — they are not the live PMM trading set. Source-of-truth corrections to follow in `ADDRESS_MATRIX_AND_STATUS.md` and `PMM_DEX_ROUTING_STATUS.md`.
**cBTC:** `0xe94260c555ac1d9d3cc9e1632883452ebdf0082e` (8 decimals) — base token of the three cBTC pools above.
**PMM pools (live funded public):** cUSDT/cUSDC `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | cUSDT/USDT `0x6fc60DEDc92a2047062294488539992710b99D71` | cUSDC/USDC `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` — see `docs/11-references/ADDRESS_MATRIX_AND_STATUS.md` / `PMM_DEX_ROUTING_STATUS.md`.
**cXAUC / cXAUT (XAU):** `0x290E52a8819A4fbD0714E517225429aA2B70EC6b`, `0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E` (6 decimals). **1 full token = 1 troy ounce Au** — not USD face value; see `EXPLORER_TOKEN_LIST_CROSSCHECK.md` section 5.1.

View File

@@ -15,18 +15,6 @@ When answering token/PMM/deployment questions, prefer these docs over inferring
**Operator commands:** `docs/00-meta/OPERATOR_READY_CHECKLIST.md`
**Doc index:** `docs/MASTER_INDEX.md`
**Master reference — token / stablecoin launch (institutional compendium):** `docs/00-meta/BIBLE_FROM_NATHAN_TOKEN_LAUNCH_RESOURCE_COMPENDIUM.md` — regulation through aggregators and launch checklists; informational only. For Chain 138 token truth and Explorer alignment, still use `EXPLORER_TOKEN_LIST_CROSSCHECK.md` above.
**Master reference — MetaMask Money/mUSD ↔ GRU, provider cross-links, DefiLlama DODO `dfio_meta_main` TVL:** `docs/00-meta/METAMASK_GRU_DEFILLAMA_CHAIN138_MASTER_REFERENCE.md` — replay steps, upstream **DefiLlama/DefiLlama-Adapters#19198**, touchpoints JSON, and **Part G** remaining tasks.
**MetaMask / provider design corpus (frozen architecture vs execution checklists):** `docs/04-configuration/metamask/METAMASK_PROVIDER_DESIGN_CORPUS.md`
**GRU transport loader (monorepo `token-mapping-loader.cjs` + overlay JSON):** `docs/04-configuration/GRU_TRANSPORT_LOADER_DESIGN_SPEC.md`
**Gaps and inconsistencies (audit):** `docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md`
**Optional Cosmos / IBC to Chain 138 (streams AE):** `docs/11-references/COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md` — templates: `config/cosmos-chain138-optional/README.md`
**Deployment phases (full coverage):** `docs/03-deployment/REMAINING_DEPLOYMENTS_FOR_FULL_NETWORK_COVERAGE.md`
- A: mint + add liquidity (138) — `mint-for-liquidity.sh`, AddLiquidityPMMPoolsChain138
- B: Celo/Wemix CCIP + LINK (Wemix needs 0.4 WEMIX)

View File

@@ -1,44 +0,0 @@
# Exclude heavy paths from Cursor codebase indexing only (files stay editable).
# Syntax: same as .gitignore — see https://cursor.com/docs/reference/ignore-file
#
# Aligns with pyrightconfig.json / .vscode settings to reduce IDE + Python LS load.
# See reports/status/pyright-and-ide-performance-investigation-2026-05-09.md
ProxmoxVE/
explorer-monorepo/
MEV_Bot/
miracles_in_motion/
OMNIS/
cross-chain-pmm-lps/
tmp/
.tmp/
.codex-artifacts/
.devin/
.venv-checkjson/
venv/
smom-dbis-138/lib/
smom-dbis-138/artifacts/
smom-dbis-138/broadcast/
smom-dbis-138/cache/
third-party/
vendor/
backups/
build/
dist/
out/
output/
reports/
cross-chain-pmm-lps-publish/
smom-dbis-138-publish/
thirdweb-contracts/
thirdweb-core-2103-test/
token-aggregation-build/
transaction-composer/
relay/
relay-api/
relay-docs/
relay-web/
.cursor/
.codex/
.pnpm-store/

View File

@@ -1,18 +0,0 @@
# Devin for Terminal in Cursor
This project is configured to use Devin for Terminal as a local CLI companion inside Cursor.
- Cursor config import is enabled through `.cursor/rules/` and `.cursor/mcp.json` if present.
- Windsurf config import is disabled for this project.
- `AGENTS.md` remains the canonical shared project guidance.
- Personal Devin overrides and secrets belong in `.devin/config.local.json`, which is gitignored.
- Run `devin auth login` interactively before first use.
Useful commands:
```bash
devin
devin -- "review this repo and suggest the next safe task"
devin auth status
devin mcp list
```

View File

@@ -1,21 +0,0 @@
---
name: reviewer
description: Read-only reviewer for Cursor/Devin handoffs
allowed-tools:
- read
- grep
- glob
- exec
permissions:
allow:
- Exec(git status)
- Exec(git diff)
- Exec(git log)
deny:
- write
- edit
---
You are a read-only review subagent for this Cursor workspace.
Review changes for correctness, security, operational risk, and consistency with `AGENTS.md` and relevant `.cursor/rules/` guidance. Do not modify files. Report only actionable findings first, ordered by severity, with exact file paths.

View File

@@ -1,38 +0,0 @@
{
// Devin for Terminal project config optimized for Cursor as the primary IDE.
"read_config_from": {
"cursor": true,
"windsurf": false,
"claude": true
},
"permissions": {
"allow": [
"Read(**)",
"Exec(git status)",
"Exec(git diff)",
"Exec(git log)",
"Exec(pnpm run)",
"Exec(bash scripts/verify)",
"Exec(bash scripts/validation)"
],
"ask": [
"Write(**)",
"Exec(git commit)",
"Exec(git push)",
"Exec(docker)",
"Exec(docker compose)",
"mcp__*"
],
"deny": [
"Exec(rm)",
"Exec(sudo)",
"Exec(chmod -R)",
"Exec(chown -R)",
"Write(.env*)",
"Write(**/.env*)",
"Write(reports/secrets/**)",
"Write(config/production/*did-secrets.env)"
]
},
"mcpServers": {}
}

View File

@@ -1,14 +0,0 @@
{
"PreToolUse": [
{
"matcher": "exec",
"hooks": [
{
"type": "command",
"command": "bash scripts/devin/block-dangerous-command.sh",
"timeout": 10
}
]
}
]
}

View File

@@ -1,22 +0,0 @@
---
name: cursor-handoff
description: Align Devin for Terminal work with this Cursor workspace and project rules
allowed-tools:
- read
- grep
- glob
- exec
triggers:
- user
- model
---
Use this skill when starting or resuming work in this repository from Devin for Terminal.
1. Treat Cursor as the primary IDE context and read `.cursor/rules/` when relevant.
2. Read `AGENTS.md` first for canonical project guidance.
3. Do not rely on Windsurf rules, skills, workflows, or MCP settings for this project.
4. Check `git status --short` before editing and preserve unrelated user changes.
5. Prefer dry-run flags for operator, deployment, DNS, Proxmox, and LAN-sensitive scripts.
6. Never write secrets or runtime credentials into tracked files.
7. When using MCP servers, assume Cursor and Devin maintain separate authentication sessions.

View File

@@ -1,28 +0,0 @@
---
name: review
description: Review code changes before commit or handoff
allowed-tools:
- read
- grep
- glob
- exec
permissions:
allow:
- Exec(git status)
- Exec(git diff)
- Exec(git log)
deny:
- write
- edit
triggers:
- user
- model
---
Review the current changes with a correctness-first stance.
1. Run `git status --short`.
2. Run `git diff` and, if staged changes exist, `git diff --staged`.
3. Focus on bugs, security regressions, deployment risk, missing validation, and secret exposure.
4. Cite exact file paths and keep findings ordered by severity.
5. If no issues are found, say so and call out any test or validation gaps.

View File

@@ -20,8 +20,6 @@ PROXMOX_ALLOW_ELEVATED=
# Prefer CLOUDFLARE_API_TOKEN scoped to Zone:DNS:Edit on the zones you use (avoid global Account API key when possible).
# Bulk DNS script: scripts/update-all-dns-to-public-ip.sh — use --dry-run and --zone-only=sankofa.nexus (etc.) before wide updates.
CLOUDFLARE_API_TOKEN=
# Set to 1 if token has no DNS:Edit and you need Global API key for scripts/cloudflare/provision-d-bis-mail-dns-and-npmplus.sh etc.
CLOUDFLARE_DNS_PREFER_GLOBAL_KEY=
CLOUDFLARE_EMAIL=
CLOUDFLARE_API_KEY=
CLOUDFLARE_ZONE_ID=
@@ -42,10 +40,6 @@ CLOUDNS_AUTH_ID=
CLOUDNS_AUTH_PASSWORD=
# --- NPM / NPMplus ---
# For scripts/verify/backup-npmplus.sh: NPM_EMAIL and NPM_PASSWORD are both required
# (no in-script defaults); see AGENTS.md operator / backup row.
# PMG (LXC 100) web UI — optional: run scripts/operator/sync-pmg-webui-password-to-dotenv.sh to pull from /root/PMG_WEBUI_password.txt
PMG_WEBUI_PASSWORD=
NPM_URL=
NPM_EMAIL=
NPM_PASSWORD=
@@ -77,16 +71,6 @@ GITEA_URL=
GITEA_TOKEN=
GITEA_ORG=
# --- Phoenix deploy API (Gitea Actions secrets on EACH repo that triggers deploy) ---
# PHOENIX_DEPLOY_URL= # full POST URL e.g. http://192.168.11.59:4001/api/deploy — same variable name as repo Secrets in Gitea
# PHOENIX_DEPLOY_TOKEN= # bearer for Phoenix deploy API — set per-repo Secret on Gitea, not necessarily in this root .env
# --- CyberSecur Global (Gov portal static site; optional Web3Forms intake) ---
# CYBERSECUR_WEB3FORMS_ACCESS_KEY= # web3forms.com — used by CyberSecur-Global/deploy/render-intake.sh (key is public in browser HTML per provider)
# After rotating the key in the Web3Forms dashboard, update this line and redeploy:
# CYBERSECUR_REPO=/path/to/CyberSecur-Global ./scripts/deployment/sync-cybersecur-global-to-ct7810.sh
# CYBERSECUR_INTAKE_REDIRECT_URL= # optional; default https://cybersecur.d-bis.org/intake-thanks.html
# --- Database & app auth ---
DATABASE_URL=
JWT_SECRET=
@@ -110,48 +94,9 @@ AZURE_STORAGE_CONTAINER=
# --- Blockchain / SMOM-DBIS-138 (use smom-dbis-138/.env for PRIVATE_KEY) ---
PRIVATE_KEY=
DEPLOYER_ADDRESS=
RPC_URL_138=
RPC_URL_138_PUBLIC=
# Infura (recommended): one dashboard project fills JSON-RPC for Ethereum + major L2s.
# Set INFURA_PROJECT_ID (or INFURA_API_KEY) and leave per-chain URLs empty to auto-fill in scripts/lib/load-project-env.sh,
# or set explicit URLs: https://mainnet.infura.io/v3/<PROJECT_ID>, https://polygon-mainnet.infura.io/v3/<PROJECT_ID>, …
INFURA_PROJECT_ID=
INFURA_API_KEY=
ETHEREUM_MAINNET_RPC=
# EI matrix readiness audit (scripts/verify/run-ei-matrix-full-readiness-audit.sh, optional CI step in run-all-validation.sh)
EI_MATRIX_AUDIT_SHARD_SIZE=400
EI_MATRIX_AUDIT_WORKERS=3
EI_MATRIX_AUDIT_MIN_MAINNET_RAW=12000000
EI_MATRIX_AUDIT_MIN_138_RAW=0
# CI: EI_MATRIX_ONCHAIN_AUDIT_CI=1 EI_MATRIX_ONCHAIN_AUDIT_CI_LIMIT=120 EI_MATRIX_AUDIT_MIN_MAINNET_RAW_CI=0
POLYGON_MAINNET_RPC=
ARBITRUM_MAINNET_RPC=
OPTIMISM_MAINNET_RPC=
BASE_MAINNET_RPC=
AVALANCHE_MAINNET_RPC=
# BSC / Gnosis / Celo (Infura-supported networks)
BSC_RPC_URL=
GNOSIS_MAINNET_RPC=
CELO_MAINNET_RPC=
# Clear scripts/verify/check-external-dependencies.sh — use real service URLs when split; example interim health target:
# DBIS_CORE_URL=https://dbis-api.d-bis.org/health
DBIS_CORE_URL=
CC_PAYMENT_ADAPTERS_URL=
CC_AUDIT_LEDGER_URL=
CC_SHARED_EVENTS_URL=
CC_SHARED_SCHEMAS_URL=
FIN_GATEWAY_URL=
ALLIANCE_ACCESS_URL=
# cast must be in PATH; use a runner-reachable Chain 138 RPC, e.g.:
# CHAIN138_CI_RPC_URL=https://rpc.public-0138.defi-oracle.io
CHAIN138_CI_RPC_URL=
ALL_MAINNET_RPC=
# Alltra / Wemix / Etherlink: set for production; for local read-only checks, deployer-gas-auto-route.sh falls back to public RPCs documented in scripts/deployment/deployer-gas-auto-route.sh
CHAIN_651940_RPC_URL=
# ALLTRA_MAINNET_RPC=https://mainnet-rpc.alltra.global
# WEMIX_RPC_URL=https://api.wemix.com
# ETHERLINK_RPC_URL=https://node.mainnet.etherlink.com
CHAIN_1_UNISWAP_V2_FACTORY=0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
CHAIN_1_UNISWAP_V2_ROUTER=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
CHAIN_1_UNISWAP_V2_START_BLOCK=0
@@ -182,10 +127,7 @@ CHAIN_8453_UNISWAP_V2_START_BLOCK=0
CHAIN_42161_UNISWAP_V2_FACTORY=0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E
CHAIN_42161_UNISWAP_V2_ROUTER=0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb
CHAIN_42161_UNISWAP_V2_START_BLOCK=0
# Optional / scaffold-only until Wemix UniV2 routing is promoted
CHAIN_1111_UNISWAP_V2_FACTORY=
CHAIN_1111_UNISWAP_V2_ROUTER=
CHAIN_1111_UNISWAP_V2_START_BLOCK=0
CHAIN_651940_RPC_URL=
ETHERLINK_RPC_URL=
TEZOS_RPC_URL=
ETHERSCAN_API_KEY=
@@ -279,19 +221,6 @@ RPC_URL_138_FIREBLOCKS=
WS_URL_138_FIREBLOCKS=
CHAIN_ID_138=
# --- Non-EVM operator binding (liquidity planner / handoff advisory) ---
# Public XRPL r-address (optional). Same as XRPL_ACCOUNT / XRPL_WALLET_ADDRESS / XRP_WALLET_ADDRESS.
XRPL_ACCOUNT=
XRPL_DEPLOYER_ADDRESS=
# Native Tron base58 address override if not using derived EVM→Tron mapping.
TRON_DEPLOYER_ADDRESS=
# Set to 1 after ops confirms derived Tron deployer is canonical (see config/non-evm-operator-binding.json).
TRON_CANONICAL_CONFIRMED=
# Solana public key override if not using SOLANA_KEYPAIR_PATH.
SOLANA_DEPLOYER_ADDRESS=
SOLANA_RPC_URL=
TRONGRID_API_KEY=
# --- Phoenix deploy API ---
PORT=
GITEA_TOKEN=

View File

@@ -6,12 +6,6 @@
2. Make changes, ensure tests pass
3. Open a pull request
Repo ↔ VM CI/CD mapping and templates for **other** Gitea repos: [docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md](../docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md), [config/gitea-workflow-templates/README.md](../config/gitea-workflow-templates/README.md).
Deploy workflow policy:
`main` and `master` are both deploy-triggering branches, so `.gitea/workflow-sources/deploy-to-phoenix.yml` and `.gitea/workflow-sources/validate-on-pr.yml` must stay identical across both branches.
Use `bash scripts/verify/sync-gitea-workflows.sh` after editing workflow-source files, and `bash scripts/verify/run-all-validation.sh --skip-genesis` to catch workflow drift before push.
## Pull Requests
- Use the PR template when opening a PR

View File

@@ -1,143 +0,0 @@
# Canonical deploy workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
#
# Push runs validate + Phoenix only when at least one changed path is outside paths-ignore.
# Doc/report/editor-only pushes skip CI deploy churn; use workflow_dispatch for a manual run.
name: Deploy to Phoenix
on:
push:
branches: [main, master]
paths-ignore:
# Narrative / audit text — does not change Phoenix-running code on the host
- 'docs/**'
- 'reports/**'
# Editor & local agent tooling
- '.cursor/**'
- '.cursorindexingignore'
- '.playwright-mcp/**'
# Repo guidance only (submodules + scripts drive deploy semantics)
- 'AGENTS.md'
# Typical local verification screenshots/bundles at repo root (regenerate at will)
- '/explorer-*.png'
- '/explorer-*.jpg'
- '/eip155-*.svg'
- '/*.tar.gz'
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# The cW* mesh matrix and deployment-status validators read
# cross-chain-pmm-lps/config/*.json. The parent checkout does not
# materialize submodules by default, and .gitmodules mixes public HTTPS
# with SSH URLs, so clone only the required public validation dependency.
- name: Materialize cross-chain-pmm-lps
run: |
set -euo pipefail
if [ ! -f cross-chain-pmm-lps/config/deployment-status.json ]; then
rm -rf cross-chain-pmm-lps
git clone --depth=1 \
https://gitea.d-bis.org/d-bis/cross-chain-pmm-lps.git \
cross-chain-pmm-lps
fi
- name: Run repo validation gate
run: |
bash scripts/verify/run-all-validation.sh --skip-genesis
deploy:
needs: validate
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
set +e
curl -sSf --retry 3 --retry-connrefused --retry-delay 10 --retry-max-time 180 \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"
rc="$?"
set -e
if [ "$rc" -eq 52 ]; then
HEALTH_URL="${{ secrets.PHOENIX_DEPLOY_URL }}"
HEALTH_URL="${HEALTH_URL%/api/deploy}/health"
echo "Phoenix deploy API restarted during self-deploy; verifying ${HEALTH_URL}"
for i in $(seq 1 12); do
if curl -fsS --max-time 5 "$HEALTH_URL"; then
exit 0
fi
sleep 5
done
fi
exit "$rc"
deploy-atomic-swap-dapp:
needs: deploy
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger Atomic Swap dApp deployment (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"atomic-swap-dapp-live\"}"
# After app deploy, ask Phoenix to run path-gated Cloudflare DNS sync on the host that has
# PHOENIX_REPO_ROOT + .env (not on this runner). Skips unless PHOENIX_CLOUDFLARE_SYNC=1 on that host.
# continue-on-error: first-time or missing opt-in should not block the main deploy.
cloudflare:
needs:
- deploy
- deploy-atomic-swap-dapp
runs-on: ubuntu-latest-heavy
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Request Cloudflare DNS sync (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --retry 5 --retry-all-errors --retry-connrefused --retry-delay 10 --retry-max-time 300 \
--connect-timeout 10 --max-time 900 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"cloudflare-sync\"}" \
|| { echo "Cloudflare DNS sync request failed; optional sync is non-blocking."; exit 0; }

View File

@@ -1,35 +0,0 @@
# Canonical PR validation workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
# PR-only: merges to main/master run deploy-to-phoenix only when push touches deploy-relevant
# paths (see paths-ignore there); this workflow always validates PRs without Phoenix deploy.
name: Validate (PR)
on:
pull_request:
types: [opened, synchronize, reopened]
branches: [main, master]
workflow_dispatch:
jobs:
run-all-validation:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# Optional: set org/repo variable URA_STRICT_CLOSURE=1 to fail PRs while pilot placeholders
# remain in manifest (see scripts/ura/validate-manifest-closure.mjs). Not enabled by default.
# Optional: set org/repo vars ETHEREUM_MAINNET_RPC + RPC_URL_138 and EI_MATRIX_ONCHAIN_AUDIT_CI=1 to run
# scripts/lib/ei_matrix_onchain_readiness_audit.py via run-all-validation (see OPERATOR_READY_CHECKLIST §5e).
- name: run-all-validation (no LAN, no genesis)
env:
URA_STRICT_CLOSURE: ${{ vars.URA_STRICT_CLOSURE }}
run: bash scripts/verify/run-all-validation.sh --skip-genesis

View File

@@ -4,7 +4,7 @@ on:
types: [opened, synchronize]
jobs:
claude-review:
runs-on: ubuntu-latest-heavy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: markwylde/claude-code-gitea-action@v1.0.5

View File

@@ -1,210 +0,0 @@
name: Bootstrap Phoenix Deploy API
# Reinstalls phoenix-deploy-api on the dev VM (CT 5700) with the latest server.js
# from master. This is the missing link between "code on master is the real
# implementation" and "running service on CT 5700 still has the stub". Run this
# workflow_dispatch job whenever phoenix-deploy-api/server.js, deploy-targets.json
# or related scripts change and you need the running service to pick up the change
# without a manual LAN visit.
#
# Required Gitea repo secrets (Settings -> Secrets):
# PHOENIX_PVE_HOST PVE node IP that hosts CT 5700 (e.g. 192.168.11.12)
# PHOENIX_PVE_USER SSH user on the PVE node (default: root)
# PHOENIX_PVE_SSH_KEY Private SSH key (PEM, OpenSSH format) authorised on the PVE node
# PHOENIX_PVE_KNOWN_HOSTS Pre-populated known_hosts entry for the PVE node (avoids strict-host prompt)
# PHOENIX_DEV_VM_VMID Container VMID (default: 5700)
# PHOENIX_DEPLOY_DEV_VM_IP IP of the dev VM for the post-install health check (default: 192.168.11.59)
# PHOENIX_DEPLOY_URL Phoenix deploy webhook URL (already used by deploy job)
# PHOENIX_DEPLOY_TOKEN Bearer token for the webhook (already used by deploy job)
#
# Trigger only via Gitea UI (Actions tab -> "Bootstrap Phoenix Deploy API" -> Run
# workflow). NOT triggered on push: reinstalling the deploy service is sensitive
# enough that we want it gated behind a manual click.
on:
workflow_dispatch:
inputs:
verify_only:
description: "If true, only run the post-install /health + auth probe and skip the reinstall step."
type: boolean
required: false
default: false
jobs:
bootstrap:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout proxmox repo
uses: actions/checkout@v4
- name: Validate repo layout
run: |
set -euo pipefail
test -d phoenix-deploy-api || { echo "phoenix-deploy-api/ missing" >&2; exit 1; }
test -f phoenix-deploy-api/server.js
test -f phoenix-deploy-api/scripts/install-systemd.sh
test -f phoenix-deploy-api/deploy-targets.json
# Manifest is optional; warn if missing but do not fail.
if [ ! -f config/public-sector-program-manifest.json ]; then
echo "::warning::config/public-sector-program-manifest.json missing — install will warn on CT"
fi
# Make sure the running master implementation is NOT the stub message
# that triggered this whole bootstrap thread.
if grep -q "Deploy request queued (stub)" phoenix-deploy-api/server.js; then
echo "phoenix-deploy-api/server.js still contains the stub string — refusing to bootstrap." >&2
exit 1
fi
- name: Install SSH key for PVE access
if: ${{ github.event.inputs.verify_only != 'true' }}
run: |
set -euo pipefail
mkdir -p "$HOME/.ssh"
chmod 700 "$HOME/.ssh"
umask 077
printf '%s\n' "${{ secrets.PHOENIX_PVE_SSH_KEY }}" > "$HOME/.ssh/id_pve"
chmod 600 "$HOME/.ssh/id_pve"
if [ -n "${{ secrets.PHOENIX_PVE_KNOWN_HOSTS }}" ]; then
printf '%s\n' "${{ secrets.PHOENIX_PVE_KNOWN_HOSTS }}" > "$HOME/.ssh/known_hosts"
chmod 644 "$HOME/.ssh/known_hosts"
else
# Fall back to accept-new on first connect; subsequent connects pin.
touch "$HOME/.ssh/known_hosts"
chmod 644 "$HOME/.ssh/known_hosts"
fi
- name: Build deploy bundle
if: ${{ github.event.inputs.verify_only != 'true' }}
run: |
set -euo pipefail
mkdir -p .out
if [ -f config/public-sector-program-manifest.json ]; then
tar czf .out/pda-deploy-bundle.tar.gz \
phoenix-deploy-api \
config/public-sector-program-manifest.json
else
tar czf .out/pda-deploy-bundle.tar.gz phoenix-deploy-api
fi
ls -lh .out/pda-deploy-bundle.tar.gz
- name: scp bundle to PVE host
if: ${{ github.event.inputs.verify_only != 'true' }}
env:
PVE_HOST: ${{ secrets.PHOENIX_PVE_HOST }}
PVE_USER: ${{ secrets.PHOENIX_PVE_USER }}
run: |
set -euo pipefail
: "${PVE_HOST:?PHOENIX_PVE_HOST not set in repo secrets}"
PVE_USER_VAL="${PVE_USER:-root}"
KNOWN_HOSTS_OPT="-o UserKnownHostsFile=$HOME/.ssh/known_hosts"
if [ ! -s "$HOME/.ssh/known_hosts" ]; then
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=accept-new"
else
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=yes"
fi
scp -i "$HOME/.ssh/id_pve" $KNOWN_HOSTS_OPT \
-o ConnectTimeout=20 \
.out/pda-deploy-bundle.tar.gz \
"${PVE_USER_VAL}@${PVE_HOST}:/tmp/pda-deploy-bundle.tar.gz"
- name: pct push + install-systemd on CT
if: ${{ github.event.inputs.verify_only != 'true' }}
env:
PVE_HOST: ${{ secrets.PHOENIX_PVE_HOST }}
PVE_USER: ${{ secrets.PHOENIX_PVE_USER }}
VMID: ${{ secrets.PHOENIX_DEV_VM_VMID }}
run: |
set -euo pipefail
: "${PVE_HOST:?PHOENIX_PVE_HOST not set in repo secrets}"
PVE_USER_VAL="${PVE_USER:-root}"
VMID_VAL="${VMID:-5700}"
KNOWN_HOSTS_OPT="-o UserKnownHostsFile=$HOME/.ssh/known_hosts"
if [ ! -s "$HOME/.ssh/known_hosts" ]; then
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=accept-new"
else
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=yes"
fi
ssh -i "$HOME/.ssh/id_pve" $KNOWN_HOSTS_OPT \
-o ConnectTimeout=20 \
"${PVE_USER_VAL}@${PVE_HOST}" "VMID=${VMID_VAL} bash -s" <<'REMOTE_EOF'
set -euo pipefail
: "${VMID:?}"
# Verify CT exists and is running.
if ! pct status "${VMID}" >/dev/null 2>&1; then
echo "CT ${VMID} not found on this PVE node." >&2
exit 1
fi
if ! pct exec "${VMID}" -- true 2>/dev/null; then
echo "CT ${VMID} not running. Start it first: pct start ${VMID}" >&2
exit 1
fi
STAGE="/tmp/proxmox-pda-stage"
pct push "${VMID}" /tmp/pda-deploy-bundle.tar.gz /root/pda-deploy.tar.gz
pct exec "${VMID}" -- bash -c "
set -euo pipefail
rm -rf '${STAGE}'
mkdir -p '${STAGE}'
tar xzf /root/pda-deploy.tar.gz -C '${STAGE}'
cd '${STAGE}'
bash phoenix-deploy-api/scripts/install-systemd.sh
rm -f /root/pda-deploy.tar.gz
"
rm -f /tmp/pda-deploy-bundle.tar.gz
REMOTE_EOF
- name: Health check (no auth)
env:
DEV_VM_IP: ${{ secrets.PHOENIX_DEPLOY_DEV_VM_IP }}
run: |
set -euo pipefail
IP="${DEV_VM_IP:-192.168.11.59}"
# Service may take a moment to come up after install; retry briefly.
for i in 1 2 3 4 5 6; do
if curl -sSf -m 5 "http://${IP}:4001/health" -o /tmp/health.json; then
echo "Health check OK on attempt ${i}"
cat /tmp/health.json || true
echo
break
fi
echo "Health check attempt ${i}/6 failed; sleeping 3s"
sleep 3
if [ "${i}" = "6" ]; then
echo "Phoenix Deploy API /health unreachable after install." >&2
exit 1
fi
done
- name: Auth + non-stub probe (POST with bogus target)
env:
PHOENIX_DEPLOY_URL: ${{ secrets.PHOENIX_DEPLOY_URL }}
PHOENIX_DEPLOY_TOKEN: ${{ secrets.PHOENIX_DEPLOY_TOKEN }}
run: |
set -euo pipefail
: "${PHOENIX_DEPLOY_URL:?}"
: "${PHOENIX_DEPLOY_TOKEN:?}"
# POST a bogus target. The post-bootstrap server should:
# - accept the bearer token (NOT 401)
# - reject the unknown target with a non-stub error
# The pre-bootstrap stub returned 202 with "Deploy request queued (stub)"
# for ANY target. So we explicitly check the response body does NOT
# contain that stub phrase.
BODY="$(curl -sS -m 10 -X POST "${PHOENIX_DEPLOY_URL}" \
-H "Authorization: Bearer ${PHOENIX_DEPLOY_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"repo":"d-bis/proxmox","sha":"HEAD","branch":"master","target":"__bootstrap_probe__"}' || true)"
echo "Response body:"
echo "${BODY}"
if echo "${BODY}" | grep -q 'Deploy request queued (stub)'; then
echo "::error::Phoenix Deploy API still returning stub response — bootstrap did not take effect."
exit 1
fi
if echo "${BODY}" | grep -qi 'unauthorized\|invalid token\|401'; then
echo "::error::Phoenix Deploy API rejected the bearer token. PHOENIX_DEPLOY_TOKEN is out of sync with PHOENIX_DEPLOY_SECRET on the CT."
exit 1
fi
echo "Phoenix Deploy API is post-stub and authenticating correctly."
- name: Cleanup secrets
if: always()
run: |
rm -f "$HOME/.ssh/id_pve" "$HOME/.ssh/known_hosts" || true

View File

@@ -1,31 +0,0 @@
name: Deploy Sankofa Portal Live
on:
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run repo validation gate
run: |
bash scripts/verify/run-all-validation.sh --skip-genesis
deploy:
needs: validate
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger portal-live deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf -X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"portal-live\"}"

View File

@@ -1,143 +1,20 @@
# Canonical deploy workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
#
# Push runs validate + Phoenix only when at least one changed path is outside paths-ignore.
# Doc/report/editor-only pushes skip CI deploy churn; use workflow_dispatch for a manual run.
name: Deploy to Phoenix
on:
push:
branches: [main, master]
paths-ignore:
# Narrative / audit text — does not change Phoenix-running code on the host
- 'docs/**'
- 'reports/**'
# Editor & local agent tooling
- '.cursor/**'
- '.cursorindexingignore'
- '.playwright-mcp/**'
# Repo guidance only (submodules + scripts drive deploy semantics)
- 'AGENTS.md'
# Typical local verification screenshots/bundles at repo root (regenerate at will)
- '/explorer-*.png'
- '/explorer-*.jpg'
- '/eip155-*.svg'
- '/*.tar.gz'
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# The cW* mesh matrix and deployment-status validators read
# cross-chain-pmm-lps/config/*.json. The parent checkout does not
# materialize submodules by default, and .gitmodules mixes public HTTPS
# with SSH URLs, so clone only the required public validation dependency.
- name: Materialize cross-chain-pmm-lps
run: |
set -euo pipefail
if [ ! -f cross-chain-pmm-lps/config/deployment-status.json ]; then
rm -rf cross-chain-pmm-lps
git clone --depth=1 \
https://gitea.d-bis.org/d-bis/cross-chain-pmm-lps.git \
cross-chain-pmm-lps
fi
- name: Run repo validation gate
run: |
bash scripts/verify/run-all-validation.sh --skip-genesis
deploy:
needs: validate
runs-on: ubuntu-latest-heavy
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
set +e
curl -sSf --retry 3 --retry-connrefused --retry-delay 10 --retry-max-time 180 \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
curl -sSf -X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"
rc="$?"
set -e
if [ "$rc" -eq 52 ]; then
HEALTH_URL="${{ secrets.PHOENIX_DEPLOY_URL }}"
HEALTH_URL="${HEALTH_URL%/api/deploy}/health"
echo "Phoenix deploy API restarted during self-deploy; verifying ${HEALTH_URL}"
for i in $(seq 1 12); do
if curl -fsS --max-time 5 "$HEALTH_URL"; then
exit 0
fi
sleep 5
done
fi
exit "$rc"
deploy-atomic-swap-dapp:
needs: deploy
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger Atomic Swap dApp deployment (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"atomic-swap-dapp-live\"}"
# After app deploy, ask Phoenix to run path-gated Cloudflare DNS sync on the host that has
# PHOENIX_REPO_ROOT + .env (not on this runner). Skips unless PHOENIX_CLOUDFLARE_SYNC=1 on that host.
# continue-on-error: first-time or missing opt-in should not block the main deploy.
cloudflare:
needs:
- deploy
- deploy-atomic-swap-dapp
runs-on: ubuntu-latest-heavy
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Request Cloudflare DNS sync (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --retry 5 --retry-all-errors --retry-connrefused --retry-delay 10 --retry-max-time 300 \
--connect-timeout 10 --max-time 900 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"cloudflare-sync\"}" \
|| { echo "Cloudflare DNS sync request failed; optional sync is non-blocking."; exit 0; }
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${{ gitea.sha }}\",\"branch\":\"${{ gitea.ref_name }}\"}"
continue-on-error: true

View File

@@ -1,35 +0,0 @@
# Canonical PR validation workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
# PR-only: merges to main/master run deploy-to-phoenix only when push touches deploy-relevant
# paths (see paths-ignore there); this workflow always validates PRs without Phoenix deploy.
name: Validate (PR)
on:
pull_request:
types: [opened, synchronize, reopened]
branches: [main, master]
workflow_dispatch:
jobs:
run-all-validation:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# Optional: set org/repo variable URA_STRICT_CLOSURE=1 to fail PRs while pilot placeholders
# remain in manifest (see scripts/ura/validate-manifest-closure.mjs). Not enabled by default.
# Optional: set org/repo vars ETHEREUM_MAINNET_RPC + RPC_URL_138 and EI_MATRIX_ONCHAIN_AUDIT_CI=1 to run
# scripts/lib/ei_matrix_onchain_readiness_audit.py via run-all-validation (see OPERATOR_READY_CHECKLIST §5e).
- name: run-all-validation (no LAN, no genesis)
env:
URA_STRICT_CLOSURE: ${{ vars.URA_STRICT_CLOSURE }}
run: bash scripts/verify/run-all-validation.sh --skip-genesis

112
.gitignore vendored
View File

@@ -26,9 +26,6 @@ Thumbs.db
# Local-only Cursor session / context (exclude from Gitea)
.cursor/local/
# Devin for Terminal personal overrides / secrets
.devin/config.local.json
# IDE files
.vscode/
.idea/
@@ -77,112 +74,3 @@ reconciliation/
*.payload.json
*.payload.sha256
audit_log.jsonl
# cross-chain-pmm-lps-publish: git worktree under that repo — not a parent submodule
cross-chain-pmm-lps-publish/
# Local scratch (never commit)
.tmp-*.cjs
.codex
.codex/
.venv-checkjson/
.env.bak.pmg.*
# Teammate / third-party onboarding (API token handoffs; never commit)
reports/secrets/
# Operator / runtime env snapshots under reports/ (sensitive; regenerate from hosts)
reports/status/operator-*.env
reports/status/operator-runtime*.env
reports/status/chain138_aave_runtime.env
reports/status/*runtime-env*.env
reports/status/ei-matrix-eth-send*
reports/status/token-aggregation-*.tar.gz
config/production/*did-secrets.env
# Bulky one-off local outputs (re-run scripts to restore)
output/omnl-e2e-*.zip
output/omnl-e2e-*/
output/office22-*.zip
output/settlement-events/
output/transaction-package-*/
output/cw-assets-usd-quote-dump.json
output/jvmtm-evidence/
# Generated verification evidence snapshots (keep curated evidence, ignore rerunnable timestamped dumps)
docs/04-configuration/verification-evidence/e2e-verification-*/
docs/04-configuration/verification-evidence/rpc-502-diagnostics-*.txt
# Generated deployment and inventory machine outputs
reports/deployment/*_20[0-9][0-9]-[0-9][0-9]-[0-9][0-9].md
reports/deployment/check-deployer-lp-balances-*.json
reports/inventory/container_inventory_*.csv
reports/inventory/contract-inventory-*.json
reports/inventory/DEPLOYED_CONTRACTS_*.md
reports/inventory/INCOMPLETE_DUPLICATE_ANALYSIS.md
reports/inventory/INVENTORY_COVERAGE_GAPS.md
reports/inventory/deployed-contracts-completion-matrix.json
reports/inventory/incomplete-duplicate-bytecode-analysis.json
# Generated status artifacts (rerunnable from wrappers/validation scripts)
reports/status/MULTI_NETWORK_DEPLOYMENT_AUDIT_*.md
reports/status/*-latest.json
reports/status/*-latest.md
reports/status/*-latest.csv
reports/status/*-latest.xml
reports/status/hardware_poll_*.txt
reports/status/lxc_cluster_health_*.json
reports/status/lxc_cluster_health_*.txt
reports/status/mainnet-cwusdc-usdc-preflight-*.json
reports/status/mainnet-cwusdc-usdc-repeg-plan-*.json
reports/status/live_inventory_*.json
reports/status/drift_*.json
# Ephemeral e2e dry-run outputs (local re-runs; not canonical reports)
reports/e2e-dry-runs/
# Local relay / thirdweb scaffold trees (subtree or vendor experiments — git add -f if promoted)
relay/
relay-api/
relay-docs/
relay-web/
thirdweb-contracts/
# One-off liquidity staging helpers (operator-generated; use committed runbooks as source of truth)
scripts/verify/stage-250m-eth-to-cwusdc-dry-run.sh
scripts/verify/stage-427m-cusdc-weth-liquidity-funding.sh
# Large optional vendor trees and local checkouts (keep out of main clone)
smom-dbis-138-publish/
third-party/
thirdweb-core-2103-test/
tmp/
token-aggregation-build/
transaction-composer/
vendor/
# Operator-local secrets (SSH keys, tokens — never commit)
.secrets/
# --- Ephemeral local outputs (avoid accidental commits that re-trigger Phoenix via push) ---
# Playwright MCP session data (Cursor)
.playwright-mcp/
# Root-level verification screenshots / bundles (use reports/status with git add -f if retaining)
/explorer-*.png
/explorer-*.jpg
/eip155-*.svg
/*.tar.gz
# Operator pipeline chunks, locks, and screenshot dumps under reports/status (force-add to retain)
reports/status/**/*.lock
reports/status/**/*.idx
reports/status/**/*.hex
reports/status/**/*.jsonl
reports/status/ei-matrix-*
reports/status/cw-multitoken-l2-remediation-*.jsonl
reports/status/screenshots/
# Large evidence bundles / checksums under reports/status (retain outside git or use releases)
reports/status/**/*.tar.gz
reports/status/**/*.sha256

6
.gitmodules vendored
View File

@@ -4,7 +4,7 @@
# Primary integration remote is Gitea; use GitHub only as an optional mirror when available.
[submodule "mcp-proxmox"]
path = mcp-proxmox
url = https://gitea.d-bis.org/d-bis/mcp-proxmox.git
url = https://github.com/gilby125/mcp-proxmox.git
[submodule "smom-dbis-138"]
path = smom-dbis-138
url = git@github.com:Order-of-Hospitallers/smom-dbis-138.git
@@ -64,7 +64,3 @@
[submodule "MEV_Bot"]
path = MEV_Bot
url = https://gitea.d-bis.org/d-bis/MEV_Bot.git
[submodule "atomic-swap-dapp"]
path = atomic-swap-dapp
url = https://gitea.d-bis.org/d-bis/atomic-swap-dapp.git
# Local bootstrap remote for initial scaffolding; replace with canonical hosted remote before team-wide clone use.

View File

@@ -11,48 +11,23 @@ Orchestration for Proxmox VE, Chain 138 (`smom-dbis-138/`), explorers, NPMplus,
| Need | Location |
|------|-----------|
| Doc index | `docs/MASTER_INDEX.md` |
| Master reference — token / stablecoin launch (“Bible from Nathan”) | `docs/00-meta/BIBLE_FROM_NATHAN_TOKEN_LAUNCH_RESOURCE_COMPENDIUM.md` — cross-cutting institutional compendium (regulation, custody, banking, tooling, audits, listings, checklists); use with Chain 138 canonicals below |
| Master reference — MetaMask Money/mUSD ↔ GRU, provider cross-links, DefiLlama DODO `dfio_meta_main` TVL | `docs/00-meta/METAMASK_GRU_DEFILLAMA_CHAIN138_MASTER_REFERENCE.md` — replay steps, doc cross-links, DefiLlama-Adapters fork/PR **#19198**, touchpoints JSON maintenance |
| DefiLlama ↔ Chain 138 (TVL + optional metrics) | `docs/04-configuration/defillama/CHAIN138_DEFILLAMA_ECOSYSTEM_MAP.md`, `config/defillama-chain138-touchpoints.json`; methodology hub [docs.llama.fi](https://docs.llama.fi/) |
| Optional Cosmos / IBC / Noble / Osmosis / CosmWasm → Chain 138 | `docs/11-references/COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md` (streams AE); templates `config/cosmos-chain138-optional/`; **gaps audit** `docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md` |
| Canonical ecosystem master plan | `docs/02-architecture/DBIS_ECOSYSTEM_TECHNICAL_MASTER_PLAN.md` — umbrella root; subordinate roots: `dbis_chain_138_technical_master_plan.md`, `docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md`, `docs/04-configuration/universal-resource-activation/URA_MANIFEST_AUTOMATION_IMPLEMENTATION_TRACKER.md` |
| Treasury / EMI / wallet / VA master plan | `docs/02-architecture/GOVERNMENT_TREASURY_EMI_WALLET_MASTER_PLAN.md` — government treasury, EMIs, digital wallets, virtual accounts (incl. Tatum-style), Rail vs RTGS gates |
| Universal resource activation (manifest, CI, Phoenix) | `UNIVERSAL_RESOURCE_WIRING.md`, `URA_MANIFEST_AUTOMATION_IMPLEMENTATION_TRACKER.md`, `URA_OPERATIONAL_READINESS_CHECKLIST.md` (under `docs/04-configuration/universal-resource-activation/`); `config/universal-resource-activation/{manifest.json,policy-profiles.json,integration/}`; `pnpm ura:ops-readiness` / `ura:ops-readiness:full`, `ura:production-ready` / `ura:production-ready:connectivity`, `ura:validate`, `ura:validate-profiles`, `ura:merge-manifest`, `ura:validate-ledger-mapping`, `ura:writer:ledger`, `ura:writer:settlement`, `ura:profile-hash`, `ura:validate-closure`, `ura:keccak`, `ura:smoke`; `URA_STRICT_CLOSURE` / Gitea `vars.URA_STRICT_CLOSURE`; `smom-dbis-138/contracts/universal-resource/PolicyProfileRegistry.sol` (scoped forge test); Phoenix `PUBLIC_V1_NO_PARTNER_KEY_PATHS` |
| Multi-jurisdiction compliance (matrices, onboarding) | `docs/04-configuration/compliance-matrices/README.md`, `INSTITUTION_ONBOARDING_CHARTER.md`, `INSTITUTION_ONBOARDING_PLAYBOOK.md`, `docs/04-configuration/jurisdictions/JURISDICTION_CATALOG.md`, `config/jurisdictions/catalog.v1.json`, `docs/dbis-rail/DBIS_RAIL_JURISDICTION_TRACEABILITY.md`, `docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md` |
| cXAUC/cXAUT unit | 1 full token = 1 troy oz Au — `docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md` (section 5.1) |
| PMM mesh 6s tick | `smom-dbis-138/scripts/reserve/pmm-mesh-6s-automation.sh``docs/integration/ORACLE_AND_KEEPER_CHAIN138.md` (PMM mesh automation) |
| VMID / IP / FQDN | `docs/04-configuration/ALL_VMIDS_ENDPOINTS.md` |
| Live guest inventory + IPAM drift (LAN, seed **r630-01**) | `bash scripts/it-ops/export-live-inventory-and-drift.sh``reports/status/live_inventory.json`, `reports/status/drift.json` (exit **2** only on duplicate guest IPs). Collector parses QEMU **`ipconfig*`** and LXC **`net*`** via `scripts/lib/proxmox_guest_lan_ips.py`. |
| Ops template + JSON | `docs/03-deployment/PROXMOX_VE_OPERATIONAL_DEPLOYMENT_TEMPLATE.md`, `config/proxmox-operational-template.json` |
| Live vs template (read-only SSH) | `bash scripts/verify/audit-proxmox-operational-template.sh` |
| Config validation | `bash scripts/validation/validate-config-files.sh` |
| pnpm lockfile vs workspace (prevents `pnpm outdated` / importer bugs) | `bash scripts/verify/check-pnpm-workspace-lockfile.sh` — also run as **step 1b** in `run-all-validation.sh` |
| CI validation (no LAN) + cW* mesh matrix | `bash scripts/verify/run-all-validation.sh [--skip-genesis]` — same gate as **Gitea** push/PR: `run-all-validation` in `.gitea/workflows/deploy-to-phoenix.yml` (push) and `.gitea/workflows/validate-on-pr.yml` (PR only), **`runs-on: ubuntu-latest-heavy`** (CT **5700**). After deploy, optional **Cloudflare** `cloudflare-sync` (Phoenix + `PHOENIX_REPO_ROOT`; set `PHOENIX_CLOUDFLARE_SYNC=1` on that host) via `scripts/deployment/gitea-cloudflare-sync.sh`. Steps: dependencies, **pnpm workspace/lockfile check**, config, cW* mesh (when pair-discovery exists), **`node cross-chain-pmm-lps/scripts/validate-deployment-status.cjs`**, optional genesis. Manual only: `bash scripts/verify/build-cw-mesh-deployment-matrix.sh [--json-out …]` |
| Gitea Actions runners (heavy vs standard pool) | `docs/04-configuration/GITEA_ACT_RUNNER_SETUP.md`**5700** `ubuntu-latest-heavy`, **5701** `ubuntu-latest`; apply configs `bash scripts/dev-vm/apply-act-runner-config.sh`; snapshot `bash scripts/dev-vm/act-runner-resource-snapshot.sh` |
| FQDN / NPM E2E verifier | `bash scripts/verify/verify-end-to-end-routing.sh --profile=public` — inventory: `docs/04-configuration/E2E_ENDPOINTS_LIST.md`. Gitea Actions URLs (no API): `bash scripts/verify/print-gitea-actions-urls.sh` |
| Submodule trees clean (CI / post-merge) | `bash scripts/verify/submodules-clean.sh` |
| Submodule + explorer remotes | `docs/00-meta/SUBMODULE_HYGIENE.md``mcp-proxmox` uses **Gitea** `https://gitea.d-bis.org/d-bis/mcp-proxmox.git` (not the old GitHub-only URL). `cross-chain-pmm-lps-publish` is a **worktree** of `cross-chain-pmm-lps`, not a submodule. |
| Submodule + explorer remotes | `docs/00-meta/SUBMODULE_HYGIENE.md` |
| smom-dbis-138 `.env` in bash scripts | Prefer `source smom-dbis-138/scripts/lib/deployment/dotenv.sh` + `load_deployment_env --repo-root "$PROJECT_ROOT"` (trims RPC URL line endings). From an interactive shell: `source smom-dbis-138/scripts/load-env.sh`. Proxmox root scripts: `source scripts/lib/load-project-env.sh` (also trims common RPC vars). |
| Sankofa portal → CT 7801 (build + restart) | `./scripts/deployment/sync-sankofa-portal-7801.sh` (`--dry-run` first); sets `NEXTAUTH_URL` on CT via `sankofa-portal-ensure-nextauth-on-ct.sh` |
| Gov Portals (CT **7804** @ `IP_GOV_PORTALS_DEV`, r630-04): git pull + build + sync | `./scripts/deployment/sync-gov-portals-ct-7804-from-git.sh` — requires `GITEA_TOKEN` in `.env` (or `export GITEA_TOKEN=…`); optional `--skip-fetch`. See `docs/04-configuration/GOV_PORTALS_XOM_DEV_DEPLOYMENT.md`. |
| CCIP relay (r630-01 host) | Unit: `config/systemd/ccip-relay.service``/etc/systemd/system/ccip-relay.service`; `systemctl enable --now ccip-relay` |
| TsunamiSwap VM 5010 check | `./scripts/deployment/tsunamiswap-vm-5010-provision.sh` (inventory only until VM exists) |
| Solana native SOL (robust JSON-RPC submit) | `scripts/lib/solana_jsonrpc.py` (stdlib `sendTransaction`), `./scripts/deployment/solana-transfer-native.py` (sign with `solders`). Install: `pip install -r scripts/lib/requirements-solana-ops.txt`. Avoids solana-py `SendTransactionResp` parse failures on RPCs that return only a signature string. Env: `SOLANA_RPC_URL`, `SOLANA_KEYPAIR_PATH` via `source scripts/lib/load-project-env.sh`. |
| The Order portal (`https://the-order.sankofa.nexus`) | OSJ management UI (secure auth); source repo **the_order** at `~/projects/the_order`. NPM upstream defaults to **order-haproxy** CT **10210** (`IP_ORDER_HAPROXY:80`); use `THE_ORDER_UPSTREAM_*` to point at the Sankofa portal if 10210 is down. Provision HAProxy: `scripts/deployment/provision-order-haproxy-10210.sh`. **`www.the-order.sankofa.nexus`** → **301** apex (same as www.sankofa / www.phoenix). |
| Portal login + Keycloak systemd + `.env` (prints password once) | `./scripts/deployment/enable-sankofa-portal-login-7801.sh` (`--dry-run` first) |
| Completable (no LAN) | `./scripts/run-completable-tasks-from-anywhere.sh` |
| **EI matrix → mainnet cWUSDC transfer** | `./scripts/deployment/send-cwusdc-ei-matrix-wallets.sh``transfer` from signer to grid slice (`--send-raw` / `--total-send-raw`); resume: `continue-cwusdc-ei-matrix-wallets.sh`. |
| **EI matrix top-up TSV from audit** | `scripts/verify/build-ei-matrix-cwusdc-topup-tsv-from-audit-json.sh` — rebuilds `ei-matrix-cwusdc-topup-*.tsv` from `ei-matrix-readiness-audit-latest.json`. |
| **EI matrix → Multicall3 cWUSDC (preferred)** | `./scripts/deployment/send-cwusdc-ei-matrix-multicall-batches.sh` — Multicall3 `aggregate3` + `transferFrom`; `EI_MATRIX_MC_CHUNK` (default 200). Core: `scripts/lib/ei_matrix_multicall3_cwusdc_batch.py`. Fallback: `send-cwusdc-ei-matrix-targeted.sh` (1 tx/wallet). Pipeline: `pipeline-ei-matrix-remediate-cwusdc-from-audit.sh --multicall`. |
| **EI matrix → mainnet cWUSDC mint** | `./scripts/deployment/pipeline-ei-matrix-mint-cwusdc.sh` — mints `CWUSDC_MAINNET` to each wallet in `config/pmm-soak-wallet-grid.json` (see `docs/03-deployment/EI_MATRIX_CWUSDC_MINT_PIPELINE.md`). Core: `mint-cwusdc-ei-matrix-wallets.sh`; resume: `continue-mint-cwusdc-ei-matrix-wallets.sh`. Not a 138 bridge. |
| **EI matrix on-chain readiness (cWUSDC / 138 cUSDC)** | `./scripts/verify/run-ei-matrix-full-readiness-audit.sh` — full grid, sharded (`--shard-size`, env `EI_MATRIX_AUDIT_*`), writes JSON + gap index files. Ad hoc: `./scripts/verify/audit-ei-matrix-onchain-readiness.sh`. Optional CI: `EI_MATRIX_ONCHAIN_AUDIT_CI=1` in `scripts/verify/run-all-validation.sh`. Core: `scripts/lib/ei_matrix_onchain_readiness_audit.py`. |
| smom-dbis-138 root `forge test` | Uses `foundry.toml` `[profile.default] skip` for legacy Uniswap V2 vendor trees (0.5/0.6 solc); scoped work still uses `bash scripts/forge/scope.sh …` |
| cWUSDT Mainnet USD pricing (on-chain + runbook) | `./scripts/deployment/price-cw-token-mainnet.sh``docs/03-deployment/CW_TOKEN_USD_PRICING_RUNBOOK.md` |
| Deployer LP balances (mesh inventory) | `python3 scripts/deployment/check-deployer-lp-balances.py` — scans `deployment-status.json` + `reports/extraction/promod-uniswap-v2-live-pair-discovery-latest.json`; **UniV2** `lpToken` = pair; **DODO DVM** LP shares = `balanceOf(pool)`; on failure, probes `_BASE_TOKEN_` / `_BASE_CAPITAL_TOKEN_` / `_QUOTE_CAPITAL_TOKEN_` + extra public RPCs (`--no-resolve-dodo` skips; `--chain-id N` for one chain). JSON: `lpTokenAddress`, `lpResolution`, `lpBalances[]`. Use `--deployer` / `DEPLOYER_ADDRESS` if no `PRIVATE_KEY` |
| Etherscan Value $0 for Mainnet `cW*` | Listing path (CoinGecko/CMC), not a contract toggle — `docs/04-configuration/coingecko/ETHERSCAN_USD_VALUE_MAINNET_TOKENS.md` |
| Verify contracts on explorers (all networks) | `cd smom-dbis-138 && ./scripts/deployment/verify-all-networks-explorers.sh` — Blockscout 138, Etherscan + multichain `cW*`, Avax/Arb bridges, optional Cronos/Wemix/CCIPLogger |
| Operator (LAN + secrets) | `./scripts/run-all-operator-tasks-from-lan.sh` (use `--skip-backup` if `NPM_PASSWORD` unset; backup also needs `NPM_EMAIL` in `.env`) |
| Remote SSH to dev VM (5700 / `192.168.11.59`) for runner & deploy API | [DEV_VM_SSH_REMOTE_ACCESS.md](docs/04-configuration/DEV_VM_SSH_REMOTE_ACCESS.md); **move workstation `~/projects` → Dev VM:** [DEV_VM_WORKSTATION_MIGRATION_RUNBOOK.md](docs/04-configuration/DEV_VM_WORKSTATION_MIGRATION_RUNBOOK.md), `scripts/deployment/sync-local-projects-to-dev-vm.sh` (rsync code 23 on `--delete-remote`: `scripts/deployment/fix-dev-vm-srv-projects-ownership.sh`) |
| Operator (LAN + secrets) | `./scripts/run-all-operator-tasks-from-lan.sh` (use `--skip-backup` if `NPM_PASSWORD` unset) |
| Cloudflare bulk DNS → `PUBLIC_IP` | `./scripts/update-all-dns-to-public-ip.sh` — use **`--dry-run`** and **`--zone-only=sankofa.nexus`** (or `d-bis.org` / `mim4u.org` / `defi-oracle.io`) to limit scope; see script header. Prefer scoped **`CLOUDFLARE_API_TOKEN`** (see `.env.master.example`). |
## Git submodules

Submodule atomic-swap-dapp deleted from 3c6900d8ee

View File

@@ -20,5 +20,7 @@ liveBridgeRoute,138-WETH-25-ccip,live,bridge,138,25,WETH,0xC02aaA39b223FE8D0A0e5
liveBridgeRoute,138-WETH-42220-ccip,live,bridge,138,42220,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,,CCIP,0xcacfd227A040002e49e2e01626363071324f820a,LiFi,,,,
liveBridgeRoute,138-WETH-651940-alltra,live,bridge,138,651940,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,,ALT,0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc,LiFi,,,,
liveBridgeRoute,138-WETH10-1-ccip,live,bridge,138,1,WETH10,0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f,WETH10,0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f,,CCIP,0xe0E93247376aa097dB308B92e6Ba36bA015535D0,LiFi,,,,
blockedOrPlannedRoute,651940-public-dex-routes,planned,swap,651940,651940,,,,,,,,,,,,Alltra same-chain settlement remains documentation-only: no deployed PMM or Uniswap venue inventory is published in canonical deployment status, and HYDX/AlltraDEX router-factory-pool addresses are still not committed in-repo.
blockedOrPlannedRoute,138-weth-1111-ccip,planned,bridge,138,1111,,,,,,,,,,,,"Wemix bridge contracts are deployed and destinations are wired, but the current Chain 138 CCIP router still rejects the Wemix selector with `CCIPRouter: chain not supported`; the WEMIX-side LINK balances are also zero and no successful proof transfer has been recorded."
blockedOrPlannedRoute,138-compliant-stable-to-weth-bridgeable,blocked,swap-bridge-swap,138,1,cUSDT|cUSDC|cEURT,,,,,,,,,,,"No live public cUSDT/WETH, cUSDC/WETH, or cEURT/WETH pool on Chain 138."
blockedOrPlannedRoute,651940-public-dex-routes,planned,swap,651940,651940,,,,,,,,,,,,Uniswap V2/V3 and DODO are env placeholders only; no pool addresses are documented in-repo.
blockedOrPlannedRoute,cw-edge-pools-public-chains,planned,swap,1,43114,,,,,,,,,,,,"cW* token addresses exist on several public chains, but deployment-status.json contains no PMM pools."
blockedOrPlannedRoute,138-weth-1111-ccip,planned,bridge,138,1111,,,,,,,,,,,,Wemix bridge is pending funding and deployment.
1 kind routeId status routeType fromChainId toChainId tokenInSymbol tokenInAddress tokenOutSymbol tokenOutAddress hopCount bridgeType bridgeAddress aggregatorFamilies tags intermediateSymbols legRefs notesOrReason
20 liveBridgeRoute 138-WETH-42220-ccip live bridge 138 42220 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 CCIP 0xcacfd227A040002e49e2e01626363071324f820a LiFi
21 liveBridgeRoute 138-WETH-651940-alltra live bridge 138 651940 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 ALT 0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc LiFi
22 liveBridgeRoute 138-WETH10-1-ccip live bridge 138 1 WETH10 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f WETH10 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f CCIP 0xe0E93247376aa097dB308B92e6Ba36bA015535D0 LiFi
23 blockedOrPlannedRoute 651940-public-dex-routes 138-compliant-stable-to-weth-bridgeable planned blocked swap swap-bridge-swap 651940 138 651940 1 cUSDT|cUSDC|cEURT Alltra same-chain settlement remains documentation-only: no deployed PMM or Uniswap venue inventory is published in canonical deployment status No live public cUSDT/WETH, cUSDC/WETH, or cEURT/WETH pool on Chain 138.
24 blockedOrPlannedRoute 138-weth-1111-ccip 651940-public-dex-routes planned bridge swap 138 651940 1111 651940 Wemix bridge contracts are deployed and destinations are wired, but the current Chain 138 CCIP router still rejects the Wemix selector with `CCIPRouter: chain not supported`; the WEMIX-side LINK balances are also zero and no successful proof transfer has been recorded. Uniswap V2/V3 and DODO are env placeholders only; no pool addresses are documented in-repo.
25 blockedOrPlannedRoute cw-edge-pools-public-chains planned swap 1 43114 cW* token addresses exist on several public chains, but deployment-status.json contains no PMM pools.
26 blockedOrPlannedRoute 138-weth-1111-ccip planned bridge 138 1111 Wemix bridge is pending funding and deployment.

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +0,0 @@
{
"description": "Copy to config/all-mainnet-canary-evidence.json after live canary swaps. Each row needs real transaction hashes and observed balance deltas.",
"evidence": [
{
"poolId": "651940-uniswap_v2-wall-ausdc",
"status": "canary_passed",
"generatedAt": "2026-04-29T00:00:00.000Z",
"canaryTransactions": [
{
"amountLabel": "seed",
"txHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"sourceToken": "WALL",
"destinationToken": "AUSDC",
"observedInputRaw": "0",
"observedOutputRaw": "0"
}
],
"notes": [
"Replace with real canary transaction evidence before applying."
]
}
]
}

View File

@@ -1,498 +0,0 @@
{
"description": "ALL Mainnet canary evidence recorded from live canary transactions executed with deployer wallet 0x4A666F96fC8764181194447A7dFdb7d471b301C8.",
"evidence": [
{
"poolId": "651940-dodo_pmm-wall-ausdc",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x727cea66f601b514b0d82c4bc93c29fbc09047e8185c146a05564dce7916829c",
"fundingTransferTxHash": "0x65f8d2e15556c26b46dd7323a90cb174279fc6bd0e7002a868553dc990bfa656",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "AUSDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet DODO PMM WALL/AUSDC."
],
"status": "production"
},
{
"poolId": "651940-uniswap_v2-wall-ausdc",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x0b76149f25e36919637fbeab10056e45d8ab7757454174966842c3f52f53dd5c",
"approvalTxHash": "0xc33d872d15628cfe521552ccc9a4b908f31df59189764468775b4557826514b6",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "AUSDC",
"executor": "UniswapV2Router.swapExactTokensForTokens"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet Uniswap V2 WALL/AUSDC."
],
"status": "production"
},
{
"poolId": "651940-dodo_pmm-wall-ausdt",
"generatedAt": "2026-04-30T06:58:00Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x6b74c3b6816eb67409268a6e3b108fd631d278baf0fd57524a63c60c995bded3",
"fundingTransferTxHash": "0x2e1540c484abac9049e383a16fc35a5b6b81a33bd70183b80b20f94533dbe141",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "AUSDT",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet DODO PMM WALL/AUSDT."
],
"status": "production"
},
{
"poolId": "137-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x4f68cdb0502b0fd50602013e54cbf898556a5c1181d8009f9b0c166dfccf5ce7",
"fundingTransferTxHash": "0x2b2721dd505f82488b05f32810f7e94b3a712e9b459b638be9b8ea34c20925d9",
"amountInRaw": "1",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Polygon DODO PMM cWUSDC/USDC."
],
"status": "production"
},
{
"poolId": "137-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x9c946c7c912e2eabe960c752041b533948e85e2a1603c80de80c5b0ee447908d",
"fundingTransferTxHash": "0xcac8b9187325869f164f6b7cd5464fcf46dce6be83ef04d760e7ecc21de7d40d",
"amountInRaw": "1",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Polygon DODO PMM cWUSDT/USDT."
],
"status": "production"
},
{
"poolId": "651940-uniswap_v2-usdt-ausdc",
"generatedAt": "2026-04-30T07:30:00Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xa5479400c203922b0e29a4c438daeeeef6f99b847d617f029e7978c1beba6b2b",
"approvalTxHash": "0xe4e73ff7d9c4a998e4cca1fcbf847d351171c0c026b11e798a0c1dc2bb6b4f12",
"fundingSwapTxHash": "0x39bddcca6160e2df5c7595350f9d911c73e0e7bfe59595fae2c3248576962d5b",
"fundingApprovalTxHash": "0x238bae3818d16a95711c19657dbd08bc076ef3fde7fedb7291ed514d2e090684",
"amountInRaw": "1000000",
"tokenIn": "USDT",
"tokenOut": "AUSDC",
"executor": "UniswapV2Router.swapExactTokensForTokens"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet Uniswap V2 USDT/AUSDC after acquiring USDT inventory via AUSDC/USDT."
],
"status": "production"
},
{
"poolId": "651940-uniswap_v2-wall-usdt",
"generatedAt": "2026-04-30T07:30:00Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x7b6a3d5dedc775e9b0f73de4e0a89bdd004f82c451d7cccf1e2178e5893d487c",
"approvalTxHash": "0xdd7985b4535915523831f989e054e6333af6b84e589c67791e73cce7acbff6a6",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "USDT",
"executor": "UniswapV2Router.swapExactTokensForTokens"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet Uniswap V2 WALL/USDT."
],
"status": "production"
},
{
"poolId": "42220-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T00:00:00.000-07:00",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x32d3869f987d558e392fd01aab77968d9cad1d90da71be1db90061f58d5c14b1",
"fundingTransferTxHash": "0x8ecd2a68f5dc3f2ab471ccc7ea8fdce16064029b6792bce7a387d943326fa1d6",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Celo DODO PMM cWUSDC/USDC after deployer-funded seed liquidity."
],
"status": "production"
},
{
"poolId": "42220-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T00:00:00.000-07:00",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x0498a0484f6707e0f8019b8803a8aed932f33f587a57186cc37bcdc594393094",
"fundingTransferTxHash": "0xd4182a6e116df30544097851892f379d67af2b33fc2374bb0204a6450dcecea4",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Celo DODO PMM cWUSDT/USDT after deployer-funded seed liquidity."
],
"status": "production"
},
{
"poolId": "56-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x85a62d3d5b23878ec17a6fa7b89e7f8218970cae7a99a9b4b7fd4bd9756e70ea",
"fundingTransferTxHash": "0x86081d0142d9d35062873599754cd7ea70f02449c002fa4f94f5673cccafdc6c",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "56-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x4a1373fb637f26bb2e9e1f05db333081ec9beeb70d03f7085c57700902ab41e3",
"fundingTransferTxHash": "0xb4b952d588be03f8a59bfb38cc71311d2191de86373f59248b11f9b9c59bf1bc",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "8453-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xe1fd7a1268cbb205ef3f47cc730cc1a06b5b81f491fc86ad6a2c7cef355c0752",
"fundingTransferTxHash": "0xe2ffeff928685f8fc4c050e0c6736d10c0ea48a65d65fe7c2ea560b3729ce5b8",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "8453-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x6c9e3129cd8b9f81022b27160e3bbce828f033afb40b670742318df67b309126",
"fundingTransferTxHash": "0xa6b837616c42073f6afb85bc0a6a4cab77dfe1e3925fd5bfbe7d1a92c31c4f57",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "42161-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xb27ffc20e1b993751342d7a76da70c1ec6190a4f67f52313b36beb0e9d49a12a",
"fundingTransferTxHash": "0x6cbeec16f67bb92df6bfbe0659c3d6098c96bd32b5917d001fb53587fa988d8a",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "43114-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xfdbea3b4a196335b0b128befbd43a17916f2ec95787ab99651cbfd355e2bd2e5",
"fundingTransferTxHash": "0x4bafb7ecf6988bac594860bb9d2f33030557b467d09c371033ae4f4867469550",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "43114-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x6aa323b5d4abae31ef13f2d01972725fa8c939aee9fbd8326aad4910e3a33c91",
"fundingTransferTxHash": "0x8f1d905595aa540e32bcefd03a146dca39bce6aafe6d14d5b6731c583cb922f6",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "25-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x3d4fbd2ffdec9b2402cfa391b49dab9918ed30def3cd6edc43e4d6cae502df72",
"fundingTransferTxHash": "0x539702d9d5808c579023bc52f54bacb0327d886b6f969ae5d2830bd286749692",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "25-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xd97ce616c7074301d66163a880798bf6a2165140320ccc440f80581972915fe0",
"fundingTransferTxHash": "0x3beff83366f24ba3fa0cec70aaae08b3edce1d1e8d56a9fbd094de97d5d653e7",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "100-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xc63f257b2dc91621c4a260af3b88068ae92d2390cbbf44b4a971551b4b8b1c21",
"fundingTransferTxHash": "0x4c2bfe8c3cbe4d35121489448fd93d7d61e48812574485c0a4afe3aff4e7522e",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "100-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x29538d2cbd34b2f726fa8f696037dd176e0c463d7cc98ee6d4686182b0602b7d",
"fundingTransferTxHash": "0x864c92f1ef26b949d6ad4178e063846bf9c85bb9d5d516de4e63e2afb147fc48",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "1-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:15:42.476Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xb485735ec59594e7a83d91feb98350cac490d28b0fc0418674d29e64dd93f0a5",
"fundingTransferTxHash": "0x80b2e141625a78c870ad80875ccc3fab0aa3d4ed6b64e324239fc9b30caed54c",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "1-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:15:42.476Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "quote_to_base",
"txHash": "0x6407c89bed9b1631a793c63e0a1f17d8be994eda7b56dbc25b94377df4dada9a",
"fundingTransferTxHash": "0x829936195c802b93b385fb9bb1c75ed3e657319a7e89433a1e9e2581761b49ea",
"amountInRaw": "100",
"tokenIn": "USDT",
"tokenOut": "cWUSDT",
"executor": "MockDVMPool.transfer_then_sellQuote"
}
],
"notes": [
"Replacement pool reverse canary swap executed after replacing nonstandard DODO surface; quote-to-base path avoids mainnet USDT non-standard transfer return behavior on sellBase."
],
"status": "production"
},
{
"poolId": "42161-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T11:18:00.000Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"status": "production",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x1c8aee3f0a3d7c3dfd1c53471b65a56fe34d514b84721fef2eafd40581259997",
"fundingTransferTxHash": "0x020a5c922757816f82542cd0d0e623b8120db9b2816de528b110854d3164cd9f",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Official DODO DVM canary swap executed after DODOAtomicSeeder funding."
]
},
{
"poolId": "10-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:24:25.038Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x8b27405ff031288cb8f298309b10742efc844ab22d515c731a61c0e7054295e9",
"fundingTransferTxHash": "0xf7f089b5e1aa6b52f414de874ebd94f6f7b23da1dfc9158e9da63b21ea9aa10c",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed on Optimism after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "10-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:36:38.117Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "quote_to_base",
"txHash": "0xf3244685f8e0a0704d549a2bf9a980380c5fb06611e1765e77caf1a62238b506",
"fundingTransferTxHash": "0xdb912224b13137710b1723ff3b5fc9c7b752a642ffc1fc4a9e1a277a0bedf147",
"amountInRaw": "100",
"tokenIn": "USDT",
"tokenOut": "cWUSDT",
"executor": "MockDVMPool.transfer_then_sellQuote"
}
],
"notes": [
"Replacement pool reverse canary swap executed on Optimism after retained seed remediation and successful buyShares."
],
"status": "production"
}
]
}

View File

@@ -1,147 +0,0 @@
{
"name": "ALL Mainnet Enhanced Router Deployment Evidence",
"version": "0.1.0",
"generatedAt": "2026-04-29T05:52:00Z",
"chainId": 651940,
"network": "ALL Mainnet (Alltra)",
"evmVersion": "paris",
"reason": "ALL Mainnet RPC/runtime rejected Cancun bytecode with BadInstruction; Paris bytecode was used for live deployment.",
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
"contracts": {
"dodoPmmProvider": {
"address": "0x36F65027D21e151F0b7810bae1E94b225AC7Ba9e",
"transactionHash": "0xd2e69b556e84786338fd526ba149d1f88488a07190d081f935d7fffbe9d1b2e0",
"constructorArgs": {
"dodoPmmIntegration": "0x8528E268F3b8C94208d09D131ACa3Ea93Bad57c7",
"admin": "0x4A666F96fC8764181194447A7dFdb7d471b301C8"
}
},
"enhancedSwapRouterV2": {
"address": "0xb905fEfA56b028221E2Bc248Bbcd41141dc7aeD3",
"transactionHash": "0x2c5d409b6e06cbfb69d8e251240d830d624625a4d505cc963edb65b55623bc79",
"constructorArgs": {
"weth": "0x798F6762BB40d6801A593459d08F890603D3979C",
"usdt": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e",
"usdc": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881",
"daiSlot": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"daiSlotNote": "AUSDT is used as the third stablecoin slot for ALL Mainnet; no canonical ALL DAI token is committed."
}
},
"intentBridgeCoordinatorV2": {
"address": "0x9276ae27d9c624B43dbE43494f34A9c5F0233a0B",
"transactionHash": "0x5695b3f9ec59e09d5e4f8569ea8af31578ced0a56aba885a7c475a5187aadd3d"
},
"adapters": {
"dodo": {
"address": "0x391D192BED6188c4DaB4C93c078bD18432687474",
"transactionHash": "0xc4a036a6fff5eb9886e797559017cf8709505d13f39f5feddf055967cf9b4648",
"enabled": true
},
"dodoV3": {
"address": "0x97Ce874142625134aEEBDF42B5E7bB806e731D25",
"transactionHash": "0x5ad21f59b823adbc2cebc1e9c45ab3f8f0f1286e46a290c09c0667f499577136",
"enabled": false
},
"uniswapV3": {
"address": "0xBF75F3401de20bebBB1CBb678499941807E3E040",
"transactionHash": "0x081b86cc99306e694ef9daa3d3f9dc7f35ce91dce08c57ddaedcdd4b9a00008d",
"enabled": false
},
"balancer": {
"address": "0xDE7F15AF1D84e3694f7E966293d20e64Fc04d9fF",
"transactionHash": "0xa4f30c029fa062ae1b481786950ab0243541ce5b0b859fc534b55f7b444ba83c",
"enabled": false
},
"curve": {
"address": "0x753D2b0a723992D7B174D6e19F7b7Cb74be8D61a",
"transactionHash": "0xcdf0ff9723aedab96aeaa0b8f57f25ad6075f9467e0d19f3b842fb17c0bb6a79",
"enabled": false
},
"oneInch": {
"address": "0x487090bbb7d17875281692d582a11B445b3A7AC7",
"transactionHash": "0x4d0dd682b8e22812a258fee497c07e5cecfbc1228f413e67d9fe7b24f327a926",
"enabled": false
}
}
},
"routes": [
{
"poolId": "651940-dodo_pmm-wall-ausdc",
"provider": "dodo",
"tokenA": {
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"tokenB": {
"symbol": "AUSDC",
"address": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881"
},
"poolAddress": "0x7b81Dad382BBB57e91a80389bA48e41Abd10794F",
"status": "quoteable",
"verification": {
"amountInRaw": "1000000",
"amountOutRaw": "1999999",
"slippageBps": 30,
"routerQuoteExecutable": true
}
},
{
"poolId": "651940-dodo_pmm-wall-ausdt",
"provider": "dodo",
"tokenA": {
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"tokenB": {
"symbol": "AUSDT",
"address": "0x015B1897Ed5279930bC2Be46F661894d219292A6"
},
"poolAddress": "0x8D9bB238B6a76a438B116Ff22F5F7535191D49b4",
"status": "quoteable",
"verification": {
"amountInRaw": "1000000",
"amountOutRaw": "1999999",
"slippageBps": 30,
"routerQuoteExecutable": true
}
}
],
"providerStatus": {
"enabled": [
"dodo"
],
"disabled": [
"dodoV3",
"uniswapV3",
"balancer",
"curve",
"oneInch",
"partner"
]
},
"remainingOptionalBlockers": [
"HYDX-native router/factory is not deployed or not committed in inventory.",
"Uniswap V3 factory/router/quoter/pool stack is not deployed or not committed in inventory."
],
"disabledRoutes": [
{
"poolId": "651940-dodo_pmm-wall-usdt",
"provider": "dodo",
"tokenA": {
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"tokenB": {
"symbol": "USDT",
"address": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e"
},
"poolAddress": "0x261D7e1447EE88398B2b5a274D49454F5B86800E",
"status": "disabled_wrong_quote_asset",
"reason": "AUSDT is the canonical ALL Mainnet cUSDT surface for this routing set.",
"disabledTransactions": [
"0x79f171ddc9977e99bb894bf7ff7a11a430441cc1285e7ecd747907ef3f23a0c4",
"0xec74f92e287cf1e193e791462f66b35cf9487ece8e343108fbdd3de760dc5c55"
]
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,68 +0,0 @@
{
"generatedAt": "2026-04-29T06:18:00Z",
"chainId": 651940,
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
"fee": 3000,
"tokens": {
"WETH": "0x798F6762BB40d6801A593459d08F890603D3979C",
"WALL": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4",
"AUSDT": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"token0": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"token1": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"contracts": {
"nftDescriptorLibrary": "0xb53E8A0A19fB381537c6f28D37b7C2f7DC29EF02",
"nonfungibleTokenPositionDescriptor": "0x2a76C73458A0C11df4e0E43004598480d6D1E768",
"factory": "0xF1a334465C5DD628492780B39Be68D561A9AecA2",
"swapRouter": "0xe9Ea1B70803c18C4CEb8839D5D68681c7903511B",
"quoter": "0x0ecC56077325863c80cbe516D63e0afAFf7EA579",
"quoterV2": "0x024Ff178BaB7e6fa1794c3A216D2B299C3F295d2",
"nonfungiblePositionManager": "0xD29422211e1f2C1015FBb5dC2004657Dd8318aF6",
"pool": "0x9e0FC06BA367b51a0aBc5c0924306088DBB0e9c4"
},
"transactions": {
"nftDescriptorLibrary": "0x774202382ec2d29cced671b34c2b951682f60d3e60afd7fe64c13488cb341e32",
"nonfungibleTokenPositionDescriptor": "0xc6b98fc36e4c3b1d4d2e80efd4acacc31e2af2ff45de04f9fb066dcfffd380d3",
"factory": "0xb6e46b6d145cc707f12f4cf8980bf81d7b5b8d3bea9416737a7465c186b0fefd",
"swapRouter": "0x5fd7d021e8ac1bad918a1eb470a116f9dc6e750c102a5512e05391858296cc53",
"quoter": "0x0d5c14d3264c5abd70990349911a6eb3076f41feb2db93ccf74b2de022cd087f",
"quoterV2": "0x774327c7e7a7650fbfd9d28a8becbd88f86eb8f942a825980052bc50484aa54c",
"nonfungiblePositionManager": "0xe5be3fa83bd676051e2cc5ff990768d3de87e49a387d94be77352eaf1c38545f"
},
"poolState": {
"sqrtPriceX96": "79228162514264337593543950336",
"tick": 0,
"liquidity": "1000000000000000000"
},
"name": "ALL Mainnet Uniswap V3 Deployment Evidence",
"version": "0.1.0",
"network": "ALL Mainnet (Alltra)",
"evmVersion": "upstream-uniswap-artifacts-solc-0.7.x",
"packageSources": {
"v3Core": "@uniswap/v3-core@1.0.1",
"v3Periphery": "@uniswap/v3-periphery@1.4.4",
"swapRouterContracts": "@uniswap/swap-router-contracts@1.3.1"
},
"poolStateAfterRouterSwap": {
"testedAt": "2026-04-29T06:17:00Z",
"swapRouter": "0xe9Ea1B70803c18C4CEb8839D5D68681c7903511B",
"direction": "WALL_TO_AUSDT",
"amountInRaw": "1000000",
"amountOutRaw": "996999",
"approveTxHash": "0x572d1c6b2d0cdf6248913cd995e80196fbe0717017411c2251637afbfa825e1f",
"swapTxHash": "0xddf85aed18a6d872ac72d4f57b241e44946881e404f4f17cb7271180c8caa183",
"gasUsed": "119111"
},
"enhancedRouterIntegration": {
"enhancedSwapRouterV2": "0xb905fEfA56b028221E2Bc248Bbcd41141dc7aeD3",
"routeConfigured": true,
"providerEnabled": false,
"providerDisabledReason": "Existing UniswapV3RouteExecutorAdapter uses staticcall into the official Uniswap Quoter; the upstream Quoter is callable directly but does not return through that adapter staticcall path. Standalone SwapRouter/Quoter/Pool stack is live; enhanced-router V3 provider remains disabled until adapter quote compatibility is fixed.",
"routeSetTransactions": [
"0xa40b24889ab3ad985936562ee3690dafd14bfb1676ff49806a6fcb45c7704ef5",
"0x848fd6c7cedaebe7787c2f15a931b73afde709dac100cb745eab2d9eaa6da86c"
],
"providerEnableTxHash": "0x4b430081582e1f2db5fedc904b8e90e137480dcae2f1e0a41dd25490f05394c7",
"providerDisableTxHash": "0x78b8ce4fdc296585ace36dd8c8318731cc5526115e712b14d1ad630c4f63aba6"
}
}

View File

@@ -1,27 +0,0 @@
{
"description": "Copy to config/all-mainnet-vault-assignments.json and replace placeholder addresses with approved per-role vaults/multisigs. The apply script refuses placeholders.",
"defaultByRole": {
"treasury_reserve": "0x0000000000000000000000000000000000000000",
"bridge_liquidity": "0x0000000000000000000000000000000000000000",
"protocol_adapter": "0x0000000000000000000000000000000000000000",
"emergency_withdraw": "0x0000000000000000000000000000000000000000",
"single_sided_inventory": "0x0000000000000000000000000000000000000000"
},
"byChain": {
"651940": {
"treasury_reserve": "0x0000000000000000000000000000000000000000",
"bridge_liquidity": "0x0000000000000000000000000000000000000000",
"protocol_adapter": "0x0000000000000000000000000000000000000000",
"emergency_withdraw": "0x0000000000000000000000000000000000000000",
"single_sided_inventory": "0x0000000000000000000000000000000000000000"
}
},
"byPoolId": {
"651940-uniswap_v2-wall-ausdc": {
"treasury_reserve": "0x0000000000000000000000000000000000000000",
"bridge_liquidity": "0x0000000000000000000000000000000000000000",
"protocol_adapter": "0x0000000000000000000000000000000000000000",
"emergency_withdraw": "0x0000000000000000000000000000000000000000"
}
}
}

View File

@@ -1,20 +0,0 @@
{
"description": "Operational vault assignments generated from smom-dbis-138/.env public addresses. No private material is stored here.",
"defaultByRole": {
"treasury_reserve": "0x74eccf9affb0e0938c2168ebdf7ef63a26964483",
"bridge_liquidity": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8",
"protocol_adapter": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"emergency_withdraw": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"single_sided_inventory": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8"
},
"byChain": {
"651940": {
"treasury_reserve": "0x74eccf9affb0e0938c2168ebdf7ef63a26964483",
"bridge_liquidity": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8",
"protocol_adapter": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"emergency_withdraw": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"single_sided_inventory": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8"
}
},
"byPoolId": {}
}

View File

@@ -1,973 +0,0 @@
{
"name": "ALL Mainnet Non-DODO Protocol Surface",
"version": "0.1.0",
"updated": "2026-04-29",
"chainId": 651940,
"network": "ALL Mainnet (Alltra)",
"status": "bridge_live_enhanced_router_partial_swap_inventory_published",
"summary": {
"bridgeOnlyLive": false,
"sameChainSwapInventoryPublished": true,
"notes": [
"The Chain 138 <-> 651940 AlltraAdapter bridge is live.",
"This file documents the known non-DODO Alltra protocol and token surface plus the committed same-chain inventory fragments that have real factory/router/pool addresses in config/all-mainnet-pool-creation-matrix.json.",
"Same-chain inventory publication is partial: production routing remains gated by required vault assignments, funding, live reserve reads, and canary evidence.",
"ALL Mainnet EnhancedSwapRouterV2 is deployed and DODO-backed routes are wired for the committed WALL/AUSDC and WALL/AUSDT DODO PMM pools; the earlier WALL/USDT route is disabled because AUSDT is the canonical ALL Mainnet cUSDT surface."
]
},
"classificationFramework": {
"category": [
"tokenized-fiat",
"stablecoin",
"wrapped-native",
"dex-token",
"defi-token",
"governance-token",
"utility-token",
"rwa-token",
"commodity-token",
"other"
],
"instrumentType": [
"emoney",
"deposit-token",
"fiat-backed-stablecoin",
"wrapped-native",
"protocol-token",
"governance-token",
"utility-token",
"other"
],
"backingAssets": [
"cash",
"cash-equivalents",
"bank-deposits",
"treasuries",
"commodity-reserves",
"protocol-utility",
"native-gas-asset",
"unknown"
],
"metadataDomains": [
"backingMetadata",
"bridgeMetadata",
"cashMetadata",
"commodityMetadata",
"reserveMetadata",
"securityMetadata",
"settlementMetadata"
],
"notes": [
"Use category for the broad asset bucket.",
"Use instrumentType, issuerType, claimType, backingAssets, capabilities, and tags for legal, reserve, and integration semantics.",
"Use cash only as a backing, redemption, or settlement asset descriptor; do not use cash as the token category unless the instrument is literally cash-equivalent legal tender.",
"Use commodityMetadata only when the token directly references or is backed by a commodity reserve.",
"Use securityMetadata for pause/admin/monitoring controls; unknown means not yet committed in this inventory, not absent on-chain.",
"GRU tags use lowercase namespace:value strings and include the version, for example gru:v2."
]
},
"documentedTokens": [
{
"symbol": "AUSDT",
"address": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"decimals": 18,
"category": "tokenized-fiat",
"instrumentType": "fiat-backed-stablecoin",
"issuerType": "token-issuer-unverified",
"currencyCode": "USD",
"claimType": "claim-on-issuer-unverified",
"settlementAssetClass": "fiat",
"backingAssets": [
"cash",
"cash-equivalents"
],
"gruVersion": "v2",
"gruFamilySymbol": "cAUSDT",
"gruTransportRole": "all-mainnet-primary-surface",
"tags": [
"tokenized-fiat",
"fiat:usd",
"backing:cash",
"backing:cash-equivalents",
"gru:v2",
"gru:m1",
"gru:transport",
"gru:all-mainnet",
"gru:causdt-family"
],
"backingMetadata": {
"backingModel": "fiat-reserve-backed",
"backingAssetClasses": [
"cash",
"cash-equivalents"
],
"backingVerificationStatus": "reserve-disclosure-not-committed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "live-canonical-target",
"bridgeKind": "AlltraAdapter",
"sourceChainId": 138,
"destinationChainId": 651940,
"sourceSymbol": "cUSDT",
"sourceAddress": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"destinationSymbol": "AUSDT",
"destinationAddress": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"adapterAddress": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc",
"bridgeCanonicalAssetVersion": "gru-v2",
"bridgeMirroredAssetVersion": "all-mainnet-surface"
},
"cashMetadata": {
"cashRole": "reserve-and-redemption-asset-class",
"currency": "USD",
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "issuer-or-bridge-reserve-unverified",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "pending-disclosure",
"riskTier": "policy-review-required",
"registryStatus": "documented-surface-not-stablecoin-registry-entry"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-issuer-bridge-or-peg-risk",
"monitoring": [
"peg-deviation",
"bridge-health",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "fiat",
"settlementCurrency": "USD",
"settlementFinalityDomain": "off-chain-regulated-ledger-or-issuer-domain",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": true,
"redemptionPath": "issuer-or-bridge-redemption-unverified",
"parRedemption": "unverified"
},
"status": "verified"
},
{
"symbol": "USDT",
"address": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e",
"decimals": 18,
"category": "tokenized-fiat",
"instrumentType": "fiat-backed-stablecoin",
"issuerType": "token-issuer-unverified",
"currencyCode": "USD",
"claimType": "claim-on-issuer-unverified",
"settlementAssetClass": "fiat",
"backingAssets": [
"cash",
"cash-equivalents"
],
"gruVersion": "v2",
"gruFamilySymbol": "cUSDT",
"gruTransportRole": "all-mainnet-usdt-surface",
"tags": [
"tokenized-fiat",
"fiat:usd",
"backing:cash",
"backing:cash-equivalents",
"gru:v2",
"gru:m1",
"gru:transport",
"gru:all-mainnet",
"gru:cusdt-family"
],
"backingMetadata": {
"backingModel": "fiat-reserve-backed",
"backingAssetClasses": [
"cash",
"cash-equivalents"
],
"backingVerificationStatus": "reserve-disclosure-not-committed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "documented-token-not-canonical-138-to-651940-target",
"bridgeKind": "unknown-or-noncanonical",
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "USDT",
"destinationAddress": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e",
"adapterAddress": null,
"bridgeCanonicalAssetVersion": null,
"bridgeMirroredAssetVersion": "all-mainnet-surface"
},
"cashMetadata": {
"cashRole": "reserve-and-redemption-asset-class",
"currency": "USD",
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "issuer-reserve-unverified",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "pending-disclosure",
"riskTier": "policy-review-required",
"registryStatus": "documented-surface-not-stablecoin-registry-entry"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-issuer-or-peg-risk",
"monitoring": [
"peg-deviation",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "fiat",
"settlementCurrency": "USD",
"settlementFinalityDomain": "off-chain-issuer-domain",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": true,
"redemptionPath": "issuer-redemption-unverified",
"parRedemption": "unverified"
},
"status": "verified"
},
{
"symbol": "USDC",
"address": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881",
"decimals": 18,
"category": "tokenized-fiat",
"instrumentType": "fiat-backed-stablecoin",
"issuerType": "token-issuer-unverified",
"currencyCode": "USD",
"claimType": "claim-on-issuer-unverified",
"settlementAssetClass": "fiat",
"backingAssets": [
"cash",
"cash-equivalents"
],
"gruVersion": "v2",
"gruFamilySymbol": "cUSDC",
"gruTransportRole": "all-mainnet-usdc-surface",
"tags": [
"tokenized-fiat",
"fiat:usd",
"backing:cash",
"backing:cash-equivalents",
"gru:v2",
"gru:m1",
"gru:transport",
"gru:all-mainnet",
"gru:cusdc-family"
],
"backingMetadata": {
"backingModel": "fiat-reserve-backed",
"backingAssetClasses": [
"cash",
"cash-equivalents"
],
"backingVerificationStatus": "reserve-disclosure-not-committed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "live-canonical-target",
"bridgeKind": "AlltraAdapter",
"sourceChainId": 138,
"destinationChainId": 651940,
"sourceSymbol": "cUSDC",
"sourceAddress": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"destinationSymbol": "USDC",
"destinationAddress": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881",
"adapterAddress": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc",
"bridgeCanonicalAssetVersion": "gru-v2",
"bridgeMirroredAssetVersion": "all-mainnet-surface"
},
"cashMetadata": {
"cashRole": "reserve-and-redemption-asset-class",
"currency": "USD",
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "issuer-or-bridge-reserve-unverified",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "pending-disclosure",
"riskTier": "policy-review-required",
"registryStatus": "documented-surface-not-stablecoin-registry-entry"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-issuer-bridge-or-peg-risk",
"monitoring": [
"peg-deviation",
"bridge-health",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "fiat",
"settlementCurrency": "USD",
"settlementFinalityDomain": "off-chain-regulated-ledger-or-issuer-domain",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": true,
"redemptionPath": "issuer-or-bridge-redemption-unverified",
"parRedemption": "unverified"
},
"status": "verified"
},
{
"symbol": "WETH",
"address": "0x798F6762BB40d6801A593459d08F890603D3979C",
"decimals": 18,
"category": "wrapped-native",
"instrumentType": "wrapped-native",
"issuerType": "wrapper-contract",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"native-gas-asset"
],
"gruVersion": null,
"tags": [
"wrapped-native",
"gas:eth",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "wrapped-native-escrow",
"backingAssetClasses": [
"native-gas-asset"
],
"backingVerificationStatus": "wrapper-contract-address-verified",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "mapped-138-to-651940",
"bridgeKind": "AlltraAdapter",
"sourceChainId": 138,
"destinationChainId": 651940,
"sourceSymbol": "WETH9",
"sourceAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"destinationSymbol": "WETH",
"destinationAddress": "0x798F6762BB40d6801A593459d08F890603D3979C",
"adapterAddress": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc"
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "native-asset-wrapper-escrow",
"reserveDisclosureRef": null,
"reserveAccountRef": "wrapper-contract-balance",
"proofOfReserveRef": null,
"reserveVerificationStatus": "contract-balance-verifiable-on-chain",
"riskTier": "bridge-and-wrapper-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-bridge-or-wrapper-risk",
"monitoring": [
"bridge-health",
"wrapper-contract-balance",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "ETH",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "unwrap-or-bridge-withdrawal",
"parRedemption": "one-to-one-native-asset-when-wrapper-solvent"
},
"status": "verified"
},
{
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4",
"decimals": 18,
"category": "wrapped-native",
"instrumentType": "wrapped-native",
"issuerType": "wrapper-contract",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"native-gas-asset"
],
"gruVersion": null,
"tags": [
"wrapped-native",
"gas:all",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "wrapped-native-escrow",
"backingAssetClasses": [
"native-gas-asset"
],
"backingVerificationStatus": "wrapper-contract-address-verified",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "documented-all-mainnet-native-wrapper",
"bridgeKind": "native-wrapper",
"sourceChainId": 651940,
"destinationChainId": 651940,
"sourceSymbol": "ALL",
"sourceAddress": null,
"destinationSymbol": "WALL",
"destinationAddress": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "native-asset-wrapper-escrow",
"reserveDisclosureRef": null,
"reserveAccountRef": "wrapper-contract-balance",
"proofOfReserveRef": null,
"reserveVerificationStatus": "contract-balance-verifiable-on-chain",
"riskTier": "wrapper-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-wrapper-risk",
"monitoring": [
"wrapper-contract-balance",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "ALL",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "unwrap-to-native-all",
"parRedemption": "one-to-one-native-asset-when-wrapper-solvent"
},
"status": "verified"
},
{
"symbol": "HYDX",
"address": "0x0d9793861AEB9244AD1B34375a83A6730F6AdD38",
"decimals": 18,
"category": "dex-token",
"instrumentType": "protocol-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"dex-token",
"protocol:hydx",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "HYDX",
"destinationAddress": "0x0d9793861AEB9244AD1B34375a83A6730F6AdD38",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-protocol-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "protocol-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes",
"protocol-surface-confirmation"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "HYDX",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
},
{
"symbol": "HYBX",
"address": "0x1839f77eBed7F388c7035f7061B4B8Ef0E72317a",
"decimals": 8,
"category": "defi-token",
"instrumentType": "protocol-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"defi-token",
"protocol:hybx",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "HYBX",
"destinationAddress": "0x1839f77eBed7F388c7035f7061B4B8Ef0E72317a",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-protocol-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "protocol-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "HYBX",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
},
{
"symbol": "CHT",
"address": "0xE59Bb804F4884FcEA183a4A67B1bb04f4a4567bc",
"decimals": 8,
"category": "defi-token",
"instrumentType": "utility-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"defi-token",
"utility-token",
"protocol:cht",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "CHT",
"destinationAddress": "0xE59Bb804F4884FcEA183a4A67B1bb04f4a4567bc",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-utility-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "utility-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "CHT",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
},
{
"symbol": "AUDA",
"address": "0x690740f055A41FA7669f5a379Bf71B0cDF353073",
"decimals": 18,
"category": "defi-token",
"instrumentType": "protocol-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"defi-token",
"protocol:auda",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "AUDA",
"destinationAddress": "0x690740f055A41FA7669f5a379Bf71B0cDF353073",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-protocol-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "protocol-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "AUDA",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
}
],
"protocols": [
{
"name": "AlltraDEX / EnhancedSwapRouter",
"family": "custom_router",
"status": "partial_live_dodo_backed_router_deployed",
"factoryAddress": null,
"routerAddress": "0xb905fEfA56b028221E2Bc248Bbcd41141dc7aeD3",
"coordinatorAddress": "0x9276ae27d9c624B43dbE43494f34A9c5F0233a0B",
"providerAddress": "0x36F65027D21e151F0b7810bae1E94b225AC7Ba9e",
"adapters": {
"dodo": "0x391D192BED6188c4DaB4C93c078bD18432687474",
"dodoV3": "0x97Ce874142625134aEEBDF42B5E7bB806e731D25",
"uniswapV3": "0xBF75F3401de20bebBB1CBb678499941807E3E040",
"balancer": "0xDE7F15AF1D84e3694f7E966293d20e64Fc04d9fF",
"curve": "0x753D2b0a723992D7B174D6e19F7b7Cb74be8D61a",
"oneInch": "0x487090bbb7d17875281692d582a11B445b3A7AC7"
},
"enabledProviders": [
"dodo"
],
"disabledProviders": [
"dodoV3",
"uniswapV3",
"balancer",
"curve",
"oneInch",
"partner"
],
"publishedRoutePoolIds": [
"651940-dodo_pmm-wall-ausdc",
"651940-dodo_pmm-wall-ausdt"
],
"deploymentEvidenceRef": "config/all-mainnet-enhanced-router-deployment.json",
"notes": [
"Documented in docs/11-references/ALL_MAINNET_ROUTING_ENGINE.md as the intended same-chain swap surface.",
"EnhancedSwapRouterV2 is deployed on ALL Mainnet with DODO as the only enabled provider.",
"Optional adapters were deployed for future wiring but are disabled until canonical provider targets and pools are committed.",
"WALL/AUSDC and WALL/AUSDT are funded and quoteable through the router provider path; the earlier WALL/USDT route is disabled because AUSDT is the canonical quote asset."
],
"disabledRoutePoolIds": [
"651940-dodo_pmm-wall-usdt"
]
},
{
"name": "HYDX",
"family": "custom_router",
"status": "token_present_protocol_surface_pending",
"factoryAddress": null,
"routerAddress": null,
"envKeys": [
"CHAIN_651940_HYDX_FACTORY",
"CHAIN_651940_HYDX_ROUTER",
"CHAIN_651940_HYDX_START_BLOCK",
"CHAIN_651940_HYDX_PAIR_CREATED_EVENT"
],
"notes": [
"The HYDX token is documented and verified on ALL Mainnet.",
"The repo expects factory/router discovery via env, but no canonical HYDX-native router inventory is currently committed.",
"HYDX currently has committed same-chain exposure through the ALL Mainnet Uniswap V2 HYDX/WALL pool, not through a dedicated HYDX-native router surface."
]
},
{
"name": "Uniswap V2",
"family": "uniswap_v2",
"status": "partial_live_inventory_published",
"factoryAddress": "0x3C3ED514691C06c89Bf6626B05D22991E8924c93",
"routerAddress": "0xED04Ee8307C0656207AF5aFE3926AE2380052940",
"inventoryRef": "config/all-mainnet-pool-creation-matrix.json",
"publishedPoolIds": [
"651940-uniswap_v2-wall-ausdc",
"651940-uniswap_v2-wall-usdt",
"651940-uniswap_v2-usdt-ausdc",
"651940-uniswap_v2-hydx-wall"
],
"notes": [
"Factory/router and multiple pair addresses are committed in config/all-mainnet-pool-creation-matrix.json.",
"Required spend rows remain gated until vault assignments and canary evidence are recorded."
]
},
{
"name": "Uniswap V3",
"family": "uniswap_v3",
"status": "standalone_live_router_quoter_pool_deployed",
"factoryAddress": "0xF1a334465C5DD628492780B39Be68D561A9AecA2",
"routerAddress": "0xe9Ea1B70803c18C4CEb8839D5D68681c7903511B",
"notes": [
"Official Uniswap V3 factory, legacy SwapRouter, Quoter, QuoterV2, NonfungiblePositionManager, and AUSDT/WALL 0.30% pool are deployed on ALL Mainnet.",
"The standalone SwapRouter path was tested with a tiny WALL -> AUSDT canary swap.",
"EnhancedSwapRouterV2 route config was written, but provider 1 remains disabled because the current UniswapV3RouteExecutorAdapter staticcall quote path is incompatible with the upstream Quoter behavior."
],
"quoterAddress": "0x0ecC56077325863c80cbe516D63e0afAFf7EA579",
"quoterV2Address": "0x024Ff178BaB7e6fa1794c3A216D2B299C3F295d2",
"positionManagerAddress": "0xD29422211e1f2C1015FBb5dC2004657Dd8318aF6",
"descriptorAddress": "0x2a76C73458A0C11df4e0E43004598480d6D1E768",
"poolAddress": "0x9e0FC06BA367b51a0aBc5c0924306088DBB0e9c4",
"inventoryRef": "config/all-mainnet-pool-creation-matrix.json",
"deploymentEvidenceRef": "config/all-mainnet-uniswap-v3-deployment.json",
"publishedPoolIds": [
"651940-uniswap_v3-wall-ausdt"
],
"enhancedRouterProviderStatus": "disabled_adapter_quote_compatibility_pending"
},
{
"name": "DODO PMM",
"family": "dodo_pmm",
"status": "partial_live_inventory_published",
"factoryAddress": "0x8a3403aef8d40c0F4AfaF6Dc2000A537EbC863c2",
"routerAddress": "0x8528E268F3b8C94208d09D131ACa3Ea93Bad57c7",
"inventoryRef": "config/all-mainnet-pool-creation-matrix.json",
"publishedPoolIds": [
"651940-dodo_pmm-wall-ausdc",
"651940-dodo_pmm-wall-ausdt"
],
"notes": [
"DVM factory, DVM factory adapter, integration/router, and DODO PMM pool addresses are committed in config/all-mainnet-pool-creation-matrix.json; WALL/AUSDT supersedes the earlier WALL/USDT row for canonical spend routing.",
"Required spend rows remain gated until vault assignments, funding, live reserve reads, and canary evidence are recorded."
],
"disabledPoolIds": [
"651940-dodo_pmm-wall-usdt"
]
}
],
"bridgeSurface": {
"adapter": {
"name": "AlltraAdapter",
"address": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc",
"status": "live"
},
"supportedBridgeAssets": [
"cUSDC",
"cUSDT"
]
},
"nextTasks": [
"Keep the disabled WALL/USDT row historical-only unless explicitly re-approved for USDT routing.",
"Commit canonical factory/router metadata once a HYDX-native routing address is confirmed.",
"Deploy or import canonical Uniswap V3 factory/router/quoter/pool inventory before enabling the ALL Mainnet Uniswap V3 adapter.",
"Add pool-level addresses and verification artifacts before enabling public route generation from disabled optional protocol providers."
]
}

View File

@@ -1,6 +1,6 @@
# Node Permissioning — SINGLE SOURCE OF TRUTH for all Besu nodes
# Must match config/besu-node-lists/static-nodes.json and be deployed to every node.
# Generated by scripts/besu/collect-enodes-from-all-besu-nodes.sh — 37 enodes after live adds of 2103 (.217), 1509 (.219), and 1510 (.220).
# Generated by scripts/besu/collect-enodes-from-all-besu-nodes.sh — 34 enodes (incl. Putu RPC 2307/2308 .237/.238).
nodes-allowlist=[
"enode://2221dd9fc65c9082d4a937832cba9f6759981888df6798407c390bd153f4332c152ea5d03dd9d9cda74d7990fb3479a5c4ba7166269322be9790eed9ebdcfe24@192.168.11.100:30303",
@@ -17,11 +17,8 @@ nodes-allowlist=[
"enode://5f048208071f2a3036128433e1e4a647a7683abd8bc0f27d063e2933ced983accdfc44998666f3be711e4eff27511142d9989775b86cdbe28c79b74409fc36bb@192.168.11.214:30303",
"enode://8da1b586e2e98f521f07148d3bb5d81fde151ce3d5738b51bc36e2c81de1aaa5404ce31e991b4393bbe471934f0a9a31f78d1d7c17c1899c3e2dde5e9f16eb24@192.168.11.244:30303",
"enode://acd46d31913b8379f075467cd88d2ea650d33474d2f9546426da4a414fe92233584c9d8c2e1ea9962fa4257c20b66c9434d0488e51c632f285205d6a379cfbd6@192.168.11.245:30303",
"enode://8a3337adcc2d177caf3aee26b3b6077d9adf126c580e12f352743ca07828f056ceb1d5fb1a06287e2dbbe19043fcc4b9bdd2ca9ae2a2c9142cf0cc3a549bfc68@192.168.11.219:30303",
"enode://09fe518689c54a34c3dac8aebf3c94bfc390f4bae143a80c57d92a502414df0689d12a2243ff9376c2f44a419894d934b4f47783ced31ea9668522078854e58f@192.168.11.220:30303",
"enode://6cdc892fa09afa2b05c21cc9a1193a86cf0d195ce81b02a270d8bb987f78ca98ad90d907670796c90fc6e4eaf3b4cae6c0c15871e2564de063beceb4bbfc6532@192.168.11.211:30303",
"enode://e53713bb77ad9f39e8a04b9c82aadddd3449220167f546bca8e9f36f6ebf60ae003e48ac293790e2bd7b0aca382777db9eca61d6f048c04f9dbe65eedb79d893@192.168.11.212:30303?discport=0",
"enode://e871ff3b1f58b9a87122e552b2404e1893bf92ae74d4fa6bc2bd002d0350c506ea452f4aefa1a3497ef32694c4beb48bf8a006d2b82f57649c90b22f59044aad@192.168.11.217:30303?discport=0",
"enode://07daf3d64079faa3982bc8be7aa86c24ef21eca4565aae4a7fd963c55c728de0639d80663834634edf113b9f047d690232ae23423c64979961db4b6449aa6dfd@192.168.11.221:30303",
"enode://868bd957d6d887944deac0190161a3db7d1316a022e40a2383d5c334aa3fb8bc7ca36f165b6fb377b77d202fec46f3840f2f659b6a47807b7ce9b944b8382f10@192.168.11.232:30303",
"enode://688f271d94c7995600ae36d25aa2fb92fea0c52e50e86c598be8966515458c1408b67fba76e1f771073e4774a6e399588443da63394ea25d56e6ca36f2288e00@192.168.11.233:30303",

View File

@@ -13,11 +13,8 @@
"enode://5f048208071f2a3036128433e1e4a647a7683abd8bc0f27d063e2933ced983accdfc44998666f3be711e4eff27511142d9989775b86cdbe28c79b74409fc36bb@192.168.11.214:30303",
"enode://8da1b586e2e98f521f07148d3bb5d81fde151ce3d5738b51bc36e2c81de1aaa5404ce31e991b4393bbe471934f0a9a31f78d1d7c17c1899c3e2dde5e9f16eb24@192.168.11.244:30303",
"enode://acd46d31913b8379f075467cd88d2ea650d33474d2f9546426da4a414fe92233584c9d8c2e1ea9962fa4257c20b66c9434d0488e51c632f285205d6a379cfbd6@192.168.11.245:30303",
"enode://8a3337adcc2d177caf3aee26b3b6077d9adf126c580e12f352743ca07828f056ceb1d5fb1a06287e2dbbe19043fcc4b9bdd2ca9ae2a2c9142cf0cc3a549bfc68@192.168.11.219:30303",
"enode://09fe518689c54a34c3dac8aebf3c94bfc390f4bae143a80c57d92a502414df0689d12a2243ff9376c2f44a419894d934b4f47783ced31ea9668522078854e58f@192.168.11.220:30303",
"enode://6cdc892fa09afa2b05c21cc9a1193a86cf0d195ce81b02a270d8bb987f78ca98ad90d907670796c90fc6e4eaf3b4cae6c0c15871e2564de063beceb4bbfc6532@192.168.11.211:30303",
"enode://e53713bb77ad9f39e8a04b9c82aadddd3449220167f546bca8e9f36f6ebf60ae003e48ac293790e2bd7b0aca382777db9eca61d6f048c04f9dbe65eedb79d893@192.168.11.212:30303?discport=0",
"enode://e871ff3b1f58b9a87122e552b2404e1893bf92ae74d4fa6bc2bd002d0350c506ea452f4aefa1a3497ef32694c4beb48bf8a006d2b82f57649c90b22f59044aad@192.168.11.217:30303?discport=0",
"enode://07daf3d64079faa3982bc8be7aa86c24ef21eca4565aae4a7fd963c55c728de0639d80663834634edf113b9f047d690232ae23423c64979961db4b6449aa6dfd@192.168.11.221:30303",
"enode://868bd957d6d887944deac0190161a3db7d1316a022e40a2383d5c334aa3fb8bc7ca36f165b6fb377b77d202fec46f3840f2f659b6a47807b7ce9b944b8382f10@192.168.11.232:30303",
"enode://688f271d94c7995600ae36d25aa2fb92fea0c52e50e86c598be8966515458c1408b67fba76e1f771073e4774a6e399588443da63394ea25d56e6ca36f2288e00@192.168.11.233:30303",

View File

@@ -1,16 +0,0 @@
# Cosmos ↔ Chain 138 — optional config templates
**Purpose:** Machine- and human-readable templates for [COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md](../../docs/11-references/COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md) streams **AE**. These files are **examples** until operators copy them to a secured location and fill live values.
| File | Stream |
|------|--------|
| [corridor-decision.example.md](corridor-decision.example.md) | A (Noble / stable corridor decisions) |
| [osmosis-routing-flags.example.yaml](osmosis-routing-flags.example.yaml) | B (routing mode, limits) |
| [denom-trace.example.json](denom-trace.example.json) | C (IBC trace / hash schema) |
| [cosmwasm-integration.example.md](cosmwasm-integration.example.md) | D (Wasm app pairing) |
| [cross-cutting.example.md](cross-cutting.example.md) | E (relayers, wallets, audits, closure) |
| [STATUS.md](STATUS.md) | Doc vs live completion tracking |
**Gaps and inconsistencies (repo-wide audit, includes PMM/CCIP drift):** [COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md](../../docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md)
Do **not** commit production keys, channel IDs, or signed vendor contracts here.

View File

@@ -1,18 +0,0 @@
# Streams AE — completion status (repo)
**Updated:** 2026-05-09
**Meaning:** **Doc** = runbook + templates in this repo are complete. **Live** = requires operator decisions, contracts, keys, and vendor chains (not asserted here).
**Last LAN operator pass (repo standard scripts, not Cosmos-specific):** `run-completable-tasks-from-anywhere.sh` OK; `run-all-operator-tasks-from-lan.sh --skip-backup` OK (NPMplus proxy refresh + Blockscout verification). Does not deploy IBC or Noble.
| Stream | Doc / template | Live bridge & ops |
|--------|------------------|-------------------|
| **A** Noble / stable corridor | Complete (runbook §3 + `corridor-decision.example.md`) | Not live — operator fills decision record and executes on-chain when adopted |
| **B** Osmosis / Cosmos DEX routing | Complete (runbook §4 + `osmosis-routing-flags.example.yaml`) | Not live — route engine integration when adopted |
| **C** Generic IBC allowlist | Complete (runbook §5 + `denom-trace.example.json`) | Not live — governance allowlist + registry rows when adopted |
| **D** CosmWasm app ↔ 138 | Complete (runbook §6 + `cosmwasm-integration.example.md`) | Not live — per-app deploy when adopted |
| **E** Cross-cutting + program closure | Complete (runbook §7 + `cross-cutting.example.md`) | Partially live only if AD adopted (relayers, audits, etc.) |
**Deferred / out of scope until adoption:** Any mainnet IBC channel, Noble mint path, Osmosis swap execution, CosmWasm ICA, and production relayer keys.
**Full gaps + inconsistency inventory:** [COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md](../../docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md)

View File

@@ -1,43 +0,0 @@
# Stream A — corridor decision record (example)
Copy to internal wiki or secured docs. Replace all `TODO`.
## A1 Source and bridge stack
| Field | Value |
|-------|--------|
| Source chain | TODO (e.g. Noble) |
| Bridge vendor / stack | TODO (e.g. general-message bridge, CCTP path, or oracle-operated) |
| Vendor documentation URL | TODO |
## A2 138-side contracts and roles
| Role | Address or multisig | Notes |
|------|---------------------|--------|
| Admin | TODO | |
| Pauser | TODO | |
| Oracle or verifier | TODO | |
## A3 Denom → Chain 138 token mapping
| IBC denom / trace | Chain 138 token address | Decimals | Canonical ref |
|-------------------|-------------------------|----------|---------------|
| TODO | TODO | TODO | EXPLORER_TOKEN_LIST_CROSSCHECK + ADDRESS_MATRIX |
## A4 ChainRegistry
| chainIdentifier | adapter (138) | additionalData summary |
|-----------------|----------------|-------------------------|
| TODO | TODO | TODO (channel IDs, bridge contract on counterparty) |
## A5 Liquidity
| Venue | Amount / policy | Owner sign-off |
|-------|-----------------|----------------|
| TODO | TODO | TODO |
## A6 E2E evidence
| Direction | Tx hash / link | Date |
|-----------|----------------|------|
| TODO | TODO | TODO |

View File

@@ -1,29 +0,0 @@
# Stream D — CosmWasm app pairing (example)
## D1 Contract pins
| Network | Contract address | Code ID | Migrate policy |
|---------|------------------|---------|------------------|
| TODO | TODO | TODO | frozen / multisig / DAO |
## D2 Control path
Chosen path: TODO (ICA / ICQ / GMP to EVM / off-chain coordinator + oracle)
Attach sequence diagram URL: TODO
## D3 Chain 138 counterpart
| Contract | Address | Purpose |
|----------|---------|---------|
| TODO | TODO | vault / adapter / settlement |
## D4 Hyperledger
Required: yes / no — if yes, cite Cacti/Firefly task from MULTI_CHAIN_DEPLOYMENT_GUIDE Phase 4.
## D5 Wasm CI
Repository: TODO
Build command: TODO
Upgrade runbook URL: TODO

View File

@@ -1,43 +0,0 @@
# Stream E — cross-cutting + program closure (example)
## E1 IBC relayers
| Channel | Relayer operator | Key custody | SLA |
|---------|------------------|-------------|-----|
| TODO | TODO | TODO | TODO |
## E2 Wallets (Cosmos legs)
| Wallet | Supported flows | User doc URL |
|--------|-----------------|--------------|
| Keplr | TODO | TODO |
| Leap | TODO | TODO |
| MetaMask Snap (if used) | TODO | TODO |
## E3 Indexing and observability
| System | Cosmos / IBC events | Retention |
|--------|---------------------|-----------|
| TODO | TODO | TODO |
## E4 Audits
| Scope | Vendor | Report URL | Date |
|-------|--------|------------|------|
| TODO bridge | TODO | TODO | TODO |
## E5 Rate limits
| Surface | Limit | Enforced by |
|---------|-------|-------------|
| Mint API | TODO | TODO |
| On-chain mint/burn | TODO | contract |
## E6 Program closure
| Milestone | Owner | Date |
|-----------|-------|------|
| Preconditions P1P5 signed | TODO | TODO |
| Streams adopted (product AD + closure E) | TODO | TODO |
| CHAINS_AND_PROTOCOLS + GALATIC updated for live only | TODO | TODO |
| Annual review scheduled | TODO | TODO |

View File

@@ -1,19 +0,0 @@
{
"$schema_comment": "Stream C — example IBC trace record for allowlist + ChainRegistry.additionalData mirror",
"tier": "TIER_1_GOVERNANCE",
"ibc_hash": "TODO_ibc_hash_or_full_denom",
"path": [
{
"port_id": "transfer",
"channel_id": "TODO",
"counterparty_chain_id": "TODO",
"counterparty_channel_id": "TODO"
}
],
"human_readable_denom": "TODO",
"bridge_stack_id": "TODO_vendor_or_internal_id",
"chain138_token_address": "0x0000000000000000000000000000000000000000",
"decimals": 6,
"canonical_crosscheck_ref": "docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md",
"user_warning_long_trace": true
}

View File

@@ -1,13 +0,0 @@
# Stream B — routing integration flags (example)
# Copy into route-engine or service config when Osmosis/Cosmos DEX leg is adopted.
cosmos_dex_routing:
mode: quotes_only # quotes_only | executable_swaps
max_slippage_bps: 50
ibc_timeout_seconds: 600
quote_ttl_seconds: 30
chains_allowlist: [] # e.g. cosmoshub-4, osmosis-1 — fill when live
fail_closed_on_timeout: true
aggregator_alignment:
use_axelar_squid_patterns: false # set true when wired to explorer/squid stack
review_doc: docs/11-references/BRIDGE_CHAINS_IMPLEMENTATION_COMPLETE.md

View File

@@ -1,166 +0,0 @@
{
"schemaVersion": "1.0.0",
"updated": "2026-04-24",
"canonicalRootDoc": "docs/02-architecture/DBIS_ECOSYSTEM_TECHNICAL_MASTER_PLAN.md",
"workstreams": [
{
"id": "W1",
"title": "Besu / Chain 138 infrastructure and RPC topology",
"status": "live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [],
"sourceDocs": [
"docs/06-besu/BESU_NODE_CONFIGURATION_MAP_20260424.md",
"dbis_chain_138_technical_master_plan.md",
"docs/03-deployment/PROXMOX_VE_OPERATIONAL_DEPLOYMENT_TEMPLATE.md"
],
"acceptanceGate": "Canonical Besu inventory reconciled across all active cluster hosts, block production healthy, and no unexplained canonical node gaps remain.",
"evidenceArtifact": "scripts/verify/check-cluster-besu-inventory.sh --json"
},
{
"id": "W2",
"title": "Liquidity, PMM, bridge, and public routing coverage",
"status": "partially live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W1"
],
"sourceDocs": [
"docs/11-references/DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md",
"docs/11-references/DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md",
"reports/status/LIVE_ECOSYSTEM_FINANCIAL_INVENTORY_AND_ROUTING_GAPS_20260424.md"
],
"acceptanceGate": "Machine-readable route coverage is current and can distinguish live, partial, and blocked routing paths for stablecoins and top assets.",
"evidenceArtifact": "config/public-routing-coverage-matrix.json"
},
{
"id": "W3",
"title": "Phoenix deploy/control-plane integration",
"status": "partially live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W1",
"W2",
"W4"
],
"sourceDocs": [
"docs/04-configuration/PHOENIX_SANKOFA_OPERATOR_HANDOFF.md",
"docs/02-architecture/DBIS_ECOSYSTEM_TECHNICAL_MASTER_PLAN.md"
],
"acceptanceGate": "Phoenix deploy/control APIs expose current canonical manifests and validated deploy targets without drifting from repo truth.",
"evidenceArtifact": "scripts/validation/validate-config-files.sh"
},
{
"id": "W4",
"title": "URA manifest, policy profiles, registry, and route confidence",
"status": "repo-implemented",
"horizon": "near_term",
"ownerClass": "repo",
"dependsOn": [
"W2",
"W3"
],
"sourceDocs": [
"docs/04-configuration/universal-resource-activation/URA_MANIFEST_AUTOMATION_IMPLEMENTATION_TRACKER.md",
"docs/04-configuration/universal-resource-activation/README.md",
"config/universal-resource-activation/manifest.json"
],
"acceptanceGate": "URA manifest and policy profiles validate, registry references are coherent, and route-confidence can be produced as a first-class control-plane artifact.",
"evidenceArtifact": "scripts/validate/validate-universal-resource-activation.mjs"
},
{
"id": "W5",
"title": "DBIS RTGS / DBIS Rail / OMNL / settlement sidecars",
"status": "partially live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W4",
"W6"
],
"sourceDocs": [
"docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md",
"docs/dbis-rail/DBIS_RAIL_SETTLEMENT_EVENT_SOURCES.md",
"docs/03-deployment/DBIS_RTGS_FIRST_SLICE_ARCHITECTURE.md"
],
"acceptanceGate": "First-slice settlement boundaries, event sources, custody roles, and sidecar responsibilities are explicit enough for production gating.",
"evidenceArtifact": "docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md"
},
{
"id": "W6",
"title": "Jurisdiction/compliance and onboarding matrices",
"status": "repo-implemented",
"horizon": "near_term",
"ownerClass": "repo",
"dependsOn": [
"W4"
],
"sourceDocs": [
"docs/04-configuration/compliance-matrices/README.md",
"docs/04-configuration/jurisdictions/JURISDICTION_CATALOG.md",
"docs/dbis-rail/DBIS_RAIL_JURISDICTION_TRACEABILITY.md"
],
"acceptanceGate": "Jurisdiction and onboarding matrices are machine-readable enough to gate policy profiles and institutional activation paths.",
"evidenceArtifact": "config/jurisdictions/catalog.v1.json"
},
{
"id": "W7",
"title": "Identity / Hyperledger / interoperability stack",
"status": "planned",
"horizon": "long_term",
"ownerClass": "external",
"dependsOn": [
"W5",
"W6"
],
"sourceDocs": [
"docs/03-deployment/DBIS_HYPERLEDGER_RUNTIME_STATUS.md",
"docs/03-deployment/DBIS_HYPERLEDGER_IDENTITY_STACK_DECISION.md"
],
"acceptanceGate": "Identity and interoperability slices have explicit runtime ownership, promotion gates, and environment-specific deployment decisions.",
"evidenceArtifact": "docs/03-deployment/DBIS_HYPERLEDGER_RUNTIME_STATUS.md"
},
{
"id": "W8",
"title": "Observability, verification, evidence, and operator readiness",
"status": "live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W1",
"W2",
"W3",
"W4",
"W5",
"W6"
],
"sourceDocs": [
"docs/00-meta/OPERATOR_HANDOFF_2026_04_24.md",
"docs/00-meta/OPERATOR_READY_CHECKLIST.md",
"docs/04-configuration/universal-resource-activation/URA_OPERATIONAL_READINESS_CHECKLIST.md"
],
"acceptanceGate": "Validation, health, and operator readiness outputs are current enough to act as production gates rather than ad hoc references.",
"evidenceArtifact": "scripts/verify/run-all-validation.sh"
}
],
"blockedBy": [
{
"id": "B1",
"class": "external",
"description": "Some institutional integrations, custody counterparties, and settlement-sidecar dependencies cannot be closed from repo-only work."
},
{
"id": "B2",
"class": "external",
"description": "Some public-network expansion lanes remain constrained by third-party bridge, exchange, or destination-liquidity realities."
},
{
"id": "B3",
"class": "operator",
"description": "Operator promotion of URA, sidecar, and policy-aware runtime slices still trails repo implementation in several areas."
}
]
}

View File

@@ -1,125 +0,0 @@
{
"chainId": 138,
"chainName": "Defi Oracle Meta Mainnet",
"defillamaSdkChainKey": "dfio_meta_main",
"chainProfile": {
"displayName": "Defi Oracle Meta",
"xHandle": "@DefiOracleMeta",
"xUrl": "https://x.com/DefiOracleMeta",
"note": "Canonical X profile for the Chain 138 / Defi Oracle Meta network narrative — distinct from third-party DEX protocol accounts used in per-protocol (e.g. DODO) listings."
},
"regulatoryFraming": "Compliant digital money / e-money settlement rail — TVL adapters measure on-chain contract balances, not issuer licensing status.",
"upstream": {
"defillamaAdapters": "https://github.com/DefiLlama/DefiLlama-Adapters",
"upstreamPullRequest": "https://github.com/DefiLlama/DefiLlama-Adapters/pull/19198",
"upstreamPullRequestState": "open",
"upstreamPullRequestStateAsOf": "2026-05-10",
"upstreamPullRequestLastGhCheckUtc": "2026-05-10T19:59Z",
"fork": "https://github.com/Defi-Oracle-Meta-Blockchain/DefiLlama-Adapters",
"defillamaServer": "https://github.com/DefiLlama/defillama-server",
"dimensionAdapters": "https://github.com/DefiLlama/dimension-adapters"
},
"implemented": {
"tvlAdapter": {
"protocol": "dodo",
"paths": [
"projects/dodo/index.js",
"projects/helper/chains.json",
"projects/helper/tokenMapping.js"
],
"factoryAddress": "0xc93870594C7f83A0aE076c2e30b494Efc526b68E",
"fromBlock": 3510162,
"stablecoinMappings": {
"cUSDT": {
"address": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"coingeckoId": "tether",
"decimals": 6
},
"cUSDC": {
"address": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"coingeckoId": "usd-coin",
"decimals": 6
}
}
},
"defillamaServerLocalBranch": {
"note": "Prepare PR from fork — see checklist doc",
"paths": [
"defi/src/utils/normalizeChain.ts",
"defi/src/protocols/data1.ts"
],
"summary": "Chain label + chainId 138 for UI; DODO AMM chains[] + oraclesBreakdown proof"
},
"dimensionAdaptersLocalBranch": {
"paths": ["helpers/chains.ts", "dexs/dodo/index.ts", "fees/dodo-fees.ts"],
"summary": "CHAIN.DFIO_META_MAIN added; fees/dex blocked on DODO GraphQL until chain 138 is supported"
}
},
"blockedExternal": [
{
"component": "DODO dashboard GraphQL (dex volume)",
"detail": "DashboardChainData volume selection has no dfio_meta_main field — api.dodoex.io rejects query",
"tracked": "dexs/dodo/index.ts header comment"
},
{
"component": "DODO gateway fees API",
"detail": "chain=dfio_meta_main spot-check returned mixed networks with top pairs",
"tracked": "fees/dodo-fees.ts header comment"
}
],
"forms": {
"tokenRights": {
"url": "https://forms.defillama.com/token-rights",
"draftDoc": "docs/04-configuration/defillama/DEFILLAMA_CHAIN138_SUBMISSION_CHECKLIST.md"
},
"rwaSubmission": {
"url": "https://forms.defillama.com/rwa-submission",
"draftDoc": "docs/04-configuration/defillama/DEFILLAMA_CHAIN138_SUBMISSION_CHECKLIST.md"
}
},
"optionalFollowUps": [
{
"metric": "fees_revenue_dex_volume",
"repository": "dimension-adapters",
"note": "Unblocked when DODO GraphQL exposes dfio_meta_main volume and chain-scoped fees"
},
{
"metric": "yields",
"repository": "yield-server",
"note": "Optional APY surfaces for eligible pools"
},
{
"metric": "stablecoins_pegged",
"repository": "peggedassets-server",
"note": "Optional circulating/peg series for compliant stables"
},
{
"metric": "gitea_mirror",
"note": "scripts/deployment/mirror-github-fork-to-gitea.sh"
},
{
"metric": "dimension_adapters_docs",
"documentation": "https://docs.llama.fi/list-your-project/other-dashboards",
"repository": "dimension-adapters",
"note": "Fees/dexs after API unblock"
},
{
"metric": "oracles_tvs",
"documentation": "https://docs.llama.fi/list-your-project/oracles-tvs",
"repository": "defillama-server",
"note": "oraclesBreakdown proof populated on DODO AMM entry; extend with chain-specific rows when documented"
},
{
"metric": "tvl_helpers_docs",
"documentation": "https://docs.llama.fi/list-your-project/functions-weve-written-so-you-dont-have-to",
"note": "sumTokensExport, getBlock, LP unwrap — use for treasury/vault/LP TVL patterns"
}
],
"docs": {
"ecosystemMap": "docs/04-configuration/defillama/CHAIN138_DEFILLAMA_ECOSYSTEM_MAP.md",
"submissionChecklist": "docs/04-configuration/defillama/DEFILLAMA_CHAIN138_SUBMISSION_CHECKLIST.md",
"dodoDfioMetaMainTvlNote": "docs/11-references/DEFILLAMA_DFIO_META_MAIN_DODO_ADAPTER_TVL.md",
"masterReference": "docs/00-meta/METAMASK_GRU_DEFILLAMA_CHAIN138_MASTER_REFERENCE.md",
"repositoriesAndPrs": "docs/00-meta/REPOSITORIES_AND_PRS_CHAIN138.md"
}
}

View File

@@ -1,6 +1,6 @@
{
"registryVersion": 1,
"purpose": "Authoritative network codes for Elemental Imperium (33×33×6) wallet labels. Grid addresses are treasuries for sovereign nations in the EI model; ASNs are optional; add when assigned.",
"purpose": "Authoritative network codes for Elemental Imperium (33×33×6) wallet labels. ASNs are optional; add when assigned.",
"labelSpec": {
"id": "ei-wallet-label-v1",
"cellIdFormat": "EI-L{lpbca:02d}-B{branch:02d}-C{class}",

View File

@@ -1,122 +0,0 @@
{
"version": "1.0.0",
"updated": "2026-05-09",
"component": "DBIS Engine X",
"purpose": "Automation policy for API-fed liquidity advice, XAUt-backed USDC capacity calculation, cW* output planning, on-chain execution gates, and endpoint reporting.",
"mode": {
"default": "read_only_advisor",
"liveExecutionRequires": [
"operator_approval",
"protected_transaction_rpc",
"fresh_live_quotes",
"funded_usdc_lender_or_public_quote_inventory",
"passing_solidity_preview",
"nonzero_iso_audit_peg_hashes"
]
},
"inputs": {
"requestedOutput": {
"symbolEnv": "ENGINE_X_REQUESTED_CW_SYMBOL",
"defaultSymbol": "cWUSDC",
"amountRawEnv": "ENGINE_X_REQUESTED_OUTPUT_RAW",
"amountUnitsEnv": "ENGINE_X_REQUESTED_OUTPUT_UNITS",
"supportedInitialSymbols": [
"cWUSDC"
]
},
"collateral": {
"symbol": "XAUt",
"availableRawEnv": "ENGINE_X_XAUT_AVAILABLE_RAW",
"availableUnitsEnv": "ENGINE_X_XAUT_AVAILABLE_UNITS",
"usdPrice6Env": "ENGINE_X_XAUT_USD_PRICE6",
"defaultUsdPrice6": "3226640000"
},
"risk": {
"ltvBpsEnv": "ENGINE_X_BORROW_LTV_BPS",
"defaultLtvBps": 7500,
"minHealthFactorBpsEnv": "ENGINE_X_BORROW_MIN_HEALTH_FACTOR_BPS",
"defaultMinHealthFactorBps": 11000,
"maxRoundTripLossBpsEnv": "ENGINE_X_MAX_ROUND_TRIP_LOSS_BPS",
"defaultMaxRoundTripLossBps": 100,
"maxPublicSwapLossBpsEnv": "ENGINE_X_MAX_PUBLIC_SWAP_LOSS_BPS",
"defaultMaxPublicSwapLossBps": 75,
"minGasReserveWeiEnv": "ENGINE_X_MIN_GAS_RESERVE_WEI",
"defaultMinGasReserveWei": "5000000000000000"
}
},
"feeds": {
"repoReports": [
"reports/status/mainnet-cwusdc-usdc-support-health-latest.json",
"reports/status/engine-x-public-indexed-readiness-latest.json",
"reports/status/engine-x-mev-defense-readiness-latest.json",
"reports/status/mainnet-cwusdc-weth-liquidity-surfaces-latest.json"
],
"onChainReadinessCommands": [
"pnpm engine-x:public-readiness",
"pnpm engine-x:mev-defense",
"pnpm engine-x:weth-liquidity-eval",
"python3 scripts/verify/check-mainnet-cwusdc-usdc-support-health.py"
],
"externalPublicationTargets": [
"token-aggregation public report API",
"CoinGecko tracker package",
"CoinMarketCap tracker package",
"Etherscan public transaction and pool pages",
"DexScreener and GeckoTerminal indexed pool pages",
"exchange listing or OTC due-diligence packet",
"Forex desk liquidity and proof packet"
]
},
"decisionGates": {
"apiAdvisor": [
"all required report feeds are present or regenerated",
"requested output token is supported",
"calculator produces positive capacity",
"all blocker fields are explicit"
],
"liveExecution": [
"MEV defense readiness is ready",
"selected liquidity surface has live indexable pool evidence",
"selected public swap has nonzero quote and minOut",
"USDC debt after loop is zero",
"XAUt collateral withdrawal is previewed after repayment",
"no route substitutes DODO, UniV2, UniV3, WETH, or USDC roles silently",
"operator has reviewed generated commands"
],
"publication": [
"on-chain transaction hashes are present",
"before and after reserves or slot0/liquidity are present",
"ISO 20022-style proof hash is present when applicable",
"audit envelope hash is present",
"peg proof hash is present",
"public endpoint package was regenerated after execution"
]
},
"automationPhases": [
{
"id": "phase_0_advisor",
"name": "Read-only API and calculator advice",
"broadcast": false
},
{
"id": "phase_1_canary",
"name": "Protected tiny public canary execution",
"broadcast": "operator_approved_only"
},
{
"id": "phase_2_liquidity_defense",
"name": "Automated protected rebalance and quote defense",
"broadcast": "after_canary_and_loss_limits"
},
{
"id": "phase_3_endpoint_publication",
"name": "Regenerate reports and publish endpoint packets",
"broadcast": false
},
{
"id": "phase_4_multi_asset_forex_crypto",
"name": "Extend cW* request symbols and FX/crypto endpoint packets",
"broadcast": "per_asset_policy"
}
]
}

View File

@@ -1,6 +1,6 @@
{
"version": "1.0.0",
"updated": "2026-05-08",
"updated": "2026-04-18",
"rail": "mainnet_cwusdc_usdc",
"network": {
"chainId": 1,
@@ -24,62 +24,6 @@
"poolAddress": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
"managedCycleScript": "smom-dbis-138/script/flash/RunManagedMainnetAaveCwusdcUsdcQuotePushCycle.s.sol:RunManagedMainnetAaveCwusdcUsdcQuotePushCycle"
},
"quoteDefenseSurfaces": [
{
"id": "mainnet-cwusdc-usdc-univ3-100",
"base": "cWUSDC",
"quote": "USDC",
"role": "primary_public_indexed_quote_defense",
"venue": "uniswap_v3_pool",
"poolAddress": "0x1Cf2e685682C7F7beF508F0Af15Dfb5CDda01ee3",
"fee": 100,
"routerAddress": "0xE592427A0AEce92De3Edee1F18E0157C05861564",
"quoterAddress": "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
"activeRange": {
"preferredLowerTick": -100,
"preferredUpperTick": 100,
"targetTick": 0
},
"defenseMode": "quote_side_tick_reentry_then_proof_swaps",
"automationStatus": "operator_review_required",
"notes": [
"Primary public/indexable quote-defense surface for tiny 1:1 canaries.",
"If current tick is below -100, first push quote side with USDC->cWUSDC until the old -100..100 position re-enters range.",
"Do not assume historical 75/75 or 85/85 liquidity is active; verify slot0 tick, active liquidity, and token balances before proof swaps."
]
},
{
"id": "mainnet-cwusdc-usdc-univ2",
"base": "cWUSDC",
"quote": "USDC",
"role": "secondary_public_indexed_quote_defense",
"venue": "uniswap_v2_pair",
"poolAddress": "0xC28706F899266b36BC43cc072b3a921BDf2C48D9",
"routerAddress": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
"defenseMode": "quote_side_reserve_repair",
"automationStatus": "capital_gated",
"notes": [
"Public/indexable reserve surface for larger swaps.",
"Use only after fresh reserve read and quote-side repair sizing.",
"Current role is secondary because the pair is quote-starved."
]
},
{
"id": "mainnet-cwusdc-usdc-dodo-managed",
"base": "cWUSDC",
"quote": "USDC",
"role": "managed_defended_quote_push",
"venue": "dodo_pmm",
"poolAddress": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
"defenseMode": "managed_quote_push_cycle",
"automationStatus": "capital_gated",
"notes": [
"Managed defended lane remains distinct from public indexed proof lanes.",
"Do not silently substitute this pool for the public spend settlement replacement pool.",
"Requires passing DODO quote preview and sufficient official Mainnet USDC quote inventory before automation."
]
}
],
"thresholds": {
"warnDeviationBps": 25,
"interveneDeviationBps": 75,
@@ -90,49 +34,20 @@
"managedCycle": {
"defaultHarvestSurplus": true,
"defaultGasHoldbackTargetRaw": 0,
"maxAutomatedFlashQuoteAmountRaw": 2964298,
"quoteAmountByDeviationBps": [
{
"minDeviationBps": 150,
"flashQuoteAmountRaw": 2964298
"flashQuoteAmountRaw": 250000000
},
{
"minDeviationBps": 75,
"flashQuoteAmountRaw": 1482149
"flashQuoteAmountRaw": 100000000
}
]
},
"mevDefense": {
"status": "required_for_sensitive_execution",
"failClosedByDefault": true,
"acceptedPrivateRpcEnvKeys": [
"ENGINE_X_PRIVATE_TX_RPC",
"MEV_BLOCKER_RPC_URL",
"FLASHBOTS_RPC_URL",
"BLOXROUTE_RPC_URL",
"BLINK_RPC_URL"
],
"publicBroadcastOverrideEnvKey": "ENGINE_X_ALLOW_PUBLIC_BROADCAST",
"disableGuardEnvKey": "ENGINE_X_MEV_PROTECTION",
"protectedActions": [
"engine-x-univ3-public-swap-proof",
"engine-x-univ2-public-indexed-loop",
"mainnet-cwusdc-usdc-univ2-canary-repair",
"engine-x-univ3-indexed-lp-migration"
],
"rules": [
"Use private/protected RPC for any live Engine X public-indexed swap, quote repair, LP migration, or rebalance.",
"Dry-runs and read-only health checks may use the normal Mainnet RPC.",
"Do not broadcast quote-defense transactions through the public mempool unless the operator explicitly sets ENGINE_X_ALLOW_PUBLIC_BROADCAST=1 for a reviewed canary.",
"Never print protected RPC URLs in reports; report only the configured provider label or env key."
]
},
"notes": [
"The public Uniswap V2 pair is for visible routing and discovery, not for hard parity guarantees on its own.",
"The UniV3 fee-100 pool is the preferred public/indexable quote-defense canary lane when its tick is in or near the configured active range.",
"When the public pair drifts beyond the intervention corridor, use the managed DODO quote-push stack as the first automated defense path.",
"Do not trust POOL_CWUSDC_USDC_MAINNET from dotenv blindly; this policy is the canonical defended venue binding.",
"Automation must select quoteDefenseSurfaces by explicit role and venue; never silently substitute UniV2, UniV3, or DODO for each other.",
"Automation is capped to the currently tested safe tranche until the defended lane is explicitly re-sized from fresh liquidity measurements."
"Do not trust POOL_CWUSDC_USDC_MAINNET from dotenv blindly; this policy is the canonical defended venue binding."
]
}

View File

@@ -1,52 +0,0 @@
# Besu Configuration for besu-sentry-1 (VMID: 1500)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.150"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -1,52 +0,0 @@
# Besu Configuration for besu-sentry-2 (VMID: 1501)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.151"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -1,52 +0,0 @@
# Besu Configuration for besu-sentry-3 (VMID: 1502)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.152"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -1,52 +0,0 @@
# Besu Configuration for besu-sentry-4 (VMID: 1503)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.153"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -1,52 +0,0 @@
# Besu Configuration for besu-sentry-ali (VMID: 1504)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.154"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -8,7 +8,7 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.244"
p2p-port=30303
max-peers=40
max-peers=32
discovery-enabled=true
# RPC
@@ -40,7 +40,6 @@ log-destination="CONSOLE"
# Sync
sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2
# Privacy

View File

@@ -8,7 +8,7 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.245"
p2p-port=30303
max-peers=40
max-peers=32
discovery-enabled=true
# RPC
@@ -40,7 +40,6 @@ log-destination="CONSOLE"
# Sync
sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2
# Privacy

View File

@@ -1,53 +0,0 @@
# Besu Configuration for besu-sentry-thirdweb-01 (VMID: 1509)
# Generated canonical per-node config for promoted sentry inventory.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.219"
p2p-port=30303
max-peers=40
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -1,53 +0,0 @@
# Besu Configuration for besu-sentry-thirdweb-02 (VMID: 1510)
# Generated canonical per-node config for promoted sentry inventory.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.220"
p2p-port=30303
max-peers=40
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.172"
p2p-port=30303
max-peers=40
discovery-enabled=false
max-peers=32
discovery-enabled=true
# RPC - Full Function (can deploy contracts, execute writes)
rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.173"
p2p-port=30303
max-peers=40
discovery-enabled=false
max-peers=32
discovery-enabled=true
# RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.174"
p2p-port=30303
max-peers=40
discovery-enabled=false
max-peers=32
discovery-enabled=true
# RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.246"
p2p-port=30303
max-peers=40
discovery-enabled=false
max-peers=32
discovery-enabled=true
# RPC - Full Function (can deploy contracts, execute writes)
rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.247"
p2p-port=30303
max-peers=40
discovery-enabled=false
max-peers=32
discovery-enabled=true
# RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138
p2p-host="192.168.11.248"
p2p-port=30303
max-peers=40
discovery-enabled=false
max-peers=32
discovery-enabled=true
# RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,12 +0,0 @@
# Gitea act_runner config templates
| File | CT | Purpose |
|------|-----|---------|
| `config-5700-heavy.yaml` | 5700 (`dev-vm`) | `ubuntu-latest-heavy` — large pnpm/validation jobs |
| `config-5701-standard.yaml` | 5701 (`gitea-runner-1`) | `ubuntu-latest` / `ubuntu-22.04` / `ubuntu-20.04` — default pool |
Deploy with `bash scripts/dev-vm/apply-act-runner-config.sh` from the repo root (LAN). Full procedure: `docs/04-configuration/GITEA_ACT_RUNNER_SETUP.md`.
**Networking:** keep **`container.network` empty** (`""` in YAML). act_runner attaches workflow **`services:`** to the same per-job Docker network as the job container. **`network: bridge`** isolates the job from service containers → Prisma **P1001** even when **`DATABASE_URL`** uses **`postgres`**.
**CI env:** in workflows with **`services: postgres:`**, set **`DATABASE_URL`** to **`...@postgres:5432/...`** (service id as host), not **`localhost`**.

View File

@@ -1,44 +0,0 @@
# act_runner — CT 5700 (dev-vm): heavy / monorepo CI (label ubuntu-latest-heavy).
# Applied by: bash scripts/dev-vm/apply-act-runner-config.sh
# Image: https://gitea.com/docker.gitea.com/runner-images
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
shutdown_timeout: 0s
insecure: false
fetch_timeout: 5s
fetch_interval: 5s
github_mirror: ''
labels:
- "ubuntu-latest-heavy:docker://docker.gitea.com/runner-images:ubuntu-latest"
cache:
enabled: true
dir: ""
host: ""
port: 0
external_server: ""
container:
# Empty: per-job user-defined network (GitHub Actions-compatible). Required so
# workflow `services:` (postgres, redis, …) share DNS with the job container.
# `network: bridge` = docker0 only → Prisma P1001 / "Can't reach postgres:5432".
network: ""
privileged: false
options: "--cpus=4 --memory=10g --pids-limit=8192"
workdir_parent: /var/lib/act_runner/workdir
valid_volumes:
- '**'
docker_host: ""
force_pull: false
force_rebuild: false
require_docker: false
docker_timeout: 0s
host:
workdir_parent: /var/lib/act_runner/workdir

View File

@@ -1,44 +0,0 @@
# act_runner — CT 5701 (gitea-runner-1): default pool (labels ubuntu-latest / 22.04 / 20.04).
# Applied by: bash scripts/dev-vm/apply-act-runner-config.sh
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
shutdown_timeout: 0s
insecure: false
fetch_timeout: 5s
fetch_interval: 5s
github_mirror: ''
labels:
- "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
- "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"
- "ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"
cache:
enabled: true
dir: ""
host: ""
port: 0
external_server: ""
container:
# Same as config-5700-heavy.yaml — keep `network` empty so workflow `services:`
# (e.g. postgres) share DNS with the job container (see heavy template comments).
network: ""
privileged: false
options: "--cpus=2 --memory=4g --pids-limit=512"
workdir_parent: /var/lib/act_runner/workdir
valid_volumes:
- '**'
docker_host: ""
force_pull: false
force_rebuild: false
require_docker: false
docker_timeout: 0s
host:
workdir_parent: /var/lib/act_runner/workdir

View File

@@ -1,24 +0,0 @@
# Gitea Actions workflow templates
Copy one of these into **your repo** as `.gitea/workflows/<workflow-name>.yml`, then set repo **Secrets** in Gitea (`PHOENIX_DEPLOY_URL`, `PHOENIX_DEPLOY_TOKEN`).
| Template | Use when |
|----------|----------|
| [`deploy-via-phoenix-api.yml`](deploy-via-phoenix-api.yml) | App/service with a row in `phoenix-deploy-api/deploy-targets.json` |
| [`validate-only.yml`](validate-only.yml) | Libraries/docs — CI gate only, no VM deploy |
| **[`repos/`](repos/README.md)** | **Concrete YAML** for DBIS, CROMERO, CurrenciCombo — copy into those Gitea repos |
See [docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md](../../docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md) for repo ↔ VM mapping.
**Operator checklist:** [docs/00-meta/GITEA_CD_OPERATOR_CHECKLIST.md](../../docs/00-meta/GITEA_CD_OPERATOR_CHECKLIST.md).
## Postgres / Prisma in Actions (self-hosted `act_runner`)
When a workflow declares **`services: postgres:`** (GitHub Actions style):
1. **`DATABASE_URL`** (and Prisma) should use host **`postgres`** (the service id), **not** **`127.0.0.1`** / **`localhost`** — the job runs in Docker on the runner.
2. Runners managed from this repo must keep **`container.network`** **empty** in **`config/gitea-act-runner/config-*.yaml`** so act_runner creates a **per-job** network. See **`docs/04-configuration/GITEA_ACT_RUNNER_SETUP.md`** troubleshooting (**P1001**).
Examples in this monorepo: **`the-order/.github/workflows/ci.yml`**, **`dbis_core/.github/workflows/ci.yml`**. Copy the same pattern into other Gitea repos (e.g. treasury / DealFlow) that run migrations in CI.
**If you install Postgres inside the job container** (e.g. `apt-get install postgresql` + `127.0.0.1`), avoid PostgreSQLs anonymous dollar-quote **`DO $$ ... $$`** inside **bash double-quoted** `run:` lines — **`$$`** is the shell PID. Prefer a **`pg_roles` existence check** + plain **`CREATE ROLE`**, or use a **`$tag$ ... $tag$`** block inside a **single-quoted** heredoc so bash never expands dollars.

View File

@@ -1,31 +0,0 @@
# Template — copy to YOUR_REPO/.gitea/workflows/<name>.yml and replace placeholders.
# Secrets (repo settings): PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy via Phoenix API
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
env:
PHOENIX_DEPLOY_URL: ${{ secrets.PHOENIX_DEPLOY_URL }}
PHOENIX_DEPLOY_TOKEN: ${{ secrets.PHOENIX_DEPLOY_TOKEN }}
TARGET: default
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
REPO="${{ gitea.repository }}"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${PHOENIX_DEPLOY_URL}" \
-H "Authorization: Bearer ${PHOENIX_DEPLOY_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${REPO}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"${TARGET}\"}"

View File

@@ -1,14 +0,0 @@
# Ready-to-copy workflows (repo-specific)
Copy the matching file into **that** Gitea repo as `.gitea/workflows/<name>.yml`, then set secrets **`PHOENIX_DEPLOY_URL`**, **`PHOENIX_DEPLOY_TOKEN`**.
| File | Gitea `repo` | `target` | Notes |
|------|----------------|----------|--------|
| [`dbis-portal-live.yml`](dbis-portal-live.yml) | `Gov_Web_Portals/DBIS` | `dbis-portal-live` | CT 7804 portal |
| [`cromero-default.yml`](cromero-default.yml) | `d-bis/CROMERO` | `default` | NPM ecosystem build |
| [`currencicombo-default.yml`](currencicombo-default.yml) | `d-bis/CurrenciCombo` | `default` | Phoenix CT 8604 |
| — | `d-bis/explorer-monorepo` | `explorer-live` | Already in **explorer-monorepo** submodule: `.gitea/workflows/deploy-live.yml` |
| — | `Gov_Web_Portals/CyberSecur-Global` | `default` | In **CyberSecur-Global** repo: `.gitea/workflows/deploy-to-ct7810.yml` |
| — | `d-bis/cross-chain-pmm-lps` | _(validate only)_ | `.gitea/workflows/validate-capital-efficiency.yml` |
`d-bis/proxmox` uses monorepo workflows in-repo (no copy from here).

View File

@@ -1,24 +0,0 @@
# Copy to d-bis/CROMERO → .gitea/workflows/deploy-via-phoenix.yml
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy CROMERO (Phoenix)
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"d-bis/CROMERO\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"

View File

@@ -1,24 +0,0 @@
# Copy to d-bis/CurrenciCombo → .gitea/workflows/deploy-via-phoenix.yml
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy CurrenciCombo (Phoenix)
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"d-bis/CurrenciCombo\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"

View File

@@ -1,24 +0,0 @@
# Copy to Gov_Web_Portals/DBIS → .gitea/workflows/deploy-portal-live.yml
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy DBIS portal (Phoenix)
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"Gov_Web_Portals/DBIS\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"dbis-portal-live\"}"

View File

@@ -1,18 +0,0 @@
# Template — copy to YOUR_REPO/.gitea/workflows/validate.yml — adjust run steps.
name: Validate
on:
push:
branches: [main, master]
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Placeholder validation
run: |
echo "Replace this step with repo-specific checks (e.g. npm test, forge test)."

View File

@@ -1,11 +0,0 @@
{
"monetaryUnits": [
{
"code": "BTC",
"canonicalSymbol": "cBTC",
"wrappedSymbol": "cWBTC",
"mappingKey": "Compliant_BTC_cW",
"decimals": 8
}
]
}

View File

@@ -77,24 +77,16 @@ BLOCKSCOUT_API_URL="http://${IP_BLOCKSCOUT}:${BLOCKSCOUT_API_PORT}"
FORGE_VERIFIER_PROXY_PORT="${FORGE_VERIFIER_PROXY_PORT:-3080}"
IP_NPMPLUS="192.168.11.167"
IP_NPMPLUS_SECONDARY="192.168.11.168"
# Proxmox Mail Gateway (LXC 100, VMID 100) — PMG web UI; SMTP 25/587 on same host
IP_PMG="${IP_PMG:-192.168.11.32}"
IP_NGINX_LEGACY="192.168.11.26"
IP_ORDER_OPENSEARCH="192.168.11.48"
IP_ORDER_HAPROXY="192.168.11.39"
IP_VAULT_PHOENIX_2="192.168.11.201"
# Order of Malta — DealFlow Command Center (LXC 10381, r630-03, Docker Compose prod)
IP_OM_TREASURY_DEALFLOW="${IP_OM_TREASURY_DEALFLOW:-192.168.11.94}"
# Order Service IPs
ORDER_POSTGRES_PRIMARY="192.168.11.44"
ORDER_POSTGRES_REPLICA="192.168.11.45"
# Dedicated order-redis LXC (e.g. VMID 10020) not present on cluster as of 2026-03; reserve for scripts / future CT
ORDER_REDIS_IP="192.168.11.38"
# Order portal CTs (VMID 1009010092) — reconciled with live inventory 2026-05-11 (r630-04)
ORDER_PORTAL_PUBLIC_IP="${ORDER_PORTAL_PUBLIC_IP:-192.168.11.180}"
ORDER_PORTAL_INTERNAL_IP="${ORDER_PORTAL_INTERNAL_IP:-192.168.11.181}"
ORDER_MCP_LEGAL_IP="${ORDER_MCP_LEGAL_IP:-192.168.11.182}"
# DBIS Service IPs
DBIS_POSTGRES_PRIMARY="192.168.11.105"
@@ -177,10 +169,6 @@ PUBLIC_IP_MIFOS="76.53.10.41"
# DApp LXC (VMID 5801) — frontend-dapp for Chain 138 bridge. See docs/03-deployment/DAPP_LXC_DEPLOYMENT.md; E2E: tunnel + NPMplus dapp.d-bis.org
IP_DAPP_LXC="192.168.11.58"
# CurrenciCombo Phoenix CT (VMID 8604) on r630-01 — internal Phoenix app deployment on VLAN 160
IP_CURRENCICOMBO_PHOENIX="${IP_CURRENCICOMBO_PHOENIX:-10.160.0.14}"
CURRENCICOMBO_PHOENIX_VMID="${CURRENCICOMBO_PHOENIX_VMID:-8604}"
# Phoenix / Sankofa public edge (NPMplus → CT 7800 API, 7801 portal). Legacy scripts use IP_SERVICE_50 / IP_SERVICE_51.
# SolaceScanScout / Blockscout is IP_BLOCKSCOUT:80 — do NOT point sankofa.nexus or phoenix.sankofa.nexus there.
IP_SERVICE_50="${IP_SERVICE_50:-192.168.11.50}"

View File

@@ -1,44 +0,0 @@
{
"schemaVersion": "1.0.0",
"updatedAt": "2026-04-25T18:00:00Z",
"description": "Canonical jurisdiction catalog for multi-institution onboarding. Add rows as jurisdictions are formally in-scope. Legal review required before marking status production_ready.",
"jurisdictions": [
{
"id": "ID",
"label": "Indonesia",
"governingLawNote": "Indonesian law; BI and sector regulators — detail in compliance matrix, not legal advice.",
"regulatorsNote": "Bank Indonesia (BI); OJK where applicable — confirm with counsel.",
"activitiesInScope": ["payments_omnl", "server_funds_treasury", "rtgs_sidecars", "chain138_settlement_evidence"],
"activitiesExcluded": ["generic_securities_issuance_unless_scoped"],
"complianceMatrixPath": "docs/04-configuration/compliance-matrices/ID-INDONESIA/banking_v1.md",
"status": "pilot_ready",
"policyProfileIdsReferenced": [
"institutional_custody_skr_v1",
"server_funds_treasury_v1",
"infra_capacity_ops_v1"
]
},
{
"id": "GENERIC-COMMON-LAW-STUB",
"label": "Generic common-law banking stub (template)",
"governingLawNote": "Illustrative only — replace with real jurisdiction before production.",
"regulatorsNote": "Placeholder — no regulator list.",
"activitiesInScope": ["template_process_only"],
"activitiesExcluded": ["all_production_until_replaced"],
"complianceMatrixPath": "docs/04-configuration/compliance-matrices/GENERIC-COMMON-LAW-STUB/banking_v1.md",
"status": "template_only",
"policyProfileIdsReferenced": []
},
{
"id": "US-DELAWARE-CORP-STUB",
"label": "US Delaware corporate stub (draft second jurisdiction)",
"governingLawNote": "Illustrative corporate/treasury stub — not legal advice; replace with real federal/state matrix.",
"regulatorsNote": "Placeholder.",
"activitiesInScope": ["draft_matrix_training_only"],
"activitiesExcluded": ["all_production_until_replaced"],
"complianceMatrixPath": "docs/04-configuration/compliance-matrices/US-DELAWARE-CORP-STUB/banking_v1.md",
"status": "draft",
"policyProfileIdsReferenced": []
}
]
}

View File

@@ -18,8 +18,6 @@
"enode://17413a9ab0f570c72e9d7d511a856cd5b5abb58b70d0b9635524220a5354ee275429bf5d630025dbbb0d67c6ae24510e6560bf8b38a7e226e24a00cd181d6ae6@192.168.11.174:30303",
"enode://ab7f104acbcb254ced2653122f80b2c93b541467edc8f5b4bc90c4d3794cbbb1b2cbea69f9fe5e89f848e46a158e6ce45d76901e64801669321ce62172048eb8@192.168.11.244:30303",
"enode://237e27eb3a8738189e266615e7d613da18f86018a76080e18dbb9856baeab6454b1aebff889bc0790f2d791dd277121ee76a4fc0a0d1bc1001c2811b42518618@192.168.11.245:30303",
"enode://8a3337adcc2d177caf3aee26b3b6077d9adf126c580e12f352743ca07828f056ceb1d5fb1a06287e2dbbe19043fcc4b9bdd2ca9ae2a2c9142cf0cc3a549bfc68@192.168.11.219:30303",
"enode://09fe518689c54a34c3dac8aebf3c94bfc390f4bae143a80c57d92a502414df0689d12a2243ff9376c2f44a419894d934b4f47783ced31ea9668522078854e58f@192.168.11.220:30303",
"enode://89570ba8882ea1d383afb97d0d82eb3cf5d0c5fec7ae2acfe39487e5335ee91c36cd4b5e9aa05110d99b51a16b869f7531e6f89ec63476cba7f928356c437348@192.168.11.246:30303",
"enode://0fdbda7b6916973e598b7c9ff6e4e2da6f8bcce2ca46bb11c58368a9fbcfcb303a4955a563b2f71a51a813abeed3b44da220ad1488d19c9483f733548a7b7765@192.168.11.247:30303",
"enode://0c710ae1e4eaf7ee9d375c404798625c5165e1699a24aedadcfb69fa8fcde41c822d3576b1a180c3251aeba9782ceb43cb32c300c4e1a205905728d72b94cfe9@192.168.11.248:30303",

View File

@@ -18,8 +18,6 @@
"enode://17413a9ab0f570c72e9d7d511a856cd5b5abb58b70d0b9635524220a5354ee275429bf5d630025dbbb0d67c6ae24510e6560bf8b38a7e226e24a00cd181d6ae6@192.168.11.174:30303",
"enode://ab7f104acbcb254ced2653122f80b2c93b541467edc8f5b4bc90c4d3794cbbb1b2cbea69f9fe5e89f848e46a158e6ce45d76901e64801669321ce62172048eb8@192.168.11.244:30303",
"enode://237e27eb3a8738189e266615e7d613da18f86018a76080e18dbb9856baeab6454b1aebff889bc0790f2d791dd277121ee76a4fc0a0d1bc1001c2811b42518618@192.168.11.245:30303",
"enode://8a3337adcc2d177caf3aee26b3b6077d9adf126c580e12f352743ca07828f056ceb1d5fb1a06287e2dbbe19043fcc4b9bdd2ca9ae2a2c9142cf0cc3a549bfc68@192.168.11.219:30303",
"enode://09fe518689c54a34c3dac8aebf3c94bfc390f4bae143a80c57d92a502414df0689d12a2243ff9376c2f44a419894d934b4f47783ced31ea9668522078854e58f@192.168.11.220:30303",
"enode://89570ba8882ea1d383afb97d0d82eb3cf5d0c5fec7ae2acfe39487e5335ee91c36cd4b5e9aa05110d99b51a16b869f7531e6f89ec63476cba7f928356c437348@192.168.11.246:30303",
"enode://0fdbda7b6916973e598b7c9ff6e4e2da6f8bcce2ca46bb11c58368a9fbcfcb303a4955a563b2f71a51a813abeed3b44da220ad1488d19c9483f733548a7b7765@192.168.11.247:30303",
"enode://0c710ae1e4eaf7ee9d375c404798625c5165e1699a24aedadcfb69fa8fcde41c822d3576b1a180c3251aeba9782ceb43cb32c300c4e1a205905728d72b94cfe9@192.168.11.248:30303",

View File

@@ -1,90 +0,0 @@
{
"schema": "non-evm-lane-requirements/v1",
"generatedAt": "2026-05-12T07:06:40.872440+00:00",
"status": "stubs_bound_repo_side",
"lanes": [
{
"network": "solana",
"nativeAsset": "SOL",
"walletStatus": "bound_from_SOLANA_KEYPAIR_PATH_public_key",
"canonicalWallet": "9b4ebHVimuhMqbiCh6tUMMY2S48VyEHpqg5nxMMFe5Pf",
"requiredBindings": [
"splMintAddresses",
"rentReserveTarget",
"venueMinimumLiquidity"
],
"minimumFundingTarget": "minSolOperationalHint=0.05 (Operational gas+rent buffer hint only; operator confirms live venue targets.)",
"claimBoundary": "Do not claim native Solana liquidity until SPL mints, rent/gas, and venue inventory are bound."
},
{
"network": "tron",
"nativeAsset": "TRX",
"walletStatus": "derived_wallet_needs_canonical_confirmation",
"canonicalWallet": "TGkbidE5LfVJZ3QGj6DaPqzCTcTe9tJDxm",
"requiredBindings": [
"canonicalWalletApproval",
"energyBandwidthTarget",
"trc20Inventory"
],
"minimumFundingTarget": "minTrxOperationalHint=200 (TRX for bandwidth/energy visibility; operator confirms relay inventory.)",
"claimBoundary": "Do not claim native Tron liquidity until the canonical wallet and TRC-20 inventory are confirmed."
},
{
"network": "xrpl",
"nativeAsset": "XRP",
"walletStatus": "missing",
"canonicalWallet": null,
"requiredBindings": [
"xrplAccount",
"destinationTagPolicy",
"trustlineIssuerPolicy",
"xrpReserveTarget"
],
"minimumFundingTarget": "minXrpReserveHint=2 (Above typical base reserve; operator confirms trustline/issuer policy.)",
"claimBoundary": "Do not claim XRPL corridor readiness until account reserve, tags, trustlines, and wXRP controller evidence are closed."
},
{
"network": "bitcoin",
"nativeAsset": "BTC",
"walletStatus": "missing",
"canonicalWallet": null,
"requiredBindings": [
"btcCustodyAddress",
"proofOfReservesPolicy",
"wrappedAssetMapping",
"venueTarget"
],
"minimumFundingTarget": "TBD",
"claimBoundary": "Use BTC as a planning lane only until custody/reserve evidence and wrapping policy are bound."
},
{
"network": "dogecoin",
"nativeAsset": "DOGE",
"walletStatus": "missing",
"canonicalWallet": null,
"requiredBindings": [
"dogeCustodyAddress",
"bridgeOrCustodyModel",
"venueTarget"
],
"minimumFundingTarget": "TBD",
"claimBoundary": "Use DOGE as a planning lane only until native custody and bridge model are bound."
},
{
"network": "hyperliquid",
"nativeAsset": "HYPE",
"walletStatus": "research_required",
"canonicalWallet": null,
"requiredBindings": [
"chainIdentifier",
"assetIdentifier",
"custodyPath",
"venueOrApiEvidence"
],
"minimumFundingTarget": "TBD",
"claimBoundary": "Use HYPE only as a market-cap watch item until identifiers and custody path are verified."
}
],
"operatorBindingConfig": "config/non-evm-operator-binding.json",
"validationRule": "A lane is claimable only after canonicalWallet, asset IDs, native gas/reserve target, venue target, and evidence source are non-TBD."
}

View File

@@ -1,32 +0,0 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"version": "1.0.0",
"description": "Operator-declared non-EVM binding for liquidity planner and advisory closure. Public XRPL r-address may be committed; do not put private seeds here. Flip tron.canonicalDeployerConfirmed only after ops confirms the EVM-derived Tron deployer is canonical.",
"documentation": "Env overrides still win (XRPL_ACCOUNT, TRON_DEPLOYER_ADDRESS, SOLANA_KEYPAIR_PATH). This file supplies defaults and minimum native hints for reports. See docs/03-deployment/CHAIN138_TO_SOLANA_GRU_TOKEN_DEPLOYMENT_LINEUP.md and config/solana-gru-bridge-lineup.json for SPL mint work.",
"xrpl": {
"canonicalAccount": "",
"destinationTagPolicy": "none"
},
"tron": {
"addressOverride": "",
"canonicalDeployerConfirmed": false
},
"minimumFundingTargets": {
"solana": {
"minSolOperationalHint": "0.05",
"note": "Operational gas+rent buffer hint only; operator confirms live venue targets."
},
"tron": {
"minTrxOperationalHint": "200",
"note": "TRX for bandwidth/energy visibility; operator confirms relay inventory."
},
"xrpl": {
"minXrpReserveHint": "2",
"note": "Above typical base reserve; operator confirms trustline/issuer policy."
}
},
"otherNonEvmMajors": {
"status": "planning_bucket_only",
"note": "Per-network binding still requires custody + asset IDs per lane; not auto-closed by this file."
}
}

View File

@@ -1,268 +0,0 @@
{
"schemaVersion": "1.0.0",
"updated": "2026-04-30",
"purpose": "Official-source registry for replacing temporary/replacement pools, wiring protocol-native liquidity, and deriving repeg/depth/unwind plans.",
"guardrails": [
"Use only official protocol documentation, official deployment registries, or protocol-maintained repositories as authority for factory/router/address imports.",
"Do not treat replacement MockDVMPool contracts as final protocol-native liquidity.",
"Prefer read-only discovery and dry-run plans before executing any pool migration, liquidity add, or unwind.",
"For unsupported chains, mark protocol surface as unavailable rather than fabricating addresses.",
"For aggregators such as 1inch, route execution must use the official API/router transaction data and chain allowlists; do not hard-code stale router addresses without a current official deployment source."
],
"protocols": {
"dodo_pmm": {
"officialSources": [
{
"label": "DODO docs: find all pools and DVM factory addresses",
"url": "https://docs.dodoex.io/en/developer/data/how-to-find-all-the-dodo-pools",
"retrievedAt": "2026-04-30"
},
{
"label": "DODO docs: Ethereum contract addresses",
"url": "https://docs.dodoex.io/en/developer/contracts/dodo-v1-v2/contracts-address/ethereum",
"retrievedAt": "2026-04-30"
},
{
"label": "DODO docs: Base contract addresses",
"url": "https://docs.dodoex.io/en/developer/contracts/dodo-v1-v2/contracts-address/base",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"factoryProfile": "dodo_v2_dvm_factory",
"poolProfile": "dodo_v2_dvm",
"factoryMethods": [
"getDODOPool(address,address)",
"getDODOPoolBidirection(address,address)",
"getDODOPoolByUser(address)"
],
"birthEvent": "NewDVM(address baseToken,address quoteToken,address creator,address dvm)"
},
"chainFactories": {
"1": {
"network": "Ethereum Mainnet",
"dvmFactory": "0x72d220cE168C4f361dD4deE5D826a01AD8598f6C",
"source": "DODO docs"
},
"10": {
"network": "Optimism",
"dvmFactory": "0x2B800DC6270726F7E2266cE8cD5A3F8436fe0B40",
"source": "DODO docs"
},
"56": {
"network": "BSC (BNB Chain)",
"dvmFactory": "0x790B4A80Fb1094589A3c0eFC8740aA9b0C1733fB",
"source": "DODO docs"
},
"137": {
"network": "Polygon",
"dvmFactory": "0x79887f65f83bdf15Bcc8736b5e5BcDB48fb8fE13",
"source": "DODO docs"
},
"42161": {
"network": "Arbitrum One",
"dvmFactory": "0xDa4c4411c55B0785e501332354A036c04833B72b",
"source": "DODO docs"
},
"43114": {
"network": "Avalanche C-Chain",
"dvmFactory": "0xfF133A6D335b50bDAa6612D19E1352B049A8aE6a",
"source": "DODO docs"
},
"8453": {
"network": "Base",
"dvmFactory": "0x0226fCE8c969604C3A0AD19c37d1FAFac73e13c2",
"source": "DODO docs"
}
},
"unsupportedOrUnverifiedChains": {
"25": {
"network": "Cronos",
"status": "official_dodo_dvm_factory_not_committed"
},
"100": {
"network": "Gnosis Chain",
"status": "official_dodo_dvm_factory_not_committed"
},
"42220": {
"network": "Celo",
"status": "official_dodo_dvm_factory_not_committed"
},
"651940": {
"network": "ALL Mainnet (Alltra)",
"status": "not_official_dodo_chain_use_local_official_stack_or_custom_router"
}
}
},
"uniswap_v2": {
"officialSources": [
{
"label": "Uniswap docs: V2 deployments",
"url": "https://developers.uniswap.org/docs/protocols/v2/deployments",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"factoryProfile": "uniswap_v2_factory",
"routerProfile": "uniswap_v2_router02",
"methods": [
"getPair(address,address)",
"createPair(address,address)"
]
}
},
"uniswap_v3": {
"officialSources": [
{
"label": "Uniswap docs: V3 deployments",
"url": "https://developers.uniswap.org/docs/protocols/v3/deployments",
"retrievedAt": "2026-04-30"
},
{
"label": "Uniswap governance: official deployment guideline",
"url": "https://gov.uniswap.org/t/uniswap-deployment-guideline/25015",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"factoryProfile": "uniswap_v3_factory",
"routerProfile": "universal_router_or_swap_router02",
"positionManagerProfile": "nonfungible_position_manager",
"methods": [
"getPool(address,address,uint24)",
"createAndInitializePoolIfNecessary(address,address,uint24,uint160)"
]
}
},
"curve_stable": {
"officialSources": [
{
"label": "Curve docs: deployment addresses",
"url": "https://curve.readthedocs.io/ref-addresses.html",
"retrievedAt": "2026-04-30"
},
{
"label": "Curve technical docs",
"url": "https://docs.curve.finance/",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"factoryProfile": "curve_stableswap_factory",
"notes": [
"Use Curve registry/factory addresses per chain.",
"Deposits and withdrawals may require zaps depending on pool type."
]
}
},
"balancer_weighted": {
"officialSources": [
{
"label": "Balancer deployments repository",
"url": "https://github.com/balancer/balancer-deployments",
"retrievedAt": "2026-04-30"
},
{
"label": "Balancer docs: Vault",
"url": "https://balancer.gitbook.io/balancer-v2/products/the-vault",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"vaultProfile": "balancer_vault",
"factoryProfile": "weighted_pool_factory",
"notes": [
"Balancer pools are managed by the Vault; pool token balances and joins/exits must use Vault APIs."
]
}
},
"aave_backstop": {
"officialSources": [
{
"label": "Aave address book repository",
"url": "https://github.com/bgd-labs/aave-address-book",
"retrievedAt": "2026-04-30"
},
{
"label": "Aave V3 core repository",
"url": "https://github.com/aave/aave-v3-core",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"addressBookProfile": "bgd_labs_aave_address_book",
"methods": [
"POOL()",
"POOL_ADDRESSES_PROVIDER()"
]
}
},
"oneinch_aggregator": {
"officialSources": [
{
"label": "1inch aggregation protocol",
"url": "https://1inch.io/aggregation-protocol/",
"retrievedAt": "2026-04-30"
},
{
"label": "1inch developer portal",
"url": "https://portal.1inch.dev/",
"retrievedAt": "2026-04-30"
},
{
"label": "1inch Help Center: supported networks",
"url": "https://help.1inch.com/en/articles/5528619-how-to-use-different-networks-on-1inch",
"retrievedAt": "2026-04-30"
},
{
"label": "1inch Business: Swap API supported chains",
"url": "https://business.1inch.com/products/swap",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"integrationProfile": "official_api_quote_and_router_tx_data",
"notes": [
"Use 1inch official API quote/swap response for current router tx data.",
"Do not create pools; this protocol wires route access to external liquidity."
]
},
"chainSupport": {
"8453": {
"network": "Base",
"status": "supported_by_official_1inch_network_list",
"source": "1inch Help Center / 1inch Business chain pages",
"supportedUse": "aggregated quote and swap route access for cW*/official stable pairs; requires token import/listing or direct contract-address query."
},
"100": {
"network": "Gnosis Chain",
"status": "supported_by_official_1inch_network_list",
"source": "1inch Help Center / 1inch Business chain pages",
"supportedUse": "aggregated quote and swap route access for cW*/official stable pairs; requires token import/listing or direct contract-address query."
},
"25": {
"network": "Cronos",
"status": "supported_by_official_1inch_business_swap_list",
"source": "1inch Business Swap API supported chains",
"supportedUse": "aggregated quote and swap route access for cW*/official stable pairs; requires token import/listing or direct contract-address query."
}
}
},
"sushiswap_v2": {
"officialSources": [
{
"label": "SushiSwap V2 core repository",
"url": "https://github.com/sushiswap/v2-core",
"retrievedAt": "2026-04-30"
}
],
"poolDiscovery": {
"factoryProfile": "sushiswap_v2_factory",
"routerProfile": "sushiswap_v2_router",
"notes": [
"Official deployment-address source must be confirmed per chain before enabling rows."
]
}
}
}
}

View File

@@ -1,8 +1,5 @@
{
"version": 2,
"semanticModel": {
"summary": "The 33×33×6 Elemental Imperium (EI) grid wallets in this file are the canonical Ethereum addresses designated as on-chain treasuries for sovereign nations in the DBIS/EI routing model. Operational mapping from cell (lpbca × branch × class) to a specific nation uses config/elemental-imperium-network-registry.json and overlays; legal recognition and reserve policy are outside this repo."
},
"dimensions": {
"lpbcaCount": 33,
"branchCount": 33,

View File

@@ -1,7 +1,7 @@
{
"schemaVersion": "1.0.0",
"updated": "2026-05-09",
"description": "Operational template: Proxmox VE nodes, LAN/WAN, NPMplus ingress, workloads (VMID/IP/hostname/FQDN), Besu peering summary, and deployment prerequisites. Authoritative detail remains in docs/04-configuration/ALL_VMIDS_ENDPOINTS.md and config/ip-addresses.conf update those first, then sync this file. **Cluster inventory 2026-05-09:** PVE 9.1.7; 136 running LXC/QEMU; ml110 0 guests; r630-01 57, r630-02 41, r630-03 19, r630-04 19 (pvesh /cluster/resources).",
"updated": "2026-03-23",
"description": "Operational template: Proxmox VE nodes, LAN/WAN, NPMplus ingress, workloads (VMID/IP/hostname/FQDN), Besu peering summary, and deployment prerequisites. Authoritative detail remains in docs/04-configuration/ALL_VMIDS_ENDPOINTS.md and config/ip-addresses.conf \u2014 update those first, then sync this file. Live inventory reconciled 2026-03-23 vs cluster SSH audit; order-legal (10070) ARP fix 2026-03-25 (IP_ORDER_LEGAL).",
"canonicalSources": [
"config/ip-addresses.conf",
"docs/04-configuration/ALL_VMIDS_ENDPOINTS.md",
@@ -47,20 +47,6 @@
"role": "firefly_npmplus_secondary_mim4u_mifos_support",
"ui_url": "https://192.168.11.12:8006",
"cluster_name": "h"
},
{
"hostname": "r630-03",
"mgmt_ipv4": "192.168.11.13",
"role": "besu_chain138_secondary_rpc_sentry_host",
"ui_url": "https://192.168.11.13:8006",
"cluster_name": "h"
},
{
"hostname": "r630-04",
"mgmt_ipv4": "192.168.11.14",
"role": "besu_chain138_additional_capacity_host",
"ui_url": "https://192.168.11.14:8006",
"cluster_name": "h"
}
],
"cluster_peering": {
@@ -79,7 +65,7 @@
},
"besu_chain138_peering_model": {
"chain_id": 138,
"summary": "Validators (1000\u20131004) \u2194 Sentries (1500\u20131510) \u2194 RPC tier (2101,2102,2103 core/admin, 2201 public, 2301,2303\u20132308 named/private, 2400\u20132403 thirdweb, 2500\u20132505 alltra/hybx). Use canonical roles doc for allowed adjacencies and ops.",
"summary": "Validators (1000\u20131004) \u2194 Sentries (1500\u20131506) \u2194 RPC tier (2101 core, 2201 public, 230x named, 240x thirdweb). Use canonical roles doc for allowed adjacencies and ops.",
"p2p_port_tcp_udp": 30303,
"doc_ref": "docs/02-architecture/CHAIN138_CANONICAL_NETWORK_ROLES_VALIDATORS_SENTRY_AND_RPC.md"
},
@@ -108,8 +94,7 @@
],
"primary_ingress_ip": "192.168.11.167",
"public_ipv4": "76.53.10.36",
"purpose": "Main d-bis.org, explorer, Option B RPC hostnames, MIM4U, primary ingress",
"mission_critical_notes": "preferred_node r630-01; resize to >=2 vCPU / 2048 MiB for production headroom; pair with 10234 via VIP per NPMPLUS_MISSION_CRITICAL_DISTRIBUTION_AND_HA_PLAN.md"
"purpose": "Main d-bis.org, explorer, Option B RPC hostnames, MIM4U, primary ingress"
},
{
"vmid": 10234,
@@ -118,8 +103,7 @@
],
"public_ipv4": "76.53.10.37",
"purpose": "Secondary / HA NPMplus (verify running; doc may show stopped)",
"status_note": "Confirm on cluster before relying on HA",
"mission_critical_notes": "preferred_node r630-02; verify memory/swap in UI matches primary; implement Keepalived + shared state per NPMPLUS_HA_SETUP_GUIDE.md"
"status_note": "Confirm on cluster before relying on HA"
},
{
"vmid": 10235,
@@ -128,8 +112,7 @@
],
"public_ipv4": "76.53.10.38",
"designated_public_ip_alt": "76.53.10.42",
"purpose": "rpc-core-2, Alltra, HYBX \u2014 see NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md",
"mission_critical_notes": "relocate off r630-01 when possible (e.g. r630-03) to isolate blast radius \u2014 see NPMPLUS_MISSION_CRITICAL_DISTRIBUTION_AND_HA_PLAN.md"
"purpose": "rpc-core-2, Alltra, HYBX \u2014 see NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md"
},
{
"vmid": 10236,
@@ -137,8 +120,7 @@
"192.168.11.170"
],
"public_ipv4": "76.53.10.40",
"purpose": "Dev/Codespaces tunnel, Gitea, Proxmox admin UI",
"mission_critical_notes": "relocate off r630-01 when possible (e.g. r630-04); restrict admin :81 \u2014 see NPMPLUS_MISSION_CRITICAL_DISTRIBUTION_AND_HA_PLAN.md"
"purpose": "Dev/Codespaces tunnel, Gitea, Proxmox admin UI"
},
{
"vmid": 10237,
@@ -815,11 +797,11 @@
{
"vmid": 6000,
"hostname": "fabric-1",
"ipv4": "192.168.11.113",
"ipv4": "192.168.11.65",
"preferred_node": "r630-02",
"category": "dlt",
"runtime_state": "active_fabric_network",
"notes": "Live inventory 2026-05-11: running @ 192.168.11.113 on r630-02 (was placeholder when at .65).",
"runtime_state": "reserved_placeholder_stopped",
"notes": "As of 2026-03-28 this CT has been reclassified as a reserved placeholder and stopped. Earlier app-native checks found no active Fabric peer/orderer/couchdb processes, no expected listeners, and no meaningful Fabric payload under /opt, /etc, or /var.",
"ports": [
{
"port": 7051
@@ -1268,10 +1250,7 @@
"port": 80
}
],
"fqdns": [
"tsunamiswap.com",
"app.tsunamiswap.com"
]
"fqdns": []
},
{
"vmid": 10070,
@@ -1321,7 +1300,7 @@
"vmid": 3000,
"hostname": "ml-node-1",
"ipv4": "192.168.11.60",
"preferred_node": "r630-01",
"preferred_node": "ml110",
"category": "ml",
"ports": [],
"fqdns": []
@@ -1330,7 +1309,7 @@
"vmid": 3001,
"hostname": "ml-node-2",
"ipv4": "192.168.11.61",
"preferred_node": "r630-01",
"preferred_node": "ml110",
"category": "ml",
"ports": [],
"fqdns": []
@@ -1339,7 +1318,7 @@
"vmid": 3002,
"hostname": "ml-node-3",
"ipv4": "192.168.11.62",
"preferred_node": "r630-01",
"preferred_node": "ml110",
"category": "ml",
"ports": [],
"fqdns": []
@@ -1347,8 +1326,8 @@
{
"vmid": 3003,
"hostname": "ml-node-4",
"ipv4": "192.168.11.66",
"preferred_node": "r630-01",
"ipv4": "192.168.11.63",
"preferred_node": "ml110",
"category": "ml",
"ports": [],
"fqdns": []
@@ -1480,41 +1459,7 @@
"vmid": 1508,
"hostname": "besu-sentry-hybx-2",
"ipv4": "192.168.11.245",
"preferred_node": "r630-04",
"category": "besu_sentry",
"ports": [
{
"port": 30303
},
{
"port": 9545
}
],
"peering_layer": "sentry_boundary",
"fqdns": []
},
{
"vmid": 1509,
"hostname": "besu-sentry-thirdweb-01",
"ipv4": "192.168.11.219",
"preferred_node": "r630-03",
"category": "besu_sentry",
"ports": [
{
"port": 30303
},
{
"port": 9545
}
],
"peering_layer": "sentry_boundary",
"fqdns": []
},
{
"vmid": 1510,
"hostname": "besu-sentry-thirdweb-02",
"ipv4": "192.168.11.220",
"preferred_node": "r630-03",
"preferred_node": "ml110",
"category": "besu_sentry",
"ports": [
{
@@ -1672,9 +1617,7 @@
"port": 80
}
],
"fqdns": [
"tsunamiswap.com"
]
"fqdns": []
},
{
"vmid": 5201,
@@ -1817,8 +1760,8 @@
{
"vmid": 10090,
"hostname": "order-portal-public",
"ipv4": "192.168.11.180",
"preferred_node": "r630-04",
"ipv4": "192.168.11.36",
"preferred_node": "r630-01",
"category": "order",
"ports": [
{
@@ -1831,8 +1774,8 @@
{
"vmid": 10091,
"hostname": "order-portal-internal",
"ipv4": "192.168.11.181",
"preferred_node": "r630-04",
"ipv4": "192.168.11.35",
"preferred_node": "r630-01",
"category": "order",
"ports": [],
"fqdns": []
@@ -1840,8 +1783,8 @@
{
"vmid": 10092,
"hostname": "order-mcp-legal",
"ipv4": "192.168.11.182",
"preferred_node": "r630-04",
"ipv4": "192.168.11.37",
"preferred_node": "r630-01",
"category": "order",
"ports": [],
"fqdns": []

View File

@@ -1,116 +0,0 @@
{
"schemaVersion": "1.0.0",
"updated": "2026-04-24",
"scope": "Current live Chain 138 ecosystem coverage for public stablecoins, top public assets, and near-term integration priorities.",
"homeChain": {
"chainId": 138,
"network": "DeFi Oracle Meta Mainnet",
"publicExitPrimitive": "WETH",
"publicExitStatus": "live_via_pmm_and_ccip"
},
"supportedBridgeDestinations": [
{ "chainId": 1, "name": "Ethereum Mainnet", "status": "live" },
{ "chainId": 10, "name": "Optimism", "status": "live" },
{ "chainId": 25, "name": "Cronos", "status": "live" },
{ "chainId": 56, "name": "BSC", "status": "live" },
{ "chainId": 100, "name": "Gnosis", "status": "live" },
{ "chainId": 137, "name": "Polygon", "status": "live" },
{ "chainId": 8453, "name": "Base", "status": "live" },
{ "chainId": 42161, "name": "Arbitrum One", "status": "live" },
{ "chainId": 42220, "name": "Celo", "status": "live" },
{ "chainId": 43114, "name": "Avalanche C-Chain", "status": "live" },
{ "chainId": 651940, "name": "ALL Mainnet", "status": "bridge_live_swap_inventory_pending" },
{ "chainId": 1111, "name": "Wemix", "status": "blocked_selector_not_supported" }
],
"stablecoinCoverage": [
{ "symbol": "USDT", "reachability": "strong", "mode": "direct_mirror_and_public_evm" },
{ "symbol": "USDC", "reachability": "strong", "mode": "direct_mirror_and_public_evm" },
{ "symbol": "DAI", "reachability": "strong", "mode": "indirect_via_weth_to_ethereum" },
{ "symbol": "USDS", "reachability": "strong", "mode": "indirect_via_weth_to_ethereum" },
{ "symbol": "PYUSD", "reachability": "medium", "mode": "destination_dex_dependent" },
{ "symbol": "USDe", "reachability": "medium", "mode": "destination_dex_dependent" },
{ "symbol": "USD1", "reachability": "medium", "mode": "destination_dex_dependent" },
{ "symbol": "USDG", "reachability": "medium", "mode": "destination_dex_dependent" },
{ "symbol": "RLUSD", "reachability": "medium", "mode": "destination_dex_dependent" },
{ "symbol": "USDF", "reachability": "medium", "mode": "destination_dex_dependent" },
{ "symbol": "BUIDL", "reachability": "low", "mode": "institutional_non_dex" },
{ "symbol": "USYC", "reachability": "low", "mode": "institutional_non_dex" },
{ "symbol": "JTRSY", "reachability": "low", "mode": "institutional_non_dex" },
{ "symbol": "XAUT", "reachability": "strong", "mode": "native_gold_family_on_home_chain" },
{ "symbol": "PAXG", "reachability": "medium", "mode": "destination_dex_dependent" }
],
"topAssetCoverage": [
{ "symbol": "ETH", "reachability": "strong", "mode": "direct_evm" },
{ "symbol": "LINK", "reachability": "strong", "mode": "direct_evm" },
{ "symbol": "AAVE", "reachability": "strong", "mode": "destination_dex_dependent" },
{ "symbol": "UNI", "reachability": "strong", "mode": "destination_dex_dependent" },
{ "symbol": "AVAX", "reachability": "strong", "mode": "destination_dex_dependent" },
{ "symbol": "BNB", "reachability": "strong", "mode": "destination_dex_dependent" },
{ "symbol": "CRO", "reachability": "strong", "mode": "destination_dex_dependent" },
{ "symbol": "BTC", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "SOL", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "TRX", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "XRP", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "ADA", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "XMR", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "ZEC", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "XLM", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "HBAR", "reachability": "weak", "mode": "non_evm_expansion_required" },
{ "symbol": "SUI", "reachability": "weak", "mode": "non_evm_expansion_required" }
],
"shortIntegrationLeaps": [
{
"id": "doc-chain138-live-weth-exits",
"title": "Normalize docs around live Chain 138 c* -> WETH exits",
"status": "done_now",
"impact": "high"
},
{
"id": "publish-destination-route-registry",
"title": "Publish per-chain destination route registry for supported EVM stablecoins and cW* surfaces",
"status": "todo",
"impact": "high"
},
{
"id": "promote-additional-public-stables",
"title": "Promote PYUSD, USDe, RLUSD, USD1, and USDG into named route-target review",
"status": "todo",
"impact": "high"
},
{
"id": "canonicalize-allmainnet-swap-surface",
"title": "Commit canonical ALL Mainnet router/factory/pool inventory",
"status": "todo",
"impact": "high"
},
{
"id": "publish-top50-coverage-matrix",
"title": "Track top public assets by direct, indirect, wrapped-only, or unsupported status",
"status": "done_now",
"impact": "medium"
}
],
"additionalComponentsRequired": [
{
"id": "non-evm-bridge-expansion",
"title": "Bridge and swap adapters for BTC, SOL, XRP, ADA, XLM, HBAR, SUI classes",
"status": "future"
},
{
"id": "wemix-ccip-selector-support",
"title": "Enable Wemix lane by resolving Chain 138 CCIP selector support",
"status": "blocked_external"
},
{
"id": "route-confidence-api",
"title": "Expose live route confidence in quote/build systems",
"status": "future"
}
],
"references": {
"ecosystemReport": "reports/status/LIVE_ECOSYSTEM_FINANCIAL_INVENTORY_AND_ROUTING_GAPS_20260424.md",
"routingStatusDoc": "docs/11-references/DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md",
"stablecoinRoutesDoc": "docs/11-references/DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md",
"allMainnetSurfaceConfig": "config/allmainnet-non-dodo-protocol-surface.json"
}
}

View File

@@ -35,9 +35,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0xc9901ce2Ddb6490FAA183645147a87496d8b20B6",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 1,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to MAINNET_CCIP_WETH9_BRIDGE from .env"
},
{
"fromChain": 138,
@@ -46,17 +47,17 @@
"pathType": "CCIP",
"bridgeAddress": "0xcacfd227A040002e49e2e01626363071324f820a",
"bridgeChainId": 138,
"label": "CCIPWETH9Bridge",
"note": "138 to BSC WETH9: native CCIP token-delivery lane only. Chain 138 CCIPWETH9Bridge must have destinations(BSC_SELECTOR) -> CCIPWETH9_BRIDGE_BSC (not CCIP_RELAY_BRIDGE_BSC). See docs/11-references/CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN.md section 1.1."
"label": "CCIPWETH9Bridge"
},
{
"fromChain": 56,
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0x24293CA562aE1100E60a4640FF49bd656cFf93B4",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 56,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_BSC from .env"
},
{
"fromChain": 138,
@@ -72,9 +73,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0xF7736443f02913e7e0773052103296CfE1637448",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 137,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_POLYGON from .env"
},
{
"fromChain": 138,
@@ -90,9 +92,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0x6e94e53F73893b2a6784Df663920D31043A6dE07",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 10,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_OPTIMISM from .env"
},
{
"fromChain": 138,
@@ -108,9 +111,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0x937824f2516fa58f25aeAb92E7BFf7D74F463B4c",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 42161,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_ARBITRUM from .env"
},
{
"fromChain": 138,
@@ -126,9 +130,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0x24293CA562aE1100E60a4640FF49bd656cFf93B4",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 43114,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_AVALANCHE from .env"
},
{
"fromChain": 138,
@@ -144,9 +149,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0x24293CA562aE1100E60a4640FF49bd656cFf93B4",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 8453,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_BASE from .env"
},
{
"fromChain": 138,
@@ -162,9 +168,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0xc8656F24488cb90c452058da92d1a25BA464eaAE",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 100,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_GNOSIS from .env"
},
{
"fromChain": 138,
@@ -180,9 +187,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0x3Cc23d086fCcbAe1e5f3FE2bA4A263E1D27d8Cab",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 25,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_CRONOS from .env"
},
{
"fromChain": 138,
@@ -198,9 +206,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0xAb57BF30F1354CA0590af22D8974c7f24DB2DbD7",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 42220,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_CELO from .env"
},
{
"fromChain": 138,
@@ -216,9 +225,10 @@
"toChain": 138,
"asset": "WETH",
"pathType": "CCIP",
"bridgeAddress": "0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04",
"bridgeAddress": "0x0000000000000000000000000000000000000000",
"bridgeChainId": 1111,
"label": "CCIPWETH9Bridge"
"label": "CCIPWETH9Bridge",
"note": "Set to CCIPWETH9_BRIDGE_WEMIX from .env when deployed"
},
{
"fromChain": 138,
@@ -236,8 +246,7 @@
"pathType": "CCIP",
"bridgeAddress": "0xe0E93247376aa097dB308B92e6Ba36bA015535D0",
"bridgeChainId": 138,
"label": "CCIPWETH10Bridge",
"note": "138 to BSC WETH10: native CCIP token-delivery lane only. Chain 138 CCIPWETH10Bridge must have destinations(BSC_SELECTOR) -> CCIPWETH10_BRIDGE_BSC. Relay-backed BSC WETH is deprecated."
"label": "CCIPWETH10Bridge"
},
{
"fromChain": 138,

View File

@@ -1,14 +1,13 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Operator lineup: Chain 138 canonical GRU assets plus live-confirmed Solana corridor evidence → Solana SPL bridge targets (cW* / WETH). Populate solanaMint when mints exist. Source addresses: docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md §2.",
"description": "Operator lineup: Chain 138 canonical GRU assets → Solana SPL bridge targets (cW* / WETH). Populate solanaMint when mints exist. Source addresses: docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md §2.",
"version": "1.0.0",
"updated": "2026-04-19",
"status": "partial_live_causdt_lane_confirmed_lineup_and_mints_still_outstanding",
"updated": "2026-04-18",
"status": "lineup_defined_relay_and_mints_outstanding",
"references": {
"canonicalCrosscheck": "docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md",
"tokenMapping": "config/token-mapping-multichain.json",
"nonEvmFramework": "config/non-evm-bridge-framework.json",
"nonEvmOperatorBinding": "config/non-evm-operator-binding.json",
"runbook": "docs/03-deployment/CHAIN138_TO_SOLANA_GRU_TOKEN_DEPLOYMENT_LINEUP.md"
},
"chain138": {
@@ -20,39 +19,12 @@
"cluster": "mainnet-beta",
"hubStablesNote": "Resolve SPL USDC (primary) and USDT mints for edge liquidity; not EVM hub addresses — see cross-chain-pmm-lps/config/chains.json nonEvm.Solana"
},
"liveBridgeEvidence": {
"chain138Symbol": "cAUSDT",
"solanaSymbol": "cWAUSDT",
"chain138Address": "0x5fdDF65733e3d590463F68f93Cf16E8c04081271",
"solanaAdapter": "0x8244a5c27C0eA32fb8cB324131a04dC9F4E433f7",
"evidenceDate": "2026-04-16",
"mintedRaw": "22000000",
"bridgedRaw": "9000000",
"bridgeRequestId": "0x69035dfb7c0af5447da6104a8c09aa6bac7b19695517441014dda3c687d4550d",
"finalStatus": 2,
"finalStatusLabel": "Confirmed",
"transactions": {
"mint": "0x8d18b8df7024418bf167cc80d11e0425b0c81507ace13326973951f3dfd0f6f8",
"bridge": "0x4f6368754a5b55a43f8dae4e645bf67e9cf6c9c64bfdadb4625508c351d64319",
"confirm": "0x6cce9a740d170278c95e494052e1b031b394d1d807df05ba3bad55030a36fc68"
},
"notes": "Confirmed live Chain 138 -> Solana send/confirm for the AUSDT corridor. Full canonical Solana SPL mint inventory is still being populated."
},
"bridgeModel": {
"sourceRole": "canonical c* (and WETH) on Chain 138",
"destinationRole": "SPL mints for bridge-wrapped symbols per token-mapping nonEvmNetworks.Solana.assetRepresentationModel",
"naming": "c* on 138 → cW* on Solana for fiat-stable GRU assets; WETH remains WETH (wrapped ETH representation on Solana)"
},
"assets": [
{
"chain138Symbol": "cAUSDT",
"solanaSymbol": "cWAUSDT",
"decimals": 6,
"chain138Address": "0x5fdDF65733e3d590463F68f93Cf16E8c04081271",
"solanaMint": null,
"deploymentStatus": "confirmed_live_send_confirm_mint_address_pending",
"evidenceRef": "liveBridgeEvidence"
},
{
"chain138Symbol": "WETH",
"solanaSymbol": "WETH",

View File

@@ -1,16 +0,0 @@
# Example install on a monitoring host with this repo checked out:
# sudo cp config/systemd/cwusdc-provider-monitor.service.example /etc/systemd/system/cwusdc-provider-monitor.service
# sudo cp config/systemd/cwusdc-provider-monitor.timer.example /etc/systemd/system/cwusdc-provider-monitor.timer
# sudo systemctl daemon-reload
# sudo systemctl enable --now cwusdc-provider-monitor.timer
[Unit]
Description=cWUSDC provider propagation monitor
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
User=intlc
WorkingDirectory=/home/intlc/projects/proxmox
ExecStart=/bin/bash /home/intlc/projects/proxmox/scripts/verify/run-cwusdc-provider-monitoring-snapshot.sh

View File

@@ -1,10 +0,0 @@
[Unit]
Description=Run cWUSDC provider propagation monitor daily
[Timer]
OnCalendar=*-*-* 13:00:00 UTC
Persistent=true
RandomizedDelaySec=15m
[Install]
WantedBy=timers.target

View File

@@ -2,10 +2,6 @@
* Load token mapping from config/token-mapping.json and config/token-mapping-multichain.json.
* Used by relay service, bridge/LP tooling, and docs. Safe to publish (no secrets).
*
* GRU Monetary Transport extensions (`getGruTransportMetadata`, `getActiveTransportPairs`, …) are
* specified in docs/04-configuration/GRU_TRANSPORT_LOADER_DESIGN_SPEC.md (design complete; optional
* implementation phases apply).
*
* Usage:
* const { getRelayTokenMapping, getTokenMappingForPair } = require('../config/token-mapping-loader.cjs');
* const map = getRelayTokenMapping(); // 138 -> Mainnet (chain138Address -> mainnetAddress)

View File

@@ -1,8 +1,8 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Multi-chain token mapping: Chain 138↔651940 (ALL Mainnet) and 651940↔1,56,137,100,43114,8453,42161,10,25,42220,1111. Single source of truth for bridge/LP tooling. Verify canonical addresses per chain: see docs/07-ccip/EXPLORER_TOKENS_CANONICAL_MAPPING.md.",
"version": "1.2.0",
"updated": "2026-04-19",
"version": "1.1.0",
"updated": "2026-02-27",
"cToCwSymbolMapping": {
"cUSDT": "cWUSDT",
"cUSDC": "cWUSDC",
@@ -26,10 +26,10 @@
"137": "Polygon",
"138": "SMOM-DBIS-138 (DeFi Oracle Meta)",
"1111": "Wemix",
"42793": "Etherlink",
"8453": "Base",
"42161": "Arbitrum One",
"42220": "Celo",
"42793": "Etherlink",
"43114": "Avalanche C-Chain",
"651940": "ALL Mainnet (Alltra)"
},
@@ -146,118 +146,6 @@
}
]
},
{
"fromChainId": 138,
"toChainId": 1,
"notes": "Chain 138 ↔ Ethereum Mainnet (CCIP); direct mapping; c*_cW = c* → cW* on destination",
"tokens": [
{
"key": "WETH9",
"name": "Wrapped Ether",
"addressFrom": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"addressTo": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"notes": "138 WETH9 → Mainnet WETH"
},
{
"key": "Compliant_USDT",
"name": "cUSDT",
"addressFrom": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"addressTo": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"notes": "138 cUSDT → Mainnet USDT (native)"
},
{
"key": "Compliant_USDT_cW",
"name": "cUSDT→cWUSDT",
"addressFrom": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"addressTo": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
"notes": "138 cUSDT → Mainnet cWUSDT; set when deployed"
},
{
"key": "Compliant_USDC",
"name": "cUSDC",
"addressFrom": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"addressTo": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"notes": "138 cUSDC → Mainnet USDC (native)"
},
{
"key": "Compliant_USDC_cW",
"name": "cUSDC→cWUSDC",
"addressFrom": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"addressTo": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
"notes": "138 cUSDC → Mainnet cWUSDC; set when deployed"
},
{
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0xD4aEAa8cD3fB41Dc8437FaC7639B6d91B60A5e8d",
"notes": "138 cEURC → Mainnet cWEURC"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0x855d74FFB6CF75721a9bAbc8B2ed35c8119241dC",
"notes": "138 cEURT → Mainnet cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0xc074007dc0bfb384b1cf6426a56287ed23fe4d52",
"notes": "138 cGBPC → Mainnet cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0x1dDF9970F01c76A692Fdba2706203E6f16e0C46F",
"notes": "138 cGBPT → Mainnet cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0x5020Db641B3Fc0dAbBc0c688C845bc4E3699f35F",
"notes": "138 cAUDC → Mainnet cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0x07EEd0D7dD40984e47B9D3a3bdded1c536435582",
"notes": "138 cJPYC → Mainnet cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0x0F91C5E6Ddd46403746aAC970D05d70FFe404780",
"notes": "138 cCHFC → Mainnet cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0x209FE32fe7B541751D190ae4e50cd005DcF8EDb4",
"notes": "138 cCADC → Mainnet cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0x572Be0fa8CA0534d642A567CEDb398B771D8a715",
"notes": "138 cXAUC → Mainnet cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0xACE1DBF857549a11aF1322e1f91F2F64b029c906",
"notes": "138 cXAUT → Mainnet cWXAUT"
}
]
},
{
"fromChainId": 651940,
"toChainId": 138,
@@ -554,70 +442,70 @@
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0x25603ae4bff0b71d637b3573d1b6657f5f6d17ef",
"addressTo": "0x3CD9ee18db7ad13616FCC1c83bC6098e03968E66",
"notes": "138 cEURC → Gnosis cWEURC; set when deployed"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0x8e54c52d34a684e22865ac9f2d7c27c30561a7b9",
"addressTo": "0xBeF5A0Bcc0E77740c910f197138cdD90F98d2427",
"notes": "138 cEURT → cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0x4d9bc6c74ba65e37c4139f0aec9fc5ddff28dcc4",
"addressTo": "0x948690147D2e50ffe50C5d38C14125aD6a9FA036",
"notes": "138 cGBPC → cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0x9f6d2578003fe04e58a9819a4943732f2a203a61",
"addressTo": "0x58a8D8F78F1B65c06dAd7542eC46b299629A60dd",
"notes": "138 cGBPT → cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0xddc4063f770f7c49d00b5a10fb552e922aa39b2c",
"addressTo": "0xFb4B6Cc81211F7d886950158294A44C312abCA29",
"notes": "138 cAUDC → cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0x145e8e8c49b6a021969dd9d2c01c8fea44374f61",
"addressTo": "0xf9f5D0ACD71C76F9476F10B3F3d3E201F0883C68",
"notes": "138 cJPYC → cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0x46d90d7947f1139477c206c39268923b99cf09e4",
"addressTo": "0xeE17bB0322383fecCA2784fbE2d4CD7d02b1905B",
"notes": "138 cCHFC → cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0xa7133c78e0ec74503a5941bcbd44257615b6b4f6",
"addressTo": "0xc9750828124D4c10e7a6f4B655cA8487bD3842EB",
"notes": "138 cCADC → cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0x23873b85cfeb343eb952618e8c9e9bfb7f6a0d45",
"addressTo": "0x328Cd365Bb35524297E68ED28c6fF2C9557d1363",
"notes": "138 cXAUC → cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0xc6189d404dc60cae7b48e2190e44770a03193e5f",
"addressTo": "0x9e6044d730d4183bF7a666293d257d035Fba6d44",
"notes": "138 cXAUT → cWXAUT"
}
]
@@ -666,70 +554,70 @@
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0x84353ed1f0c7a703a17abad19b0db15bc9a5e3e5",
"addressTo": "0x61D642979eD75c1325f35b9275C5A7FE97F22451",
"notes": "138 cEURC → Avalanche cWEURC; set when deployed"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0xfc7d256e48253f7a7e08f0e55b9ff7039eb2524c",
"addressTo": "0x30751782486eed825187C1EAe5DE4b4baD428AaE",
"notes": "138 cEURT → cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0xbdf0c4ea1d81e8e769b0f41389a2c733e3ff723e",
"addressTo": "0xb0FA7ec4123C7c275B3a89d9239569707Ea3C66A",
"notes": "138 cGBPC → cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0x4611d3424e059392a52b957e508273bc761c80f2",
"addressTo": "0x6389a643e71F000FC4ce5a0d58fDC4a40AD68EBE",
"notes": "138 cGBPT → cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0x04e1e22b0d41e99f4275bd40a50480219bc9a223",
"addressTo": "0x528376e3a4bAAE78F7F4D0E9aDB75eFA9942373E",
"notes": "138 cAUDC → cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0x3714b1a312e0916c7dcdc4edf480fc0339e59a59",
"addressTo": "0xCF9D867DA220c6B4756BeDC6888dDac3a0463AEa",
"notes": "138 cJPYC → cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0xc2fa05f12a75ac84ea778af9d6935ca807275e55",
"addressTo": "0x4f6167e9aE79878f6Cd71330eAD7f68a45Ed29DC",
"notes": "138 cCHFC → cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0x1872e033b30f3ce0498847926857433e0146394e",
"addressTo": "0x1B051588A33A7d56ed46f7C5C78870175b44F9FA",
"notes": "138 cCADC → cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0x4f95297c23d9f4a1032b1c6a2e553225cb175bee",
"addressTo": "0x826d5F3e5713C76a1D13e41A76843A361090c896",
"notes": "138 cXAUC → cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0xd2b4dbf2f6bd6704e066d752eec61fb0be953fd3",
"addressTo": "0xC15ACdBAC59B3C7Cb4Ea4B3D58334A4b143B4b44",
"notes": "138 cXAUT → cWXAUT"
}
]
@@ -778,70 +666,70 @@
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0xcb145ba9a370681e3545f60e55621ebf218b1031",
"addressTo": "0x0cb0192C056aa425C557BdeAD8E56C7eEabf7acF",
"notes": "138 cEURC → Base cWEURC; set when deployed"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0x73e0cf8bf861d376b3a4c87c136f975027f045ff",
"addressTo": "0xd6969bC19b53f866C64f2148aE271B2Dae0C58E4",
"notes": "138 cEURT → cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0x2a0023ad5ce1ac6072b454575996dffb1bb11b16",
"addressTo": "0x3CD9ee18db7ad13616FCC1c83bC6098e03968E66",
"notes": "138 cGBPC → cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0x22b98130ab4d9c355512b25ade4c35e75a4e7e89",
"addressTo": "0xBeF5A0Bcc0E77740c910f197138cdD90F98d2427",
"notes": "138 cGBPT → cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0xa846aead3071df1b6439d5d813156ace7c2c1da1",
"addressTo": "0x948690147D2e50ffe50C5d38C14125aD6a9FA036",
"notes": "138 cAUDC → cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0x29828e9ab2057cd3df3c9211455ae1f76e53d2af",
"addressTo": "0x58a8D8F78F1B65c06dAd7542eC46b299629A60dd",
"notes": "138 cJPYC → cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0xc1535e88578d984f12eab55863376b8d8b9fb05a",
"addressTo": "0xFb4B6Cc81211F7d886950158294A44C312abCA29",
"notes": "138 cCHFC → cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0xdc383c489533a4dd9a6bd3007386e25d5078b878",
"addressTo": "0xf9f5D0ACD71C76F9476F10B3F3d3E201F0883C68",
"notes": "138 cCADC → cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0x7e4b4682453bcce19ec903fb69153d3031986bc4",
"addressTo": "0xeE17bB0322383fecCA2784fbE2d4CD7d02b1905B",
"notes": "138 cXAUC → cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0xcc6ae6016d564e9ab82aaff44d65e05a9b18951c",
"addressTo": "0xc9750828124D4c10e7a6f4B655cA8487bD3842EB",
"notes": "138 cXAUT → cWXAUT"
}
]
@@ -890,70 +778,70 @@
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0x2a0023ad5ce1ac6072b454575996dffb1bb11b16",
"addressTo": "0xd6969bC19b53f866C64f2148aE271B2Dae0C58E4",
"notes": "138 cEURC → Arbitrum cWEURC; set when deployed"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0x22b98130ab4d9c355512b25ade4c35e75a4e7e89",
"addressTo": "0x3CD9ee18db7ad13616FCC1c83bC6098e03968E66",
"notes": "138 cEURT → cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0xa846aead3071df1b6439d5d813156ace7c2c1da1",
"addressTo": "0xBeF5A0Bcc0E77740c910f197138cdD90F98d2427",
"notes": "138 cGBPC → cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0x29828e9ab2057cd3df3c9211455ae1f76e53d2af",
"addressTo": "0x948690147D2e50ffe50C5d38C14125aD6a9FA036",
"notes": "138 cGBPT → cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0xc1535e88578d984f12eab55863376b8d8b9fb05a",
"addressTo": "0x58a8D8F78F1B65c06dAd7542eC46b299629A60dd",
"notes": "138 cAUDC → cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0xdc383c489533a4dd9a6bd3007386e25d5078b878",
"addressTo": "0xFb4B6Cc81211F7d886950158294A44C312abCA29",
"notes": "138 cJPYC → cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0x7e4b4682453bcce19ec903fb69153d3031986bc4",
"addressTo": "0xf9f5D0ACD71C76F9476F10B3F3d3E201F0883C68",
"notes": "138 cCHFC → cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0xcc6ae6016d564e9ab82aaff44d65e05a9b18951c",
"addressTo": "0xeE17bB0322383fecCA2784fbE2d4CD7d02b1905B",
"notes": "138 cCADC → cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0xa7762b63c4871581885ad17c5714ebb286a7480b",
"addressTo": "0xc9750828124D4c10e7a6f4B655cA8487bD3842EB",
"notes": "138 cXAUC → cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0x66568899ffe8f00b25dc470e878b65a478994e76",
"addressTo": "0x328Cd365Bb35524297E68ED28c6fF2C9557d1363",
"notes": "138 cXAUT → cWXAUT"
}
]
@@ -1002,70 +890,70 @@
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0x4ab39b5bab7b463435209a9039bd40cf241f5a82",
"addressTo": "0x2627177f33968128C7fb916F5B9E1f14cc550A80",
"notes": "138 cEURC → Optimism cWEURC; set when deployed"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0x6f521cd9fcf7884cd4e9486c7790e818638e09dd",
"addressTo": "0x07dE1f489E1bfCE2c326066a9DFc10e731CBA0CB",
"notes": "138 cEURT → cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0x3f8c409c6072a2b6a4ff17071927ba70f80c725f",
"addressTo": "0x9a1D0dBEE997929ED02fD19E0E199704d20914dB",
"notes": "138 cGBPC → cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0x456373d095d6b9260f01709f93fccf1d8aa14d11",
"addressTo": "0x5355148C4740fcc3D7a96F05EdD89AB14851206b",
"notes": "138 cGBPT → cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0x25603ae4bff0b71d637b3573d1b6657f5f6d17ef",
"addressTo": "0x50b073d0D1D2f002745cb9FC28a057d5be84911c",
"notes": "138 cAUDC → cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0x8e54c52d34a684e22865ac9f2d7c27c30561a7b9",
"addressTo": "0x1ED9E491A5eCd53BeF21962A5FCE24880264F63f",
"notes": "138 cJPYC → cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0x4d9bc6c74ba65e37c4139f0aec9fc5ddff28dcc4",
"addressTo": "0x8b6EE72001cAFcb21D56a6c4686D6Db951d499A6",
"notes": "138 cCHFC → cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0x9f6d2578003fe04e58a9819a4943732f2a203a61",
"addressTo": "0xA6eFb8783C8ad2740ec880e46D4f7E608E893B1B",
"notes": "138 cCADC → cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0xddc4063f770f7c49d00b5a10fb552e922aa39b2c",
"addressTo": "0x7062f35567BBAb4d98dc33af03B0d14Df42294D5",
"notes": "138 cXAUC → cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0x145e8e8c49b6a021969dd9d2c01c8fea44374f61",
"addressTo": "0x5fbCE65524211BC1bFb0309fd9EE09E786c6D097",
"notes": "138 cXAUT → cWXAUT"
}
]
@@ -1114,70 +1002,70 @@
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0x7574d37F42528B47c88962931e48FC61608a4050",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cEURC → Cronos cWEURC; set when deployed"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0x9f833b4f1012F52eb3317b09922a79c6EdFca77D",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cEURT → cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0xe5c65A76A541368d3061fe9E7A2140cABB903dbF",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cGBPC → cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0xBb58fa16bAc8E789f09C14243adEE6480D8213A2",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cGBPT → cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0xff3084410A732231472Ee9f93F5855dA89CC5254",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cAUDC → cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0x52aD62B8bD01154e2A4E067F8Dc4144C9988d203",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cJPYC → cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0xB55F49D6316322d5caA96D34C6e4b1003BD3E670",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cCHFC → cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0x32aD687F24F77bF8C86605c202c829163Ac5Ab36",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cCADC → cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0xf1B771c95573113E993374c0c7cB2dc1a7908B12",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cXAUC → cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0xD517C0cF7013f988946A468c880Cc9F8e2A4BCbE",
"addressTo": "0x0000000000000000000000000000000000000000",
"notes": "138 cXAUT → cWXAUT"
}
]
@@ -1434,118 +1322,6 @@
}
]
},
{
"fromChainId": 138,
"toChainId": 42220,
"notes": "Chain 138 ↔ Celo (CCIP); direct mapping; c*_cW = c* → cW* on destination",
"tokens": [
{
"key": "WETH9",
"name": "Wrapped Ether",
"addressFrom": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"addressTo": "0xD221812de1BD094f35587EE8E174B07B6167D9Af",
"notes": "138 WETH9 → Celo WETH"
},
{
"key": "Compliant_USDT",
"name": "cUSDT",
"addressFrom": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"addressTo": "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
"notes": "138 cUSDT → Celo USDT (native)"
},
{
"key": "Compliant_USDT_cW",
"name": "cUSDT→cWUSDT",
"addressFrom": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"addressTo": "0x73376eB92c16977B126dB9112936A20Fa0De3442",
"notes": "138 cUSDT → Celo cWUSDT; set when deployed"
},
{
"key": "Compliant_USDC",
"name": "cUSDC",
"addressFrom": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"addressTo": "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
"notes": "138 cUSDC → Celo USDC (native)"
},
{
"key": "Compliant_USDC_cW",
"name": "cUSDC→cWUSDC",
"addressFrom": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"addressTo": "0x4C38F9A5ed68A04cd28a72E8c68C459Ec34576f3",
"notes": "138 cUSDC → Celo cWUSDC; set when deployed"
},
{
"key": "Compliant_EURC_cW",
"name": "cEURC→cWEURC",
"addressFrom": "0x8085961F9cF02b4d800A3c6d386D31da4B34266a",
"addressTo": "0xb6D2f38b9015F32ccE8818509c712264E7fceeD3",
"notes": "138 cEURC → Celo cWEURC"
},
{
"key": "Compliant_EURT_cW",
"name": "cEURT→cWEURT",
"addressFrom": "0xdf4b71c61E5912712C1Bdd451416B9aC26949d72",
"addressTo": "0x7e6fB8D80f81430e560F8232b2A4fd06249d74ce",
"notes": "138 cEURT → Celo cWEURT"
},
{
"key": "Compliant_GBPC_cW",
"name": "cGBPC→cWGBPC",
"addressFrom": "0x003960f16D9d34F2e98d62723B6721Fb92074aD2",
"addressTo": "0xE37c332a88f112F9e039C5d92D821402A89c7052",
"notes": "138 cGBPC → Celo cWGBPC"
},
{
"key": "Compliant_GBPT_cW",
"name": "cGBPT→cWGBPT",
"addressFrom": "0x350f54e4D23795f86A9c03988c7135357CCaD97c",
"addressTo": "0x1dBa81f91f1BeC47FFf60eC3e7DeD780ad9968E3",
"notes": "138 cGBPT → Celo cWGBPT"
},
{
"key": "Compliant_AUDC_cW",
"name": "cAUDC→cWAUDC",
"addressFrom": "0xD51482e567c03899eecE3CAe8a058161FD56069D",
"addressTo": "0x2d3a2ED4Ca4d69912d217c305EE921609F7906A8",
"notes": "138 cAUDC → Celo cWAUDC"
},
{
"key": "Compliant_JPYC_cW",
"name": "cJPYC→cWJPYC",
"addressFrom": "0xEe269e1226a334182aace90056EE4ee5Cc8A6770",
"addressTo": "0x0b39F47D2E68aB0eB18d4b637Bbd1dD8E97cFbB5",
"notes": "138 cJPYC → Celo cWJPYC"
},
{
"key": "Compliant_CHFC_cW",
"name": "cCHFC→cWCHFC",
"addressFrom": "0x873990849DDa5117d7C644f0aF24370797C03885",
"addressTo": "0x8142BA530B08f3950128601F00DaaA678213DFdf",
"notes": "138 cCHFC → Celo cWCHFC"
},
{
"key": "Compliant_CADC_cW",
"name": "cCADC→cWCADC",
"addressFrom": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"addressTo": "0x0C242b513008Cd49C89078F5aFb237A3112251EB",
"notes": "138 cCADC → Celo cWCADC"
},
{
"key": "Compliant_XAUC_cW",
"name": "cXAUC→cWXAUC",
"addressFrom": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"addressTo": "0x61D642979eD75c1325f35b9275C5A7FE97F22451",
"notes": "138 cXAUC → Celo cWXAUC"
},
{
"key": "Compliant_XAUT_cW",
"name": "cXAUT→cWXAUT",
"addressFrom": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"addressTo": "0x30751782486eed825187C1EAe5DE4b4baD428AaE",
"notes": "138 cXAUT → Celo cWXAUT"
}
]
},
{
"fromChainId": 651940,
"toChainId": 42220,

View File

@@ -1,64 +0,0 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://d-bis.org/schemas/universal-resource-activation.evidence-package.v1.json",
"title": "EvidencePackage",
"type": "object",
"required": ["evidencePackageId", "resourceIds", "actionType", "reconciliationStatus"],
"properties": {
"evidencePackageId": { "type": "string", "minLength": 1 },
"resourceIds": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"actionType": {
"type": "string",
"enum": [
"REGISTER",
"FUNDING_DRAW",
"CAP_RESERVE",
"MINT_AUTH",
"DEPLOY",
"ALLOCATE",
"REVERSAL"
]
},
"initiator": { "type": "string" },
"timestamp": { "type": "string" },
"jurisdiction": { "type": "string" },
"lawfulBasis": { "type": "string" },
"policyDecisions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"profileId": { "type": "string" },
"version": { "type": "string" },
"result": { "type": "string" },
"reason": { "type": "string" }
}
}
},
"complianceResults": {
"type": "array",
"items": {
"type": "object",
"properties": {
"check": { "type": "string" },
"result": { "type": "string" },
"ref": { "type": "string" }
}
}
},
"custodyOrSourceEvidence": { "type": "string" },
"accountingRef": { "type": "string" },
"settlementOrChainRef": { "type": "string" },
"deploymentRef": { "type": "string" },
"reconciliationStatus": {
"type": "string",
"enum": ["open", "matched", "exception"]
},
"explanation": { "type": "string" }
},
"additionalProperties": true
}

View File

@@ -1,29 +0,0 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://d-bis.org/schemas/universal-resource-activation.manifest.v1.json",
"title": "UniversalResourceManifest",
"type": "object",
"required": ["schemaVersion", "resources", "evidencePackages"],
"properties": {
"schemaVersion": { "type": "string", "pattern": "^1\\." },
"updatedAt": { "type": "string" },
"resources": {
"type": "array"
},
"evidencePackages": {
"type": "array"
},
"policyProfileRefs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"version": { "type": "string" }
},
"required": ["id"]
}
}
},
"additionalProperties": true
}

View File

@@ -1,70 +0,0 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://d-bis.org/schemas/universal-resource-activation.policy-profile-registry.v1.json",
"title": "PolicyProfileRegistry",
"type": "object",
"required": ["schemaVersion", "profiles"],
"properties": {
"schemaVersion": { "type": "string", "minLength": 1 },
"updatedAt": { "type": "string" },
"description": { "type": "string" },
"profiles": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"policyProfileId",
"version",
"jurisdictions",
"participantClasses",
"resourceFamilies",
"minimumGruGovernanceLevel"
],
"properties": {
"policyProfileId": { "type": "string", "minLength": 1 },
"version": { "type": "string", "minLength": 1 },
"effectiveFrom": { "type": "string" },
"effectiveTo": { "type": "string" },
"supersedes": { "type": "string" },
"jurisdictions": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"participantClasses": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"resourceFamilies": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"tokenizationModesAllowed": {
"type": "array",
"items": { "type": "string" }
},
"ledgerModel": { "type": "string" },
"standards": {
"type": "array",
"items": { "type": "string" }
},
"minimumGruGovernanceLevel": {
"type": "integer",
"minimum": 0,
"maximum": 5
},
"complianceMatrixPaths": {
"type": "array",
"items": { "type": "string" }
},
"notes": { "type": "string" }
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}

View File

@@ -1,69 +0,0 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://d-bis.org/schemas/universal-resource-activation.resource.v1.json",
"title": "UniversalResource",
"type": "object",
"required": ["resourceId", "schemaVersion", "family", "lifecycleState", "deployabilityState"],
"properties": {
"resourceId": { "type": "string", "minLength": 1, "description": "bytes32 hex (0x...) or UUID" },
"schemaVersion": { "type": "integer", "minimum": 1 },
"displayName": { "type": "string" },
"description": { "type": "string" },
"family": {
"type": "string",
"enum": [
"SKR_SAFEKEEPING",
"STRATEGIC_RECORD",
"SERVER_FUNDS",
"FIAT_DIGITAL",
"CRYPTO",
"COMMODITY",
"SECURITY",
"RWA_GENERIC",
"INFRA_CAPACITY"
]
},
"subType": { "type": "string" },
"ownerParticipantId": { "type": "string" },
"jurisdiction": { "type": "string" },
"policyProfileId": { "type": "string" },
"tokenizationMode": {
"type": "string",
"enum": ["NONE", "CLAIM", "ENTITLEMENT", "TRANSFERABLE_ERC20", "RESTRICTED_SECURITY"]
},
"unitOfMeasure": { "type": "string" },
"quantity": { "type": "string" },
"valuationMethod": {
"type": "string",
"enum": ["MARK", "NAV", "AMORTIZED", "NOTIONAL", "NONE"]
},
"valuationRef": { "type": "string" },
"encumbranceState": {
"type": "string",
"enum": ["unencumbered", "held", "pledged", "lien", "disputed"]
},
"lifecycleState": {
"type": "string",
"enum": ["draft", "pending_validation", "active", "suspended", "closed", "void"]
},
"deployabilityState": {
"type": "string",
"enum": [
"informational_only",
"collateral_only",
"funding_eligible",
"settlement_linked",
"infra_allocatable",
"fully_deployable"
]
},
"evidenceRefs": { "type": "array", "items": { "type": "string" } },
"custodianId": { "type": "string" },
"infraHostId": { "type": "string" },
"infraBundleId": { "type": "string" },
"riskTier": { "type": "integer", "minimum": 1, "maximum": 5 },
"createdAt": { "type": "string" },
"updatedAt": { "type": "string" }
},
"additionalProperties": true
}

Some files were not shown because too many files have changed in this diff Show More