Smart Contracts
Complete reference for all smart contracts deployed in the CMX Protocol ecosystem on Base Sepolia.
Deployment Information
Network: Base Sepolia (Chain ID: 84532) Block Explorer: https://sepolia.basescan.org Latest Deployment: July 31, 2025
Core System Contracts
GlobalAccessManager
0x81574D4c3BC62d6A9Ff166608af328824a0694bd
Central access control system
FacetRegistry
0x49Df9c09A41eCAC13203E70Db04F1025C8982B20
Diamond facet registry
Factory
TBD
Main diamond factory contract
SubscriptionManager
TBD
Payment and subscription management
Architecture Overview
The CMX Protocol uses the Diamond Pattern (EIP-2535) for upgradeable, modular smart contracts. Each functional area is implemented as separate facets that can be added, updated, or removed from diamond contracts.
Diamond Core Facets
These facets provide the fundamental diamond functionality:
DiamondCutFacet
Address: 0xd805e4480b4227d60887d2c70f292b3888eb4681
Handles diamond upgrades by adding, replacing, or removing facets.
Key Functions:
function diamondCut(
FacetCut[] calldata _diamondCut,
address _init,
bytes calldata _calldata
) external;
DiamondLoupeFacet
Address: 0xc5478314b0d2e2b7447dd9d5a2ff6a750451bb78
Provides introspection into diamond structure and facets.
Key Functions:
function facets() external view returns (Facet[] memory facets_);
function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory);
function facetAddresses() external view returns (address[] memory);
function facetAddress(bytes4 _functionSelector) external view returns (address);
OwnableFacet
Address: 0x5c474dcaf95f2763e47f463d6f0de24801a3d895
Provides ownership management for diamond contracts.
AccessControlFacet
Address: 0xb171c70c7d084c85d6f1a1aff4ea8d4c70efded3
Implements role-based access control within diamond contracts.
Asset Management Facets
ShareClassFacet
Implements corporate equity shares with voting and dividend rights.
Features:
ERC20-compatible token functionality
Voting rights management
Dividend distribution
Transfer restrictions
Corporate actions
OffChainAssetFacet
Manages tokenized real-world assets with off-chain components.
Asset Types Supported:
Real estate properties
Commodities
Art and collectibles
Infrastructure assets
Private debt instruments
AssetCoreFacet
Core asset functionality shared across all asset types.
AssetAdminFacet
Administrative functions for asset management.
AssetConfigFacet
Configuration and parameter management for assets.
AssetDeploymentFacet
Factory functionality for creating new asset instances.
AssetPaymasterFacet
Gas abstraction for asset-related transactions.
Wallet & Account Management
CoreWalletFacet
Core smart wallet functionality with account abstraction support.
Features:
ERC4337 account abstraction
Multi-signature support
Transaction batching
Gas payment flexibility
WebAuthnProxyFacet
Biometric authentication integration for enhanced security.
AccountManagementFacet
User account lifecycle management.
WalletConfigFacet
Wallet configuration and personalization settings.
WalletDeploymentFacet
Address: 0xaee4f63c3bab3feffcbf02eb7dda336e70f1dede
Factory for creating new smart wallet instances.
WalletPaymasterFacet
Gas sponsorship and payment abstraction for wallet operations.
Asset Deployment System
AssetDeploymentFacet
Address: 0x55aa4a7c25e85c7716c6895d41277afd62996ce5
Factory functionality for creating new tokenized asset instances.
FundDeploymentFacet
Address: 0x57671c9848fee178ff752976123cbb42e0f40744
Factory for creating new investment fund instances.
LedgerDeploymentFacet
Address: 0xe4fb3753029aeb0ccb0d051014578753e7a9babe
Factory for creating accounting ledger instances.
OfferingDeploymentFacet
Address: 0xeecf66ebb9458d8c564c7bb23f08f28a13939b39
Factory for creating securities offering instances.
Governance Facets
GovernanceDeploymentFacet
Address: 0x176565846d05f2cfd3bcc832a3aa43c28f541efb
Factory for creating governance instances.
GovernanceRegistryFacet
Address: 0x7a8abffc159b69b0d7e44dcc2404aba5391af0d0
Governance proposal and voting registry.
GovernanceConfigFacet
Address: 0xbc28e385de188bcf4b18d91995a81fcc466be5b5
Governance parameter configuration.
GovernancePaymasterFacet
Address: 0xc78072109fbd65ad58e0608edb873595b7b026e3
Gas abstraction for governance operations.
DelegationFacet
Voting power delegation functionality.
Ledger & Accounting Facets
LedgerConfigFacet
Address: 0x73956370c5873749e477e0d3a60db878f34dbe00
Ledger configuration and chart of accounts.
LedgerFacet
Double-entry bookkeeping implementation.
LedgerPaymasterFacet
Gas abstraction for ledger operations.
Investment Funds
UniversalFundCoreFacet
Core investment fund functionality supporting multiple fund types.
Fund Types:
Hedge funds
Mutual funds
Private equity funds
Real estate investment trusts (REITs)
InvestmentFacet
Investment execution and portfolio management.
DistributionFacet
Distribution payments to fund investors.
AdvancedDistributionFacet
Complex distribution strategies and waterfall calculations.
FundUnitFacet
Fund share/unit management and tracking.
CapitalCallFacet
Capital call management for private funds.
CapitalAccountFacet
Capital account tracking for partnership-style funds.
Trading & Transfer Facets
TransferFacet
Handles compliant asset transfers with regulatory checks.
Features:
KYC/AML compliance verification
Transfer restrictions enforcement
Regulatory jurisdiction checks
Accredited investor verification
TransactionFacet
Core transaction processing and settlement.
LotManagementFacet
Manages trading lots and position tracking.
SanctionsFacet
OFAC and international sanctions screening.
Rule144Facet
Implements SEC Rule 144 compliance for restricted securities.
Employee Stock Options (Rule 701)
Rule701ConfigFacet
Configuration for employee stock option plans.
Rule701DeploymentFacet
Factory for creating option plan instances.
ExerciseFacet
Option exercise functionality.
VestingFacet
Vesting schedule management and tracking.
LockupFacet
Post-exercise lockup period management.
EsoFacet
Employee stock option core functionality.
WarrantFacet
Warrant instrument management.
SarFacet
Stock Appreciation Rights (SAR) implementation.
Compliance & Attestations
AttestationCoreFacet
Core attestation functionality for identity verification.
AttestationAdminFacet
Administrative functions for attestation management.
AttestationQueryFacet
Query interface for attestation verification.
AttestationFacet
User-facing attestation interface.
SchemaManagementFacet
Manages attestation schemas for different verification types.
Attestation Types:
KYC verification (Basic, Enhanced)
Accredited investor status
Qualified purchaser status
Professional investor designation
Jurisdiction-specific compliance
AttestationRegistryFactory
Factory for creating attestation registry instances.
ComplianceFacet
Regulatory compliance checks and enforcement.
Document Management
DocumentCoreFacet
Core document storage and verification functionality.
DocumentAdminFacet
Administrative document management functions.
DocumentSigningFacet
Digital signature and document execution.
DocumentTemplateFacet
Document template management for common legal documents.
DocumentRegistryFactory
Factory for creating document registry instances.
Securities Offerings
OfferingConfigFacet
Configuration for securities offerings under various regulations.
OfferingPaymasterFacet
Gas abstraction for offering-related transactions.
Supported Offering Types:
Rule 506(b) private placements
Rule 506(c) general solicitation offerings
Rule 701 employee stock option plans
Regulation A+ mini-public offerings
Access Management
IdentityAccessManagerCoreFacet
Core access management for asset issuers.
IdentityAccessManagerConfigFacet
Configuration for issuer-specific access controls.
IdentityAccessManagerDeploymentFacet
Factory for creating issuer access manager instances.
IdentityAccessManagerGovernanceFacet
Governance functionality for issuer access management.
IdentityAccessManagerSubscriptionFacet
Subscription management for issuer services.
IdentityAccessManagerWalletFacet
Wallet integration for issuer access management.
IdentityAccessManagerPaymasterFacet
Gas abstraction for access management operations.
Payment & Gas Abstraction
PaymasterManagementFacet
Core paymaster functionality for gas abstraction.
PaymasterValidationFacet
Validation logic for sponsored transactions.
Payment Features:
CMX token gas payments
Sponsored transactions
Batch operations
Cross-chain payments
Query & Data Access
QueryFacet
General-purpose query interface for protocol data.
Query Capabilities:
Asset information and balances
Compliance status verification
Transaction history
Governance proposal status
Fund performance metrics
Utility Contracts
CMX Token
The native utility token of the CMX Network.
Contract: CMX.sol
Features:
ERC20 standard compliance
Governance token functionality
Gas payment utility
Staking mechanisms
Cross-chain bridge support
USD Stablecoin
USD-pegged stablecoin for protocol operations.
Contract: USD.sol
TokenSale
Token sale and distribution contract.
Contract: TokenSale.sol
SafeFacet
Multi-signature wallet functionality integration.
Factory System
AttestationRegistryFactory
Creates new attestation registry instances for different jurisdictions or use cases.
DocumentRegistryFactory
Creates document registry instances for secure document management.
Factory (Main)
Primary factory contract coordinating all other factories.
Integration Patterns
Diamond Upgrade Process
Deploy New Facet: Deploy the new facet contract
Prepare Diamond Cut: Create the facet cut data structure
Execute Upgrade: Call
diamondCut()
with appropriate permissionsVerify Upgrade: Confirm new functionality is available
Asset Creation Workflow
Compliance Setup: Create required attestation schemas
Asset Deployment: Use AssetDeploymentFacet to create new asset
Configuration: Configure asset parameters via AssetConfigFacet
Compliance Integration: Link compliance requirements
Trading Setup: Configure transfer restrictions and market access
Fund Management Workflow
Fund Creation: Deploy fund diamond via FundDeploymentFacet
Strategy Configuration: Set investment strategy parameters
Compliance Setup: Configure investor requirements
Accounting Integration: Link to accounting ledger
Investor Onboarding: Process investor applications and KYC
Security Considerations
Access Control
All facets inherit from AccessControlFacet for role-based permissions
GlobalAccessManager provides protocol-wide access coordination
Multi-signature requirements for sensitive operations
Upgrade Safety
Diamond cuts require appropriate admin roles
Time delays for critical upgrades
Emergency pause mechanisms available
Compliance Integration
All asset transfers go through compliance checks
Automated sanctions screening
Regulatory jurisdiction enforcement
Gas Optimization
Facet Design
Minimal storage in diamond proxy
Efficient function selector routing
Batch operations where possible
Payment Abstraction
CMX token gas payments reduce costs
Sponsored transactions for user experience
Batch operations for efficiency
Event Monitoring
Key Events
Asset creation and transfers
Compliance status changes
Governance proposal lifecycle
Fund performance updates
System admin actions
This comprehensive smart contract system provides enterprise-grade capital markets infrastructure with regulatory compliance, security, and scalability built in from the ground up.
Last updated
Was this helpful?