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

# Contract Addresses

Deployed CapSign protocol contract addresses.

## Base Mainnet (Chain ID: 8453)

### Core Infrastructure

```
EntryPoint (ERC-4337): 0x0000000071727De22E5E9d8BAf0edAc6f37da032
Facet Registry:        0xAa020955929dDc6C1d3295E29B368488D020e4Ae
Diamond Factory:       0xf05b6f38A17cBfE2E9F0FeFbeedCeb55606AcdE0
EIP-7955 CREATE2:      0xC0DEb853af168215879d284cc8B4d0A645fA9b0E
```

### Core Facets

```
Diamond Cut Facet:     0x9B4B8afA0202F37642aE5Ede7162650Af0f34565
Diamond Loupe Facet:   0x4a8B27D997c9e96eCc3e49A3cD3475d8A160b841
Access Control Facet:  0x4966D543315310e374B6b7CdC86a28b84C5e12cf
```

### Wallet Facets

```
Wallet Core Facet:      0x648D0d84570D8Af12BC905799850982D0Ef3B978
Wallet Signature Facet: 0x89e2AE6358bfA2D87fA92ae4584e0a06c0110861
Wallet Documents Facet: 0xBAe18F339d562015A2F96A80aD962301196e02cb
Wallet Identity Facet:  0xf3D9dD55521695bfa0f139D00481A44E694348aa
```

### Token Facets

```
Token Balances Facet:   0x2dDaf898ff01F223Ef223d35eD17006Cea957d08
Token ERC20 Facet:      0x2383EFb80eecB9e83b53ED82Af0Dc59D8C35aA72
Token Admin Facet:      0x34a2A6F08511B7dD5c83C20858c9D2698D38D5C0
Token Metadata Facet:   0xb88323db1307bDA025910B33319d4Dd162DaaE0c
Token Transfer Facet:   0xB7d8970202e106E07CeeF99545176E554431e3B3
Token Lots Facet:       0xF4965D36092527B1BF1EfB6dCfc55DE9F269e648
Token Compliance Facet: 0xD3ff9351552061633e7700c6F7c165687Bd4abcc
```

### Offering Facets

```
Offering Core Facet:       0x3D02851Ca4bc89cbCf8bDD36bdA27D285dc28395
Offering Compliance Facet: 0x1CA704Eb95D179Eb3D15C0cBFEd7dc3422CF52aA
Offering Documents Facet:  0x6a5DDB3e08430fb1BfF2cAEaFD1A61092Eaa36a9
```

### Fund Facets

```
Fund Core Facet:       0x4c8158dE3F769230B69e21479f63abFab34C4569
Fund Portfolio Facet:  0x2a8986eB300BC4a2B47BBC4A0953E809cD2B5432
Fund Investment Facet: 0xA2193520c99f9C339B8BE0Eb362644029C468Ce7
Fund Oracle Facet:     0x16CC0acE67108817454a8584f6C48C2ED9983B82
```

### Factory Diamonds

```
Wallet Factory:   0x0833E9A07BEfb0B078a192fBAAb432370586C655
Offering Factory: 0xdbcF2d49C1C5F845c0c8c6E91E64228b20565462
Token Factory:    0x07578339207071f915371c3e17377e707C86a468
```

### Compliance Modules (Offering)

```
Document Compliance:               0x66Ae829BC2C6CE6fcc2B5213246b2B0388f6F1Fa
KYC Compliance:                    0x27e076d514d85e1cF43859Dfe7B9F7082C1DCb06
Whitelist Compliance:              0xA3D38bb46FFD7206c68b3f349c14c8903e2AeDc4
Investor Classification:           0xe85c9Adb7d6F11EE28A763DA6457EBDD87b7331a
Investor Limits:                   0xA4dAcC0Ec5f5aC951496aDeD4f12B36568275236
```

### Condition Modules (Token Transfer)

```
Lockup Condition:  0x3b38D865D489236D13149f92436cEB4df2f2772e
Vesting Condition: 0x6a4D1fCC8e64e5503D03F5367dE7B91BB91C879C
Rule 144 Condition: 0x8D6C1Bd98FF1B1e674680Ae9EC1e975bDeF27477
ROFR Condition:    0xf93D2566051AD5Ab7BD730587e9700877942A40B
```

### Paymasters

```
Paymaster Diamond: 0x0B0843BEd2D3Ca867c3DA60d67abD6Affa655110
Simple Paymaster:  0xc9804f729ce71aed890b28788079ff60743351f8
```

