Tezos CCIP DON and Cross-Chain – Remaining Items
This document lists all remaining items that need to be developed or executed after the implementation plan (Phases 1–6) has been completed. It is derived from the plan, runbooks, and codebase review.
Recently implemented (development): Feature flags (TEZOS_BRIDGE_ENABLED, ETHERLINK_BRIDGE_ENABLED) and bridge-destination filter in routing; bridge rate limits/caps module (alltra-lifi-settlement); verification script (smom-dbis-138/scripts/verify-tezos-etherlink-support.js); EtherlinkRelayReceiver contract and deploy script; Tezos relay service scaffold (services/tezos-relay); Etherlink relay service scaffold (services/etherlink-relay); Jumper optional API call when JUMPER_API_KEY set.
1. External verification (non-code)
| Item |
Owner |
Notes |
| Verify Etherlink in CCIP supported networks |
Ops / Eng |
Check CCIP supported networks for chain 42793. If listed: record chain selector, Router address, fee token; proceed with CCIP path. If not: document “custom relay only” and use Etherlink relay runbook. |
| Verify Jumper API support |
Eng |
Verify Jumper API/SDK support for 138, 651940, 42793, Tezos. Document in TEZOS_JUMPER_SUPPORT_MATRIX. If unsupported: keep jumperSupported: false and use LiFi + direct adapter only. |
| Verify LiFi for Etherlink |
Eng |
Check LiFi API (e.g. https://li.quest/v1/chains) for chain 42793. Set lifiSupported and ccipSupported in alltra-lifi-settlement/src/config/chains.ts and CHAIN_SUPPORT.md after verification. |
2. Smart contracts and deployment (execution)
| Item |
Owner |
Notes |
| Run InitializeRegistry |
Ops |
Run InitializeRegistry.s.sol (or equivalent) so BridgeRegistry has Etherlink (42793) and Tezos L1 (chainId 1) registered. |
| Run DeployAllAdapters |
Ops |
Run DeployAllAdapters.s.sol to deploy TezosAdapter, EVMAdapter(42793), and register them in ChainRegistry. |
| Etherlink receiver contracts |
Eng |
If CCIP supports Etherlink: Deploy CCIP receiver bridges and token contracts on Etherlink; add Etherlink to addDestination on source; fund LINK. If CCIP does not: Deploy relay-compatible receiver on Etherlink (e.g. relayMintOrUnlock-style interface); no such contract exists in repo yet. |
| Token list governance |
Gov / Ops |
Submit governance proposal to add Etherlink (42793) and Tezos L1 tokens to token list; extend schema if needed; execute via TokenlistGovernanceSync (submitTokenlistVersion + timelock). |
| Set Etherlink finality |
Eng |
TEZOS_CROSS_CHAIN_FINALITY marks Etherlink as “TBD (e.g. 12)”. Set confirmation blocks in relay/DON config once decided. |
3. Off-chain services (development and operation)
| Item |
Owner |
Notes |
| Tezos L1 relay service |
Eng / Ops |
Implement and run relay that: subscribes to TezosBridgeInitiated from TezosAdapter; performs Tezos-side mint/transfer; calls confirmTransaction(requestId, tezosTxHash) with ORACLE_ROLE. Runbook: TEZOS_L1_RELAY_RUNBOOK. No relay code for Tezos exists in repo (existing relay is 138→Mainnet only). |
| Etherlink custom relay service |
Eng / Ops |
If CCIP does not support Etherlink: Implement relay that: monitors source chain for bridge messages to 42793; queues; calls relay-compatible receiver on Etherlink (relayMintOrUnlock or equivalent). Runbook: ETHERLINK_RELAY_RUNBOOK. No Etherlink-specific relay code exists. |
| Etherlink relay-compatible receiver contract |
Eng |
If using custom relay to Etherlink: implement and deploy receiver on Etherlink with e.g. relayMintOrUnlock(messageId, token, recipient, amount) and access control; idempotency via messageId. |
4. Routing and settlement (development)
| Item |
Owner |
Notes |
| Feature flags in routing |
Eng |
✅ Done. Checks for TEZOS_BRIDGE_ENABLED and ETHERLINK_BRIDGE_ENABLED implemented in alltra-lifi-settlement/src/config/chains.ts (isBridgeDestinationEnabled, isTezosBridgeEnabled, isEtherlinkBridgeEnabled). Used in LiFiRoutingService and JumperRoutingService. When false, Tezos (1) and Etherlink (42793) are excluded from route options. |
| Rate limits and caps per destination |
Eng |
Enforce per-destination rate limits (e.g. 50/hr Tezos, 100/hr Etherlink) and per-tx/daily caps (see production config) in app or relay. |
| Jumper API integration |
Eng |
JumperRoutingService currently returns null (stub). When Jumper supports the chains: implement real API calls (get quote, get route); set JUMPER_API_KEY; set jumperSupported: true in chains config for supported chain pairs. |
5. DON and cross-chain ops (execution)
| Item |
Owner |
Notes |
| Register Etherlink in DON (if CCIP) |
DON Ops |
If Etherlink is on CCIP: register Etherlink chain selector and destination in DON config; run Commit/Execute tests for 138→Etherlink (and reverse if applicable). See TEZOS_ETHERLINK_DON_CONFIG. |
| RMN policy for Tezos/Etherlink |
Security / Ops |
If Etherlink uses CCIP: define and test RMN blessing/veto for high-value Tezos/Etherlink flows. See TEZOS_ETHERLINK_RMN_POLICY. |
6. Monitoring and production (implementation)
| Item |
Owner |
Notes |
| Implement metrics and dashboards |
Ops / Eng |
TEZOS_ETHERLINK_BRIDGE_MONITORING describes metrics (e.g. tezos_relay_events_detected_total, etherlink_relay_queue_depth). Implement these in Tezos and Etherlink relay services; add Prometheus/Grafana dashboards and panels. |
| Configure alerts |
Ops |
Configure alerting for: relay confirmation/submission failures; duplicate attempts; large transfers; backlog and queue depth; low LINK balance. Alert rules and runbook links are in the monitoring doc. |
| Enable in production |
Ops / Product |
After security sign-off and runbook readiness: set TEZOS_BRIDGE_ENABLED=true and ETHERLINK_BRIDGE_ENABLED=true; ensure rate limits and caps are active. |
7. Testing and security (execution)
| Item |
Owner |
Notes |
| Run TezosAdapter unit tests in CI |
Eng |
TezosAdapter.t.sol exists; ensure forge test for this (and related) tests runs in CI on every PR. |
| Integration tests |
Eng |
Per TEZOS_INTEGRATION_TESTING: local + forked Etherlink (or mock); relay + confirmTransaction; BridgeRegistry/ChainRegistry with 42793 and 1. |
| Ghostnet E2E |
Ops / Eng |
Run E2E on Tezos Ghostnet per TEZOS_E2E_RUNBOOK; then mainnet with rate limits. |
| Security review |
Security |
Security review of new Etherlink contracts and relay code; sign-off before mainnet Tezos/Etherlink per plan Phase 5. |
8. Other codebase TODOs (optional / broader scope)
These are existing TODOs in the repo that are not part of the Tezos/Etherlink plan but may affect bridging or routing:
| Location |
Item |
| alltra-lifi-settlement |
curve.service.ts, uniswap.service.ts: stubs; implement when Curve/Uniswap pools exist on 138/651940. |
| smom-dbis-138 |
EnhancedSwapRouter.sol: Uniswap V3 quoter placeholder; Balancer pool tokens TODO. |
| smom-dbis-138 |
register-all-mainnet.s.sol: avgBlockTime – script and ALL_MAINNET_CONFIGURATION document "verify actual block time"; operator to set value when known (e.g. 2s placeholder in script). |
| smom-dbis-138 |
Transaction-mirroring-service, state-anchoring-service: exponential backoff and validator signature collection placeholders. |
Summary
- External verification: 3 items (CCIP, Jumper, LiFi for Etherlink).
- Contracts and deployment: 5 items (run scripts, Etherlink receivers, token list governance, finality).
- Off-chain services: 3 items (Tezos relay, Etherlink relay, Etherlink receiver contract if custom relay).
- Routing/settlement: 3 items (feature flags, rate limits/caps, Jumper API integration).
- DON/ops: 2 items (DON registration for Etherlink if CCIP, RMN policy).
- Monitoring/production: 3 items (metrics/dashboards, alerts, go-live flags).
- Testing/security: 4 items (CI unit tests, integration tests, Ghostnet E2E, security review).
Total: 23 plan-related remaining items (plus optional broader-scope TODOs in §8).