Files
bridge-shim/k8s/tenant-config.yaml
zeekay 1524d93a12 feat: initial Zoo Bridge white-label shim
White-label tenant shim for the canonical bridge — bridge.zoo.network.

The shim composes the OSS upstream (ghcr.io/luxfi/bridge:v1.1.39) and
ships:

- tenant.yaml — Zoo Bridge declarative config (brand=Zoo Bridge,
  IAM=zoo.id, KMS=kms.zoo.network, network=Zoo Mainnet chainId 200200,
  pq=strict-pq, chains=eth/btc/sol/ton/xrp/dot/zoo).
- Dockerfile — FROM upstream + COPY tenant.yaml + --tenant-config pin.
- contracts/tenant.json + Deploy.sh — wraps @luxfi/standard v1.7.5's
  DeployTenant.s.sol with the Zoo manifest.
- k8s/ — Deployment, Service, IngressRoute (bridge.zoo.network),
  ConfigMap, Namespace, Kustomization.
- tenant_test.go — go test imports luxfi/bridge/pkg/tenant.Load and
  validates tenant.yaml.
- .github/workflows/build.yml — semver-tag-gated GHCR push via the
  zooai org's zoo-build-linux-amd64 ARC pool.

Tests: GOWORK=off go test ./... → PASS.
2026-05-28 01:48:13 -07:00

68 lines
2.2 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: zoo-bridge
labels:
app.kubernetes.io/name: zoo-bridge
---
apiVersion: v1
kind: ConfigMap
metadata:
name: zoo-bridge-tenant
namespace: zoo-bridge
data:
tenant.yaml: |
brand:
name: "Zoo Bridge"
slug: "zoo-bridge"
primaryColor: "#00d97e"
logoURL: "/logo.svg"
faviconURL: "/icon.svg"
docsURL: "https://docs.zoo.network"
title: "Zoo Bridge"
network:
id: 200200
name: "Zoo Mainnet"
rpcURL: "https://rpc.zoo.network"
explorerURL: "https://explorer.zoo.network"
iam:
endpoint: "https://zoo.id"
clientID: "zoo-bridge"
organization: "zoo"
kms:
endpoint: "https://kms.zoo.network"
projectID: "zoo-bridge"
environment: "prod"
mpc:
url: "http://mpc-node-0.mpc-node-headless.zoo-mpc.svc:9800"
orgID: "zoo-bridge"
dashboardURL: "http://mpc-dashboard.zoo-mpc.svc:8081"
threshold: 3
operators:
- "zoo-mpc-node-0"
- "zoo-mpc-node-1"
- "zoo-mpc-node-2"
- "zoo-mpc-node-3"
- "zoo-mpc-node-4"
pqProfile: "strict-pq"
supportedChains: ["eth", "btc", "sol", "ton", "xrp", "dot", "zoo"]
basketAllowlist:
USD: ["USDC", "USDT", "DAI"]
BTC: ["BTC"]
ETH: ["ETH"]
SOL: ["SOL"]
TON: ["TON"]
XRP: ["XRP"]
DOT: ["DOT"]
feeReceiverAddr: "0xdEaD000000000000000000000000000000000000"
domain: "bridge.zoo.network"
releasePool:
evm: { size: 10, mintNetwork: "ZOO_MAINNET", balanceThreshold: "100000000000000000" }
sol: { size: 5, mintNetwork: "SOLANA_MAINNET", balanceThreshold: "1000000000" }
btc: { size: 5, mintNetwork: "BITCOIN_MAINNET", balanceThreshold: "100000" }
xrp: { size: 5, mintNetwork: "XRP_MAINNET", balanceThreshold: "10000000" }
dot: { size: 3, mintNetwork: "POLKADOT_MAINNET", balanceThreshold: "100000000000" }
ton: { size: 5, mintNetwork: "TON_MAINNET", balanceThreshold: "1000000000" }
listen: ":8080"
networksConfigPath: "/etc/bridge/networks.yaml"