- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains - Omit embedded publish git dirs and empty placeholders from index Made-with: Cursor
10 KiB
info.defi-oracle.io — Chain 138 info site
Purpose: Operator-facing steps to publish the SPA in info-defi-oracle-138/ at https://info.defi-oracle.io.
App README: info-defi-oracle-138/README.md
What the site does
Positioning: Copy and agent hints describe the programme as serving regulated financial entities and settlement workflows (cross-border payments and settlements), with tokenized instruments framed as digital currencies, digital securities, digital commodities, and other Compliant Digital Assets—explicitly not retail crypto speculation. Governance narrative (public): DeFi Oracle, LLC as technical architecture; international regulated/governmental oversight; Digital Bank of International Settlements / International Commerce Courts enforcement framing for GRU policy and serious violations—see /governance. Ecosystem summary: /ecosystem. Public vs authenticated documentation for governments, regulators, FIs, law enforcement, courts, developers, public: /documentation. SolaceNet (capability/policy plane, public framing): /solacenet. See also /disclosures.
- Overview: Chain 138 network metadata from
GET /api/v1/networkswhen the API is reachable; cross-chain topology (WETH9 / WETH10 / trustless tabs) fromGET /api/v1/bridge/routeswith bundled fallback. - c & cW:** Live token list from
GET /api/v1/tokens?chainId=138plus live cW* registry fromGET /api/v1/report/cw-registrywith bundled fallback. - Gas-native rollout: Live gas-family registry from
GET /api/v1/report/gas-registry, including canonicalc*gas symbols on Chain 138, destinationcW*mirrors, backing mode, quote lanes, and runtime lane readiness, with bundled fallback for static publishing. - Pools: Samples pools via
GET /api/v1/tokens/:address/poolsfor compliant tokens. - Swap: Quote from
GET /api/v1/quote(Uniswap-style estimate) and on-chain swapExactIn on canonicalDODOPMMIntegration(0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895perdocs/11-references/CONTRACT_ADDRESSES_REFERENCE.md) (wallet). The SPA setsminOutfromquerySellBase/querySellQuoteon the pool so gas estimation does not fail on PMM mismatch. For CLI / runbooks:bash scripts/verify/pmm-swap-quote-chain138.sh --token-in … --amount-in …prints suggestedminAmountOutand examplecast send. - Routing:
GET /api/v1/bridge/routesand token-mapping pairs for cross-chain planning (same topology component as Overview). - Agents:
/agents— copyable live JSON context (networks + bridge routes + API paths). Static files for tools:/llms.txt,/agent-hints.json,/robots.txt,/sitemap.xml. - Governance:
/governance— DeFi Oracle, LLC technical architecture; international supervisory governance; DBIS / International Commerce Courts / GRU enforcement narrative (SPA). - Ecosystem:
/ecosystem— partners, products, services, interconnections (SPA). - Documentation:
/documentation— audiences; public hub vs secure authenticated portal; why some material is not public (SPA). - SolaceNet:
/solacenet— capability and policy control plane; rails governance summary for public audiences (SPA). - Disclosures:
/disclosures— audience (regulated finance vs retail crypto), Compliant Digital Assets framing, risk, naming (“compliant” / c* taxonomy), on-chain verification, indexer caveats (SPA route).
Prerequisites
- Browser API path (recommended): The dedicated info LXC nginx proxies
/token-aggregation/to the Blockscout / token-aggregation service (seeconfig/nginx/info-defi-oracle-io.site.conf). The SPA defaults to{site origin}/token-aggregationso the browser stays same-origin (no cross-site CORS, no mixed content). Override only if needed:VITE_TOKEN_AGGREGATION_API_BASEat build time. - Static host: Web root for
dist/afterpnpm --filter info-defi-oracle-138 build(or usesync-info-defi-oracle-to-vmid2400.shto VMID 2410).
Steps
- Set build-time env if defaults are wrong:
VITE_TOKEN_AGGREGATION_API_BASE,VITE_RPC_URL_138. pnpm --filter info-defi-oracle-138 build- Upload
info-defi-oracle-138/dist/to the web root. - Configure the web server for SPA fallback: all routes →
index.html. - Add NPMplus proxy host info.defi-oracle.io → that origin; request Let’s Encrypt certificate.
- Verify in a browser:
/,/governance,/ecosystem,/documentation,/solacenet,/tokens,/pools,/swap,/routing,/agents,/disclosuresover HTTPS; confirm/llms.txtand/agent-hints.jsonreturn 200 (copied frominfo-defi-oracle-138/public/intodist/at build time). Preferpnpm run verify:info-defi-oracle-public(checks SPA paths, static files,agent-hints.jsonfields, and/token-aggregation/api/v1/networks).
After deploy (automated)
From any host with curl (optional jq for JSON sanity):
bash scripts/verify/check-info-defi-oracle-public.sh
Override base URL: INFO_SITE_BASE=https://staging.example.com bash scripts/verify/check-info-defi-oracle-public.sh
Stale edge: If curl -I shows an old Last-Modified or new routes 404, the edge is still serving a previous dist/ — rebuild, re-upload/sync, and re-run the script.
Placeholder HTML: If curl -s https://info.defi-oracle.io/ | head shows <title>Default Page</title> (or similar generic hosting default), the proxy is not pointing at the Vite dist/ output — fix NPMplus upstream / tunnel target, then re-run check-info-defi-oracle-public.sh.
Static agent files: llms.txt, agent-hints.json, robots.txt, and sitemap.xml must be deployed at the site root (Vite copies public/ into dist/). If your sync only uploaded older assets, run a fresh pnpm --filter info-defi-oracle-138 build first.
Cloudflare DNS (.env API creds): set-info-defi-oracle-dns-to-vmid2400-tunnel.sh defaults to INFO_DEFI_ORACLE_EDGE_MODE=auto. If the tunnel ID is not in your account (Tunnel not found from update-vmid2400-tunnel-config.sh), publish an A record to your NPM WAN instead:
INFO_DEFI_ORACLE_EDGE_MODE=public_ip bash scripts/cloudflare/set-info-defi-oracle-dns-to-vmid2400-tunnel.sh
Set INFO_DEFI_ORACLE_PUBLIC_IP or PUBLIC_IP if the NPM edge is not the default 76.53.10.36.
HTTPS “Default Page” on NPM while HTTP works: Request Let’s Encrypt certs for info.defi-oracle.io / www.info.defi-oracle.io (scripts/request-npmplus-certificates.sh with CERT_DOMAINS_FILTER='info\.defi-oracle' or ^79\| for a single host id). Without a certificate, NPMplus may serve its default SSL vhost.
Cloudflare cache vs origin: If / and /llms.txt pass but /robots.txt still returns NPM “Default Page” through the orange-cloud proxy, purge cache for static URLs:
bash scripts/cloudflare/purge-info-defi-oracle-cache.sh
Tunnel ingress (when tunnel exists in account): scripts/update-vmid2400-tunnel-config.sh routes info / www.info to http://IP_INFO_DEFI_ORACLE_WEB:80 (not 127.0.0.1:80). Override with INFO_DEFI_ORACLE_TUNNEL_UPSTREAM if needed.
Dedicated web LXC (recommended)
VMID 2400 is ThirdWeb RPC, not a static site host. Use a small nginx-only LXC (default VMID 2410, 192.168.11.218 — see config/ip-addresses.conf).
- Provision once (Debian + nginx + vhost; on r630-01 by default, override
PROXMOX_HOSTfor another node):
bash scripts/deployment/provision-info-defi-oracle-web-lxc.sh
- Build and sync the SPA into that CT (script name is historical; default target is 2410):
bash scripts/deployment/sync-info-defi-oracle-to-vmid2400.sh
Override: INFO_DEFI_ORACLE_VMID, PROXMOX_HOST, IP_INFO_DEFI_ORACLE_WEB as needed.
- Sync the primary public NPMplus edge so
info.defi-oracle.ioandwww.info.defi-oracle.ioproxy toIP_INFO_DEFI_ORACLE_WEB:80(defaults updated inupdate-npmplus-proxy-hosts-api.sh):
bash scripts/nginx-proxy-manager/update-npmplus-proxy-hosts-api.sh
- Request or renew the NPMplus certificate for the two hostnames:
CERT_DOMAINS_FILTER='(^|,)www?\\.info\\.defi-oracle\\.io$|info\\.defi-oracle\\.io|www\\.info\\.defi-oracle\\.io' \
bash scripts/request-npmplus-certificates.sh
- Publish DNS. The helper prefers a Cloudflare tunnel when present, otherwise the public NPMplus edge IP:
bash scripts/cloudflare/set-info-defi-oracle-dns-to-vmid2400-tunnel.sh
-
Optional: tunnel ingress for RPC lives on VMID 2400 — info traffic normally flows NPMplus → dedicated web LXC; only use
scripts/update-vmid2400-tunnel-config.shif you intentionally routeinfovia the same tunnel stack as RPC. -
Verify public resolution, HTTPS, SPA, agent static files, and same-origin token-aggregation JSON:
getent ahosts info.defi-oracle.io
curl -I https://info.defi-oracle.io
bash scripts/verify/check-info-defi-oracle-public.sh
# Optional: scored Playwright pass (Chromium): pnpm exec playwright install chromium && pnpm run audit:info-defi-oracle-site
CI and scheduling
- Build (PR/push):
.github/workflows/info-defi-oracle-138.ymlrunspnpm --filter info-defi-oracle-138 buildwhen the package or lockfile changes. - Public smoke:
.github/workflows/verify-info-defi-oracle-public.ymlrunscheck-info-defi-oracle-public.shon workflow_dispatch (optional input info_site_base) and weekly (Mondays UTC). Actions variableINFO_SITE_BASEis used when the input is empty; otherwise the script defaults tohttps://info.defi-oracle.io.