> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# deployments: Per-chain liveness and the generated record

> Per-chain liveness and the generated record: 19 exports of the deployments module of @eco-incorp/sauce, including v12ChainIds, v12LiveChainIds, v12FailedChainIds, isV12Live, v12ChainDeployment, v12ChainSlug.

Two sources live here: the current release addresses assembled from each release's `addresses.json` (`v12EngineAddress()`, `v12KitchenAddress()`, `v12SvmEngineProgramId()`), and a legacy per-chain roster that records an older deployment and does not attest liveness of the pinned release. `V12_EVM_CONTRACTS` and `v12SvmProgramId` are legacy addresses. Check deployed code on the target chain before use.

```typescript theme={null}
import { v12EngineAddress, isV12Live } from "@eco-incorp/sauce/deployments";
```

This page covers `sdk/dist/deployments/index.d.ts`, `sdk/dist/deployments/v12.generated.d.ts`.

<Note>
  Generated from the type declarations shipped in `@eco-incorp/sauce` 0.99.4. Each entry shows the package authors' JSDoc and declaration for this SDK version. For runtime compatibility and deployed addresses, see [architecture and deployments](/programmable-transactions/sauce/architecture-and-deployments).
</Note>

### `v12ChainIds`

*Function* · `sdk/dist/deployments/index.d.ts`

Every chain id in the record, live or not, ascending.

```typescript theme={null}
export declare function v12ChainIds(): number[];
```

### `v12LiveChainIds`

*Function* · `sdk/dist/deployments/index.d.ts`

Historically successful chain ids, ascending. Check current release code before use.

```typescript theme={null}
export declare function v12LiveChainIds(): number[];
```

### `v12FailedChainIds`

*Function* · `sdk/dist/deployments/index.d.ts`

Chain ids present in the record whose deploy did NOT land.

```typescript theme={null}
export declare function v12FailedChainIds(): number[];
```

### `isV12Live`

*Function* · `sdk/dist/deployments/index.d.ts`

Historical success flag; not an RPC check or proof that the pinned release is deployed.

```typescript theme={null}
export declare function isV12Live(chainId: number): boolean;
```

### `v12ChainDeployment`

*Function* · `sdk/dist/deployments/index.d.ts`

