# Contracts We Deploy

Adoption of the Bridged USDC Standard requires:

1. Successful deployment and configuration of Circle's Smart Contracts.
2. Cross-chain messaging infrastructure to connect your chain with a Native USDC blockchain.
3. Proper implementation and accounting of all 1:1 backed USDC in a "Bridge Manger" / Escrow contract.

VIA handles this entire process for you. From start to finish. At the end, you (the blockchain foundation) will receive a full report  of all deployed smart contracts with their proper addresses. Additionally, control of the contracts is given directly to you (the blockchain foundation) as if you deployed the contracts yourself.&#x20;

See below for the contracts that we deploy:

**HOST / ROOT CHAIN**

`BridgeManagerV1` This contract handles the messaging between chains through the VIA Network.

`BridgeManagerV1 ERC1967Proxy` Points to the BridgeManagerV1 contract. (OpenZeppelin). Use this contract to call any functions in `BridgeManagerV1`.

**LEAF CHAIN**

`FiatTokenV2_2_Proxy` This contract comes from Circle. Untouched. [Link to contract](https://github.com/circlefin/stablecoin-evm/blob/master/contracts/v1/FiatTokenProxy.sol).

`FiatTokenV2_2_Implementation` This contract comes from Circle. Untouched. [Link to contract](https://github.com/circlefin/stablecoin-evm/blob/master/contracts/v2/FiatTokenV2_2.sol).

`SignatureChecker` This contract comes from Circle. Untouched. [Link to contract](https://github.com/circlefin/stablecoin-evm/blob/master/contracts/util/SignatureChecker.sol).

`BridgeManagerV1` This contract handles the 1 to 1 cross-chain transfers between your blockchain and the Bridged USDC Standard "source chain" you selected to be paired to.

`BridgeManagerV1 ERC1967Proxy` Points to the `BridgeManagerV1` contract. (OpenZeppelin). Use this contract to call any functions in `BridgeManagerV1`.

`ProtoCCTPGateway` This contract handles the cross-chain transfers between your blockchain and *all* Proto-CCTP-enabled chains.
