Wallet Architecture
CapSign wallets are ERC-4337 smart contract wallets built on the Diamond Pattern.
Overview
Wallets support:
Passkey authentication (WebAuthn/P256)
EOA signers (MetaMask, etc.)
ERC-4337 account abstraction
Multi-ownership
Document signing (ERC-1271)
Attestation management
Diamond Structure
WalletDiamond
├── DiamondCutFacet - Upgrades
├── DiamondLoupeFacet - Introspection
├── AccessControlFacet - Permissions
├── WalletCoreFacet - ERC-4337 logic
├── WalletSignatureFacet - ERC-1271 signatures
├── WalletDocumentsFacet - Document management
└── WalletIdentityFacet - Attestation managementKey Facets
WalletCoreFacet
ERC-4337 account abstraction:
WalletSignatureFacet
ERC-1271 signature validation:
Supports:
Passkey signatures (WebAuthn P-256)
EOA signatures (ECDSA)
Multi-sig
WalletDocumentsFacet
Document management:
WalletIdentityFacet
Attestation management:
Deployment
Via WalletFactory
CREATE2 Deterministic
Wallets deployed with CREATE2 for:
Predictable addresses
Vanity addresses
Cross-chain consistency
Address = f(factory, salt, initCode)
Ownership
Individual Wallets
Passkey owners:
Entity Wallets
EOA owners:
Multi-Ownership
Wallets can have multiple owners:
Multiple passkeys
Multiple EOAs
Mix of passkeys and EOAs
Signatures
Passkey Signatures
WebAuthn (P-256) signatures:
Verified using P-256 elliptic curve.
EOA Signatures
Standard ECDSA signatures:
Storage
WalletCoreStorage
Owner Management
Owners stored using Coinbase Smart Wallet's MultiOwnable pattern:
Owners indexed by position
Can add/remove owners
Removed owners tracked separately
ERC-4337 Integration
UserOperation Flow
Gas Sponsorship
Paymaster can sponsor gas:
Security
Access Control
All state-changing functions protected:
Reentrancy Protection
All external calls protected:
Emergency Mode
Pause wallet in emergencies:
Events
Testing
Gas Costs
Typical costs on Base:
Wallet deployment:
0.5M gas ($0.01)Execute transaction:
100k gas ($0.001)Add owner:
50k gas ($0.0005)
Resources
Last updated
Was this helpful?