The raw per-chain record (including a failed chain's `error`), or undefined if unknown.

```typescript theme={null}
export declare function v12ChainDeployment(chainId: number): V12ChainDeployment | undefined;
```

### `v12ChainSlug`

*Function* · `sdk/dist/deployments/index.d.ts`

Engine-side chain slug from a historically successful deployment record. This is not a
current release liveness check or an attestation of a routing provider's chain coverage.

```typescript theme={null}
export declare function v12ChainSlug(chainId: number): string | undefined;
```

### `v12LiveChainSlugs`

*Function* · `sdk/dist/deployments/index.d.ts`

Every live v12 chain as a `chainId → slug` map, ascending - the direct
replacement for a hand-maintained slug constant. Excludes chains whose deploy
did not land (see `v12FailedChainIds`).

```typescript theme={null}
export declare function v12LiveChainSlugs(): Record<number, string>;
```

### `v12Deployment`

*Function* · `sdk/dist/deployments/index.d.ts`

Pinned release addresses for a historically successful chain, otherwise undefined.
The legacy roster does not attest that this release is deployed: verify code on the target chain.

```typescript theme={null}
export declare function v12Deployment(chainId: number): V12Deployment | undefined;
```

### `requireV12Deployment`

*Function* · `sdk/dist/deployments/index.d.ts`

Like `v12Deployment`, but throws with the reason instead of returning undefined.

```typescript theme={null}
export declare function requireV12Deployment(chainId: number): V12Deployment;
```

### `isV12SvmDeployed`

*Function* · `sdk/dist/deployments/index.d.ts`

Historical SVM cluster coverage; not an attestation of the pinned release's deployment.

```typescript theme={null}
export declare function isV12SvmDeployed(cluster: string): boolean;
```

### `V12_EVM_CHAINS`

*Variable* · `sdk/dist/deployments/v12.generated.d.ts`

Historical per-chain deploy outcome; does not establish current release liveness.

```typescript theme={null}
V12_EVM_CHAINS: {
    readonly 1: {
        readonly name: "ethereum";
        readonly live: true;
        readonly status: "live";
    };
    readonly 10: {
        readonly name: "optimism";
        readonly live: true;
        readonly status: "live";
    };
    readonly 56: {
        readonly name: "bsc";
        readonly live: true;
        readonly status: "live";
    };
    readonly 130: {
        readonly name: "unichain";
        readonly live: true;
        readonly status: "live";
    };
    readonly 137: {
        readonly name: "polygon";
        readonly live: true;
        readonly status: "live";
    };
    readonly 143: {
        readonly name: "monad";
        readonly live: true;
        readonly status: "live";
    };
    readonly 146: {
        readonly name: "sonic";
        readonly live: true;
        readonly status: "live";
    };
    readonly 2020: {
        readonly name: "ronin";
        readonly live: false;
        readonly status: "failed";
        readonly error: "Contracts deployed with a Solidity version equal or higher than 0.8.20 might not work properly. For more information, please see https://eips.ethereum.org/EIPS/eip-3855 Error: Failed to send transacti";
    };
    readonly 8453: {
        readonly name: "base";
        readonly live: true;
        readonly status: "live";
    };
    readonly 9745: {
        readonly name: "plasma";
        readonly live: true;
        readonly status: "live";
    };
    readonly 42161: {
        readonly name: "arbitrum";
        readonly live: true;
        readonly status: "live";
    };
    readonly 42220: {
        readonly name: "celo";
        readonly live: true;
        readonly status: "live";
    };
    readonly 57073: {
        readonly name: "ink";
        readonly live: true;
        readonly status: "live";
    };
}
```

### `V12_EVM_CONTRACTS`

*Variable* · `sdk/dist/deployments/v12.generated.d.ts`

* @deprecated Legacy EVM addresses. Use v12EngineAddress/v12RouterAddress/v12KitchenAddress.

```typescript theme={null}
V12_EVM_CONTRACTS: {
    readonly router: "0x20BbEc03eE401B26938880cd23Aac00Cf927F06a";
    readonly v12Runtime: "0x3dfE79fBB6C62D00986F476c3F86E7D19E0cabeD";
    readonly v12Kitchen: "0xd57b452634c653D80A85160fea895BB07Ac41D8F";
}
```

### `V12_GENERATED_BY`

*Variable* · `sdk/dist/deployments/v12.generated.d.ts`

Which tool in the engine repo produced the underlying record.

```typescript theme={null}
V12_GENERATED_BY: "dev-tools/scripts/deploy-v12.ts"
```

### `V12_SALT`

*Variable* · `sdk/dist/deployments/v12.generated.d.ts`

CREATE2 salt the stack was deployed with.

```typescript theme={null}
V12_SALT: "0x0000000000000000000000000000000000000000000000000000000000000001"
```

### `V12_SVM`

*Variable* · `sdk/dist/deployments/v12.generated.d.ts`

* @deprecated Historical SVM deployment. Use v12SvmEngineProgramId for the pinned release.

```typescript theme={null}
V12_SVM: {
    readonly programId: "CuHCniNMWLSkZWBQKon9tudGujZeXJRUwG2PCLDq4ipJ";
    readonly upgradeable: false;
    readonly clusters: {
        readonly devnet: {
            readonly cluster: "devnet";
            readonly status: "already-deployed";
        };
        readonly 'mainnet-beta': {
            readonly cluster: "mainnet-beta";
            readonly status: "already-deployed";
        };
    };
}
```

### `V12EvmContracts`

*Interface* · `sdk/dist/deployments/index.d.ts`

The pinned release's three chain-invariant EVM contract addresses.

```typescript theme={null}
export interface V12EvmContracts {
    router: string;
    v12Runtime: string;
    v12Kitchen: string;
}
```

### `V12ChainDeployment`

*Interface* · `sdk/dist/deployments/index.d.ts`

One chain's deploy outcome, as recorded by the engine's deploy script.

```typescript theme={null}
export interface V12ChainDeployment {
    chainId: number;
    name: string;
    live: boolean;
    status: string;
    error?: string;
}
```

### `V12Deployment`

*Interface* · `sdk/dist/deployments/index.d.ts`

Pinned release addresses for a chain in the historical successful-deployment roster.

```typescript theme={null}
export interface V12Deployment extends V12EvmContracts {
    chainId: number;
    name: string;
}
```

### `v12SvmProgramId`

*Variable* · `sdk/dist/deployments/index.d.ts`

* @deprecated Legacy engine program id. Use `v12SvmEngineProgramId()` for the pinned release.

```typescript theme={null}
v12SvmProgramId: string
```
