Supported Networks
Mainnet networks
| Network | Chain ID | Chain Selector | Type |
|---|---|---|---|
Ethereum Mainnet | 1 | 5009297550715157269 | Mainnet |
Arbitrum One | 42161 | 4949039107694359620 | Mainnet |
Avalanche | 43114 | 6433500567565415381 | Mainnet |
Polygon | 137 | 4051577828743386545 | Mainnet |
Base | 8453 | 15971525489660198786 | Mainnet |
Testnet networks
| Network | Chain ID | Chain Selector | Type |
|---|---|---|---|
Ethereum Sepolia | 11155111 | 16015286601757825753 | Testnet |
Arbitrum Sepolia | 421614 | 3478487238524512106 | Testnet |
Avalanche Fuji | 43113 | 14767482510784806043 | Testnet |
Polygon Amoy | 80002 | 16281711391670634445 | Testnet |
Base Sepolia | 84532 | 10344971235874465080 | Testnet |
Discovering networks at runtime
Go SDK
import (
"context"
"fmt"
"os"
crec "github.com/smartcontractkit/crec-sdk"
)
client, err := crec.NewClient(
os.Getenv("CREC_BASE_URL"),
os.Getenv("CREC_API_KEY"),
)
if err != nil { return err }
networks, hasMore, err := client.ListNetworks(ctx)
if err != nil { return err }
_ = hasMore
for _, n := range networks {
netType := "unknown"
if n.Type != nil {
netType = string(*n.Type) // "mainnet" | "testnet"
}
defaultCL := "—"
if n.DefaultConfidenceLevel != nil {
defaultCL = string(*n.DefaultConfidenceLevel) // e.g. "finalized"
}
fmt.Printf("%-25s family=%-6s type=%-7s chain_id=%-10s selector=%s default_cl=%s\n",
n.Name, n.ChainFamily, netType, n.ChainId, n.ChainSelector, defaultCL)
}
REST
curl https://cre-connect.api.chain.link/v1/networks \
-H "Authorization: Apikey $CREC_API_KEY" \
Response:
{
"data": [
{
"id": "320efa6d-af83-4dae-89f1-5a124404a54d",
"name": "Ethereum Sepolia",
"chain_selector": "16015286601757825753",
"chain_id": "11155111",
"chain_family": "evm",
"type": "testnet",
"default_confidence_level": "finalized",
"created_at": 1775503594,
"updated_at": 1775503594
}
],
"has_more": false
}
Network record fields
Each Network record exposes the fields you need to wire into other CRE Connect resources:
| Field | Used by | Notes |
|---|---|---|
id | Diagnostic / display | Internal UUID for the network row. |
name | UI / logs | Human-readable name (e.g. "Ethereum Mainnet"). |
chain_selector | wallets, watchers, operations | The CCIP chain selector: pass to every chain-aware request. |
chain_id | EIP-712 domain (chainId) | Pass into eip712.Domain for typed-data signing. |
chain_family | Application logic | Currently "evm"; future families may include "solana". |
type | Application logic | "mainnet" or "testnet". Optional; absent on environments that haven't classified the network. |
default_confidence_level | Watcher / event defaults | The confidence level the backend uses when none is supplied (e.g. "finalized"). Optional. See Confidence Levels. |
created_at / updated_at | Diagnostic | Unix seconds. |
Where chain selectors are required
| Resource | Field | Notes |
|---|---|---|
CreateWallet | chain_selector | The chain on which the Smart Account is deployed. |
Watchers.CreateWithService / Watchers.CreateWithABI | ChainSelector | The chain whose logs the watcher subscribes to. |
Operation (via SDK) | ChainSelector argument to ExecuteOperation | The chain on which the operation will be broadcast. |
events.SearchEvents | chain_selector filter (optional) | Narrow historical search to one chain. |
Confidence levels
Network-level confidence levels (latest, safe, finalized) are configured per network and surfaced via default_confidence_level. See Confidence Levels for the semantic and latency trade-offs. Operation status events can progress through Multi-Event Finality as the underlying block matures.
Related
- Authentication: uses
ListNetworksas the canonical smoke test. - REST API Reference:
/networksendpoint contract. - Confidence Levels: pick the right finality for your workload.
- Multi-Event Finality: understand progressive operation confirmations.