# 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)


---

# Agent Instructions: 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:

```
GET https://capsign.gitbook.io/capsign/reference/contract-addresses.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
