> For the complete documentation index, see [llms.txt](https://docs.chamberfi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamberfi.com/build/contract-addresses.md).

# Contract addresses

The canonical source of truth for deployed contract addresses is the [`publish/{chain}/prod/versions.json`](https://github.com/dhedge/V2-Public/tree/master/publish) file in the contracts repo. This page summarizes the contracts you are most likely to need and points you at that source.

**Don't hard-code addresses from stale docs.** Governance can swap implementations via proxy upgrades, and new chains are added periodically. Read the deployment data at build time or at runtime.

## Core contracts per chain

Most Chamber deployments share this core set; a few contracts ship only where the feature is enabled. Contract names are stable across chains; only the addresses differ.

| Contract           | Role                                                                                                                        |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| `PoolFactory`      | Creates new vaults; owns the Guard System registry; exposes `getAssetGuard()` and `getContractGuard()` view functions       |
| `PoolLogic`        | Implementation contract for every vault. Handles `deposit`, `withdraw*`, `execTransaction`                                  |
| `PoolManagerLogic` | Implementation contract for every vault's manager/permissions surface. Handles `changeAssets`, fee settings, privacy toggle |
| `AssetHandler`     | Central pricing registry. Resolves USD value for every supported asset                                                      |
| `EasySwapperV2`    | Convenience contract for simplified deposit/swap routing                                                                    |
| `Governance`       | Admin contract that registers new contract and asset guards                                                                 |

## Where to get addresses

**Source of truth:** the [`publish/`](https://github.com/dhedge/V2-Public/tree/master/publish) directory in the contracts repo.

* `publish/ethereum/prod/versions.json`
* `publish/ovm/prod/versions.json` (Optimism)
* `publish/polygon/prod/versions.json`
* `publish/base/prod/versions.json`
* `publish/arbitrum/prod/versions.json`
* `publish/hyperevm/prod/versions.json`
* `publish/plasma/prod/versions.json`

Each file is a JSON object containing the full set of contract addresses, asset configurations, and guard registrations for that chain. If you're using the [SDK](/build/sdk.md), these are wired in for you. You shouldn't need to read them directly unless you're doing raw contract calls.

## Vault addresses

Every vault is a `PoolLogic` proxy deployed by the `PoolFactory`. Vault addresses are not listed here. They are created over time by managers. Discover vaults via:

* [**Subgraph**](/build/subgraph.md)**:** the most ergonomic way to list vaults, filter by chain, manager, or denomination asset.
* **App UI:** vault discovery via search and leaderboard.
* **Factory events:** the `PoolFactory.FundCreated` event logs every new vault.

## Guard addresses

Contract guards and asset guards are not hard-coded in the SDK or docs. Resolve them at runtime:

```solidity
// Is this protocol callable from a vault?
address guard = PoolFactory(factory).getContractGuard(targetProtocol);
require(guard != address(0), "not whitelisted");

// Is this asset supported?
address assetGuard = PoolFactory(factory).getAssetGuard(asset);
require(assetGuard != address(0), "asset not supported");
```

Or from TypeScript via the SDK, which wraps these calls.

## Upgrades and proxies

`PoolLogic` and `PoolManagerLogic` are implementation contracts behind per-vault proxies. Implementation upgrades apply to every vault immediately. Upgrades are `onlyOwner` on the factory, which is controlled by Chamber governance. See [Governance](/governance-and-token/overview.md) for the current custody arrangement.

## See also

* [Deployment matrix](/build/deployment-matrix.md): which chains ship with which features
* [Guard system](/build/guard-system.md): how to enumerate supported protocols and assets
* [SDK](/build/sdk.md): the typed wrapper over these contracts
