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

# Contract addresses

Production HyperEVM vault proxies, implementation identities, and supporting contracts.

The address determines which contract receives your approval or transaction. Use the production identities below, then verify the network and current implementation before signing. Staging uses the same chain ID with different addresses.

These contracts use HyperEVM chain ID `999`. Chain ID alone does not select the production environment. Confirm each proxy and its current implementation before signing.

## Vault proxies

The proxy is also the 18-decimal share token. Use the proxy for balances, allowances, deposits, and redemptions. Implementation addresses identify code and are not user transaction targets.

| Vault | Proxy and share token                                                                                                      | Current implementation                       |
| ----- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| BULL  | [`0x2d561B24e754B105bb0DF34A3345AAC1fe805210`](https://hyperevmscan.io/address/0x2d561B24e754B105bb0DF34A3345AAC1fe805210) | `0x0B1C14b6b56c56b9c71E886B1603382Df9A252b7` |
| BEAR  | [`0xE12f47589a272665203ce727854Cf3FEF8A8ED94`](https://hyperevmscan.io/address/0xE12f47589a272665203ce727854Cf3FEF8A8ED94) | `0x50192727c0D716b3755Ae70EA6C7B338Df589AA5` |
| VOL   | [`0xEb22eC1b402dcc4155B9D8d2E1db2f2d229162CC`](https://hyperevmscan.io/address/0xEb22eC1b402dcc4155B9D8d2E1db2f2d229162CC) | `0xCf7Acb8ed53FfA72482CFA5e930463f35e553ff9` |
| iBULL | [`0xD2778440c4c1934185a2F8CB7E09A9a7A7CC21f0`](https://hyperevmscan.io/address/0xD2778440c4c1934185a2F8CB7E09A9a7A7CC21f0) | `0xDad1A6811E5f88D896aB9a1009f058d069771210` |
| iBEAR | [`0xb0808Ffd220541568f70eFe9774c795cD0c310Aa`](https://hyperevmscan.io/address/0xb0808Ffd220541568f70eFe9774c795cD0c310Aa) | `0x96924B80C80982C0F086738F7baE7a1e537ccb75` |
| iVOL  | [`0x59A72A4b8D632005112f7D2bc0D035E06bE043D9`](https://hyperevmscan.io/address/0x59A72A4b8D632005112f7D2bc0D035E06bE043D9) | `0x4799556611a1277E5f27583Ebf2129872461e593` |

The iBULL, iBEAR, and iVOL strategies reverse the direction of BULL, BEAR, and VOL respectively; each has its own settings and positions. See the [vault lineup](/vaults/vaults.md).

## Supporting contracts

These contracts provide the deposit asset, transaction checks, grouped reads, and owner actions. Use the one required by the call you are preparing.

| Contract         | Production address                           | Use                                                    |
| ---------------- | -------------------------------------------- | ------------------------------------------------------ |
| USDC             | `0xb88339CB7199b77E23DB6E890353E22632Ba630f` | 6-decimal deposit asset and redemption proceeds        |
| CircuitBreaker   | `0x9E26Ed031F5Eb5b65AE86809A09fbD313a0015AE` | Transaction policy, route capacity, and router calls   |
| VaultLens        | `0x70Ba1FC35141597D927125Bf820f5E7eCb901D53` | Compatible grouped reads, previews, and vault capacity |
| VaultAdmin proxy | `0x5fC0FD46F5d6a088780eCf2ea1d56Ed2f6bA6436` | Owner-controlled settings and recovery actions         |

VaultLens and VaultAdmin do not accept user deposits or redemptions. The recorded production artifacts have CCIP disabled; this table does not establish a supported cross-chain route.

## Verify before signing

Cross-check the selected proxy and supporting contracts with the official application at [ensemble.io](https://ensemble.io). Compare USDC with the vault's `asset()` result, and confirm the wallet and provider use chain `999`.

Confirm that the selected addresses are deployed contracts on the intended network. Check the current implementation shown for the proxy on the block explorer; upgrades can change code at an existing address. Treat compatibility errors and missing contracts as unavailable.

Direct deposit and mint approvals go to the vault proxy. CircuitBreaker router approvals go to CircuitBreaker. Confirm the target and spender for the exact call the user is approving. See [CircuitBreaker](/safety/circuit-breaker.md) for share allowances and account rules.

## Current contract identity

Proxy upgrades can change the code behind an existing address. Read the current implementation behind the proxy and check its contract identity. A proxy address alone does not establish the implementation, configuration or capacity that applies now.
