Files
bridge-shim/k8s/tenant-config.yaml
zeekay b7534970e5 feat: initial Hanzo Bridge white-label shim
White-label tenant shim for the canonical bridge — bridge.hanzo.network.

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

- tenant.yaml — Hanzo Bridge declarative config (brand=Hanzo Bridge,
  IAM=hanzo.id, KMS=kms.hanzo.ai, network=Hanzo Mainnet chainId 36963,
  pq=strict-pq, chains=eth/btc/sol/ton/xrp/dot/hanzo).
- 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 Hanzo manifest.
- k8s/ — Deployment, Service, IngressRoute (bridge.hanzo.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
  hanzoai org's hanzo-build-linux-amd64 ARC pool.

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

68 lines
2.2 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: hanzo-bridge
labels:
app.kubernetes.io/name: hanzo-bridge
---
apiVersion: v1
kind: ConfigMap
metadata:
name: hanzo-bridge-tenant
namespace: hanzo-bridge
data:
tenant.yaml: |
brand:
name: "Hanzo Bridge"
slug: "hanzo-bridge"
primaryColor: "#000000"
logoURL: "/logo.svg"
faviconURL: "/icon.svg"
docsURL: "https://docs.hanzo.ai"
title: "Hanzo Bridge"
network:
id: 36963
name: "Hanzo Mainnet"
rpcURL: "https://rpc.hanzo.network"
explorerURL: "https://explorer.hanzo.network"
iam:
endpoint: "https://hanzo.id"
clientID: "hanzo-bridge"
organization: "hanzo"
kms:
endpoint: "https://kms.hanzo.ai"
projectID: "hanzo-bridge"
environment: "prod"
mpc:
url: "http://mpc-node-0.mpc-node-headless.hanzo-mpc.svc:9800"
orgID: "hanzo-bridge"
dashboardURL: "http://mpc-dashboard.hanzo-mpc.svc:8081"
threshold: 3
operators:
- "hanzo-mpc-node-0"
- "hanzo-mpc-node-1"
- "hanzo-mpc-node-2"
- "hanzo-mpc-node-3"
- "hanzo-mpc-node-4"
pqProfile: "strict-pq"
supportedChains: ["eth", "btc", "sol", "ton", "xrp", "dot", "hanzo"]
basketAllowlist:
USD: ["USDC", "USDT", "DAI"]
BTC: ["BTC"]
ETH: ["ETH"]
SOL: ["SOL"]
TON: ["TON"]
XRP: ["XRP"]
DOT: ["DOT"]
feeReceiverAddr: "0xdEaD000000000000000000000000000000000000"
domain: "bridge.hanzo.network"
releasePool:
evm: { size: 10, mintNetwork: "HANZO_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"