Chains and Timelocks
Current chain-family values, hash-function rules, and Fusion's present timelock policy layers.
This page is a snapshot of the current values Fusion uses.
It intentionally calls out a real implementation detail:
there is more than one timelock layer today, and those layers are not identical.
Chain registry
The backend chain registry currently includes:
| Chain | Chain ID | Family | Block time | Finality time | Hash function | Native symbol |
|---|---|---|---|---|---|---|
| Arbitrum Sepolia | 421614 |
evm |
0.25s |
60s |
keccak256 |
ETH |
| Base Sepolia | 84532 |
evm |
2s |
60s |
keccak256 |
ETH |
| Midnight Preprod | 2147483647 |
midnight |
6s |
18s |
sha256 |
DUST |
Hash-function policy
The backend helper logic currently resolves hash function like this:
| Route | Hash function |
|---|---|
| Same-family, non-shielded EVM route | chain-native behavior, which is keccak256 for the EVM chains in the registry |
| Cross-family route | sha256 |
| Shielded route on any family | sha256 |
This is why the HTLC contracts expose both standard creation methods and _SHA256 variants.
Timelock layer 1: backend route policy
The backend has a route-aware timelock helper with these values:
| Route | Source seconds | Destination seconds |
|---|---|---|
| EVM -> EVM | 2700 |
900 |
| EVM -> Midnight | 2700 |
900 |
| Midnight -> EVM | 2700 |
900 |
| Midnight -> Midnight | 3600 |
1200 |
The backend uses this layer for route guidance such as sourceLockRequirements in the HTLC params response.
Timelock layer 2: EVM HTLC contract constants
The HTLCAtomicSwap contract also hardcodes:
| Contract constant | Value |
|---|---|
SOURCE_CHAIN_TIMEOUT |
2700 seconds |
DESTINATION_CHAIN_TIMEOUT |
900 seconds |
Those values are the current EVM contract defaults for HTLC creation.
Why this matters
For routes that touch EVM, these two layers intentionally share the same 45 minute source / 15 minute destination floor. That gives local shielded settlement proof generation enough time to complete before the destination HTLC becomes refundable.
The safest way to read this today is:
- the backend route policy expresses the coordinator's intended timing budget per route family
- the EVM HTLC contract constants express the on-chain timeout defaults enforced by the Solidity implementation
- backend startup validates the deployed EVM HTLC contracts expose at least these timeout values before accepting swaps
If you are integrating or operating Fusion, verify the deployed contract addresses before treating any timeout table as authoritative.
Practical advice
- Use backend discovery and route APIs for runtime guidance.
- Read the current contract if you need exact EVM timeout behavior.
- Reconcile timing assumptions before treating a route as production-ready.
Chain-family notes
EVM family
- uses 20-byte addresses
- uses
keccak256by default for same-family routes - currently covers Arbitrum Sepolia and Base Sepolia as the live public corridor
Midnight family
- uses 32-byte canonical hex addresses
- uses
sha256 - requires extra operational services (sidecar, proof server, indexer)
- exposes
NIGHTas the live swap asset and keepsDUSTas the gas/resource token