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

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

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:

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:

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 | Documentation Home

Last updated

Was this helpful?