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: 0xC0DEb853af168215879d284cc8B4d0A645fA9b0ECore Facets
Diamond Cut Facet: 0x9B4B8afA0202F37642aE5Ede7162650Af0f34565
Diamond Loupe Facet: 0x4a8B27D997c9e96eCc3e49A3cD3475d8A160b841
Access Control Facet: 0x4966D543315310e374B6b7CdC86a28b84C5e12cfWallet Facets
Wallet Core Facet: 0x648D0d84570D8Af12BC905799850982D0Ef3B978
Wallet Signature Facet: 0x89e2AE6358bfA2D87fA92ae4584e0a06c0110861
Wallet Documents Facet: 0xBAe18F339d562015A2F96A80aD962301196e02cb
Wallet Identity Facet: 0xf3D9dD55521695bfa0f139D00481A44E694348aaToken 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: 0xD3ff9351552061633e7700c6F7c165687Bd4abccOffering Facets
Offering Core Facet: 0x3D02851Ca4bc89cbCf8bDD36bdA27D285dc28395
Offering Compliance Facet: 0x1CA704Eb95D179Eb3D15C0cBFEd7dc3422CF52aA
Offering Documents Facet: 0x6a5DDB3e08430fb1BfF2cAEaFD1A61092Eaa36a9Fund Facets
Fund Core Facet: 0x4c8158dE3F769230B69e21479f63abFab34C4569
Fund Portfolio Facet: 0x2a8986eB300BC4a2B47BBC4A0953E809cD2B5432
Fund Investment Facet: 0xA2193520c99f9C339B8BE0Eb362644029C468Ce7
Fund Oracle Facet: 0x16CC0acE67108817454a8584f6C48C2ED9983B82Factory Diamonds
Wallet Factory: 0x0833E9A07BEfb0B078a192fBAAb432370586C655
Offering Factory: 0xdbcF2d49C1C5F845c0c8c6E91E64228b20565462
Token Factory: 0x07578339207071f915371c3e17377e707C86a468Compliance Modules (Offering)
Document Compliance: 0x66Ae829BC2C6CE6fcc2B5213246b2B0388f6F1Fa
KYC Compliance: 0x27e076d514d85e1cF43859Dfe7B9F7082C1DCb06
Whitelist Compliance: 0xA3D38bb46FFD7206c68b3f349c14c8903e2AeDc4
Investor Classification: 0xe85c9Adb7d6F11EE28A763DA6457EBDD87b7331a
Investor Limits: 0xA4dAcC0Ec5f5aC951496aDeD4f12B36568275236Condition Modules (Token Transfer)
Lockup Condition: 0x3b38D865D489236D13149f92436cEB4df2f2772e
Vesting Condition: 0x6a4D1fCC8e64e5503D03F5367dE7B91BB91C879C
Rule 144 Condition: 0x8D6C1Bd98FF1B1e674680Ae9EC1e975bDeF27477
ROFR Condition: 0xf93D2566051AD5Ab7BD730587e9700877942A40BPaymasters
Paymaster Diamond: 0x0B0843BEd2D3Ca867c3DA60d67abD6Affa655110
Simple Paymaster: 0xc9804f729ce71aed890b28788079ff60743351f8Attestation (EAS)
EAS Registry: 0x4200000000000000000000000000000000000021
Schema Registry: 0x4200000000000000000000000000000000000020Tokens
USDC: 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913Admin
CapSign Admin Address: 0xb3cfc02811aa7071ff5fff055340e9c9dd054a53Base 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: 0xC0DEb853af168215879d284cc8B4d0A645fA9b0EFactories
Wallet Factory: 0x0833E9A07BEfb0B078a192fBAAb432370586C655
Offering Factory: 0xdbcF2d49C1C5F845c0c8c6E91E64228b20565462
Token Factory: 0x07578339207071f915371c3e17377e707C86a468Attestation (EAS)
EAS Registry: 0x4200000000000000000000000000000000000021
Schema Registry: 0x4200000000000000000000000000000000000020Tokens
USDC: 0x036CbD53842c5426634e7929541eC2318f3dCF7eAll 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:
Base Mainnet: basescan.org
Base Sepolia: sepolia.basescan.org
Example Verification Links
Special Addresses
MultiInit Flag
0xD1a302d1A302d1A302d1A302d1A302D1A302D1a3This 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 for latest
Discord for deployment announcements
Twitter 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 | Documentation Home
Last updated
Was this helpful?