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

# Deployment addresses

The **OIV factory infrastructure** — the contracts that deploy funds (see [Fund deployment](/funds/infrastructure/deployment.md) and [Cross-chain deployment](/funds/infrastructure/deployment/cross-chain-deployment.md)) — is deployed at the **same address on every supported chain**. All four contracts are placed by the canonical CREATE2 deployer (`0x4e59b44847b379578588920cA78FbF26c0B4956C`) with identical bytecode and constructor arguments, so their addresses are deterministic and chain-independent.

{% hint style="success" %}
**The factory:** `KpkOivFactory` at [`0xbafbca1804B6e46D4c54Cac0A0273F5B2A8F677F`](https://etherscan.io/address/0xbafbca1804B6e46D4c54Cac0A0273F5B2A8F677F) — the same address on every chain. Funds are deployed by calling it (directly, or via the CCIP orchestrator).
{% endhint %}

The machine source of truth is the contracts repo: [`script/deployed-infra.json`](https://github.com/karpatkey/onchain-investment-vehicles/blob/main/script/deployed-infra.json) (per-chain deploy block, tx hash, and verification), mirrored by [`docs/DEPLOYED_ADDRESSES.md`](https://github.com/karpatkey/onchain-investment-vehicles/blob/main/docs/DEPLOYED_ADDRESSES.md).

***

## Canonical layer (CREATE2 — identical on every chain)

This is the current infrastructure. The four contracts share one address on every chain.

| Contract            | Address                                                                                                                 | Role                                                                                                                                                                      |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `KpkOivFactory`     | [`0xbafbca1804B6e46D4c54Cac0A0273F5B2A8F677F`](https://etherscan.io/address/0xbafbca1804B6e46D4c54Cac0A0273F5B2A8F677F) | Deploys a fund's Safe + Roles + shares stack in one transaction ([Fund deployment](/funds/infrastructure/deployment.md)).                                                 |
| `KpkSharesDeployer` | [`0xea084E763F8535CBe28759b990F963BeDf60be9a`](https://etherscan.io/address/0xea084E763F8535CBe28759b990F963BeDf60be9a) | Deploys each fund's dedicated `kpkShares` implementation (called by the factory).                                                                                         |
| `CcipOivDeployer`   | [`0x6F2A3D35Ff275d6B76dB47eFB0Da1b2358daf11b`](https://etherscan.io/address/0x6F2A3D35Ff275d6B76dB47eFB0Da1b2358daf11b) | Cross-chain orchestrator — one mainnet tx fans a fund out to sidechains over CCIP ([Cross-chain deployment](/funds/infrastructure/deployment/cross-chain-deployment.md)). |
| `Empty`             | [`0xA4703438f8cc4fc2C2503a7e43935Da16BA74652`](https://etherscan.io/address/0xA4703438f8cc4fc2C2503a7e43935Da16BA74652) | The Portfolio Safe's sole signer — a contract with no logic, so the Safe can only act through its Roles Modifiers.                                                        |

***

## Ownership

| Party                   | Address                                                                                                                 | After deploy                                                                                                                                                                  |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **OIV governance Safe** | [`0x8b884f80B3B839F52b6cE168f133e7a5D1f0A537`](https://etherscan.io/address/0x8b884f80B3B839F52b6cE168f133e7a5D1f0A537) | `Ownable.owner` of the factory and the orchestrator on every chain (same address everywhere). Controls the infrastructure setters.                                            |
| Deployer EOA            | [`0xAa5A7C7Ea51F276301f881F9CCB501a1dFeF4F72`](https://etherscan.io/address/0xAa5A7C7Ea51F276301f881F9CCB501a1dFeF4F72) | Seeded configuration (e.g. the orchestrator's mainnet selector registry) **before** handover, then transferred ownership to the Safe. Holds **no** privileged role afterward. |

{% hint style="warning" %}
The factory **owner** controls all infrastructure setters (Safe singleton, Zodiac mastercopy, shares deployer, CCIP config) **with no timelock**, so it must remain a governance multisig — never an EOA. See the trust assumptions on [Fund deployment](/funds/infrastructure/deployment.md).
{% endhint %}

***

## Chains

The infrastructure is deployed and source-verified on **19 chains** — on each, the factory and orchestrator are owned by the OIV governance Safe: Ethereum (1), Optimism (10), Gnosis (100), Base (8453), Arbitrum (42161), BSC (56), Polygon (137), Avalanche (43114), Celo (42220), Linea (59144), Scroll (534352), Sonic (146), Unichain (130), World Chain (480), HyperEVM (999), Mantle (5000), Plasma (9745), Ink (57073), Berachain (80094).

{% hint style="info" %}
These are the shared **factory** addresses. A fund's own contracts (Portfolio Safe, Manager Safe, Roles Modifiers, `kpkShares`) are per-fund and listed on each fund's **Policies and addresses** page — for example, [USD Alpha](/funds/funds/usd-alpha/policies-and-addresses.md).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kpk.io/funds/infrastructure/deployment/deployment-addresses.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