### Attestation (EAS)

```
EAS Registry:    0x4200000000000000000000000000000000000021
Schema Registry: 0x4200000000000000000000000000000000000020
```

### Tokens

```
USDC: 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
```

### Admin

```
CapSign Admin Address: 0xb3cfc02811aa7071ff5fff055340e9c9dd054a53
```

## Base Sepolia (Chain ID: 84532)

**Note**: Most contracts use the same addresses on Base Sepolia (deterministic deployment).

### Core Infrastructure

```
EntryPoint (ERC-4337): 0x0000000071727De22E5E9d8BAf0edAc6f37da032
Facet Registry:        0xAa020955929dDc6C1d3295E29B368488D020e4Ae
Diamond Factory:       0xf05b6f38A17cBfE2E9F0FeFbeedCeb55606AcdE0
EIP-7955 CREATE2:      0xC0DEb853af168215879d284cc8B4d0A645fA9b0E
```

### Factories

```
Wallet Factory:   0x0833E9A07BEfb0B078a192fBAAb432370586C655
Offering Factory: 0xdbcF2d49C1C5F845c0c8c6E91E64228b20565462
Token Factory:    0x07578339207071f915371c3e17377e707C86a468
```

### Attestation (EAS)

```
EAS Registry:    0x4200000000000000000000000000000000000021
Schema Registry: 0x4200000000000000000000000000000000000020
```

### Tokens

```
USDC: 0x036CbD53842c5426634e7929541eC2318f3dCF7e
```

**All other contract addresses match Base Mainnet due to deterministic CREATE2 deployment.**

## Usage in Code

### Import Contracts

```typescript
import contracts, { CAPSIGN_ADMIN_ADDRESS, USDC_ADDRESS } from "@/constants/contracts";

// Access contracts
const walletFactory = contracts.WALLET_FACTORY;
const entryPoint = contracts.ENTRY_POINT;
const facetRegistry = contracts.FACET_REGISTRY;

// Get USDC for current chain
const chainId = 8453; // or 84532
const usdcAddress = USDC_ADDRESS[chainId];
```

### Contract Interactions

```typescript
import { createPublicClient, http } from "viem";
import { base } from "viem/chains";
import contracts from "@/constants/contracts";

const client = createPublicClient({
  chain: base,
  transport: http(),
});

// Read from factory
const walletAddress = await client.readContract({
  address: contracts.WALLET_FACTORY,
  abi: walletFactoryAbi,
  functionName: "predictWalletAddress",
  args: [ownerPublicKey],
});
```

## Verification

Verify contracts on block explorers:

* **Base Mainnet**: [basescan.org](https://basescan.org)
* **Base Sepolia**: [sepolia.basescan.org](https://sepolia.basescan.org)

### Example Verification Links

* [Wallet Factory on Base](https://basescan.org/address/0x0833E9A07BEfb0B078a192fBAAb432370586C655)
* [Token Factory on Base](https://basescan.org/address/0x07578339207071f915371c3e17377e707C86a468)
* [Facet Registry on Base](https://basescan.org/address/0xAa020955929dDc6C1d3295E29B368488D020e4Ae)

## Special Addresses

### MultiInit Flag

```
0xD1a302d1A302d1A302d1A302d1A302D1A302D1a3
```

This is a **magic constant** used in the CapSign protocol for MultiInit pattern. It's not a deployed contract and checking for its bytecode will always return empty (by design).

## Deployment Information

* **Network**: Base (L2)
* **Deployment Method**: CREATE2 for deterministic addresses
* **Factory**: EIP-7955 CREATE2 Factory
* **Admin**: Multisig controlled by CapSign team
* **Upgradability**: Diamond pattern (EIP-2535) for modular upgrades

## Updates

Contract addresses are stable due to CREATE2 deployment. New facets may be added over time. Check:

* [GitHub Contracts File](https://github.com/capsign/interface/blob/main/src/constants/contracts.ts) for latest
* [Discord](https://discord.gg/gSmnZ9wmNv) for deployment announcements
* [Twitter](https://twitter.com/CapSignInc) for major updates

## Security

* **Admin Multisig**: 0xb3cfc02811aa7071ff5fff055340e9c9dd054a53
* **Access Control**: All privileged functions protected by AccessControlFacet
* **Upgrades**: Only admin can perform diamond cuts
* **Audits**: Contracts undergoing security review

***

**Return to:** [Reference](https://github.com/capsign/docs/blob/main/reference/README.md) | [Documentation Home](/capsign/getting-started/readme.md)
