Key Concepts
Understanding these core concepts will help you get the most out of CapSign.
Smart Accounts
What is a Smart Account?
A smart account (also called a smart contract wallet) is a blockchain account controlled by programmable smart contract code rather than a single private key.
Traditional Wallet vs Smart Account
Control
Single private key
Programmable logic
Recovery
Seed phrase only
Social recovery, guardians
Authentication
Private key signature
Multiple methods (passkeys, biometrics)
Gas Fees
Must hold ETH
Can be sponsored (gasless)
Security
Basic
Multi-factor, spending limits
Complexity
Simple
Advanced features
Benefits of Smart Accounts
No Seed Phrases
Traditional wallets require managing 12-24 word seed phrases
Losing your seed phrase means losing your assets forever
Smart accounts use alternative recovery methods
Biometric Authentication
Use Face ID or Touch ID instead of complex passwords
Passkeys stored in device secure enclave
More convenient and more secure
Account Recovery
Recover access through trusted guardians
Social recovery mechanisms
Time-delayed recovery for security
Gasless Transactions
Platform can sponsor gas fees for common operations
No need to hold ETH for gas
Better user experience
Programmable Security
Spending limits
Transaction delays for large transfers
Multi-signature requirements
Whitelist addresses
How CapSign Uses Smart Accounts
CapSign implements smart accounts using the ERC-4337 standard:
Account Abstraction - Separates account logic from validation
UserOperations - Bundled transactions for efficiency
Paymasters - Enable gasless transactions
Entry Point - Standardized contract for account operations
Your CapSign wallet is deployed as a smart contract when you create your account. This contract:
Validates signatures from your passkey
Manages permissions and recovery
Interacts with CapSign protocol contracts
Holds your assets and attestations
Passkeys
What are Passkeys?
Passkeys are a modern authentication standard that replace passwords with cryptographic key pairs:
Private key - Stored in your device's secure enclave, never leaves the device
Public key - Shared with CapSign to verify your signatures
Biometric unlock - Access protected by Face ID or Touch ID
How Passkeys Work
Registration
You create a passkey when signing up
Your device generates a cryptographic key pair
Private key stored in secure enclave (Secure Enclave on iOS, TEE on Android)
Public key registered with CapSign
Authentication
When you sign in, CapSign challenges your device
Device prompts for biometric authentication
Private key signs the challenge (never leaves device)
CapSign verifies signature with your public key
Cross-Device Sync
Passkeys sync via iCloud Keychain (Apple) or Google Password Manager
End-to-end encrypted during sync
Available across all your devices
Benefits of Passkeys
Phishing Resistant
Can't be stolen through phishing websites
No Passwords
Nothing to remember or type
Device Bound
Private key never leaves your device
Biometric Protected
Requires Face ID or Touch ID
Cross-Platform
Works across devices and platforms
Standard Based
WebAuthn standard, widely supported
Passkeys vs Traditional Methods
Passwords
Weak (reuse, phishing)
Medium
Easy
Seed Phrases
Strong (if stored safely)
Poor
Impossible if lost
Passkeys
Very Strong
Excellent
Via device sync
CapSign Passkey Implementation
When you create a CapSign account:
Passkey Creation
WebAuthn API generates passkey
Private key stored in device secure enclave
Public key registered with your account
Smart Wallet Derivation
Your smart account address is derived from passkey public key
Deterministic derivation ensures consistency
Same passkey always yields same wallet address
Transaction Signing
Every action requires biometric confirmation
Passkey signs transaction via WebAuthn
Signature verified by smart account contract
Database + Cache Strategy
Public key stored in database (source of truth)
Cached locally for performance
7-day cache expiration
Learn more: Interface Documentation - Passkeys
Attestations
What are Attestations?
Attestations are on-chain credentials that prove facts about you or your account:
Created on Ethereum Attestation Service (EAS)
Cryptographically signed by trusted issuers
Stored on-chain for transparency
Privacy-preserving (no personal data on-chain)
How Attestations Work
Credential Issuance
You complete verification process (e.g., KYC)
Trusted issuer verifies your information off-chain
Issuer creates attestation on EAS
Attestation references a schema (defines data structure)
Attestation Structure
Attestation { recipient: your wallet address attester: issuer's address schema: attestation type (KYC, accreditation, etc.) data: encoded credential data timestamp: when issued revocable: can it be revoked? }Verification
Anyone can verify attestation on-chain
Check attester is trusted
Verify attestation hasn't been revoked
No personal data revealed
Types of Attestations in CapSign
Identity Attestations
KYC Attestation - Proves you completed identity verification
Schema: KYC verification schema
Data: verification level, timestamp, jurisdiction
Issuer: CapSign or third-party KYC provider
Age Attestation - Proves you meet age requirements
Schema: Age verification schema
Data: minimum age met (true/false), timestamp
No birthdate revealed
Geographic Attestation - Proves your jurisdiction
Schema: Geographic location schema
Data: country code, region
Used for compliance restrictions
Qualification Attestations
Accredited Investor - Proves accredited investor status
Schema: Accreditation schema
Data: accreditation type, expiration date
Required for private securities
Professional Credentials - Proves professional qualifications
Schema: Professional license schema
Data: license type, issuing authority
For regulated activities
Custom Attestations
Developers can create custom attestation schemas for:
Organizational membership
Course completion certificates
Reputation scores
Social credentials
Access permissions
Benefits of Attestations
Privacy Preserving
Attestation proves a fact without revealing underlying data
"User is over 18" without revealing birthdate
"User is accredited" without revealing financial details
Portable
Attestations follow your wallet address
Use attestations across multiple applications
No need to verify identity repeatedly
Transparent
Anyone can verify attestation authenticity
Audit trail on blockchain
See all attestations for any address
Revocable
Issuer can revoke if credential expires
Real-time verification status
No invalid credentials lingering
Using Attestations
As a User
View Your Attestations
Navigate to Dashboard → Attestations
See all attestations linked to your wallet
Check issuer, date, and status
Share Attestations
Grant applications access to verify your attestations
No personal data shared
Revocable access
Maintain Attestations
Complete verification processes to obtain new attestations
Monitor expiration dates
Renew when needed
As a Developer
Verify Attestations
function hasKYC(address user) public view returns (bool) { bytes32 attestationUID = getAttestation(user, KYC_SCHEMA); return attestationUID != bytes32(0); }Create Custom Schemas
Define schema structure
Register with EAS
Issue attestations to users
Build Gated Features
Require specific attestations for access
Verify on-chain in real-time
Enforce compliance automatically
Learn more: Protocol Documentation - Attestations
Diamond Pattern Architecture
What is the Diamond Pattern?
The Diamond Pattern (EIP-2535) is a smart contract architecture that enables:
Modularity - Functionality split into separate facets
Upgradeability - Add/remove/replace features without redeploying
No Size Limit - Bypass 24KB contract size limit
Single Address - All functionality accessible via one address
How Diamonds Work
Diamond (Proxy)
|
+-------------+-------------+
| | |
Facet A Facet B Facet C
(Users) (Transfers) (Metadata)Diamond - Main contract with storage and delegation logic
Facets - Individual contracts containing specific functionality
DiamondCut - Function to add/remove/replace facets
Loupe - Functions to inspect diamond configuration
Why CapSign Uses Diamonds
Protocol Upgrades
Add new features without migrating users
Fix bugs in specific facets
Maintain same contract address
Modularity
Separate concerns (authentication, transfers, attestations)
Easier testing and auditing
Cleaner code organization
Gas Efficiency
Only deploy facets you need
Share facets across multiple diamonds
Optimize specific functions independently
Factory Pattern
Deploy custom diamonds with different facet combinations
User-specific wallets with tailored functionality
Governance structures with modular features
Learn more: Protocol Documentation - Architecture
Next Steps
Now that you understand the core concepts:
For Users
Managing Your Wallet - Wallet operations guide
Viewing Attestations - Understanding your credentials
Security Best Practices - Keep your account secure
For Developers
Protocol Overview - Deep dive into smart contracts
Interface Documentation - Frontend integration guide
Smart Accounts - ERC-4337 implementation details
Attestations - Attestation system architecture
Last updated
Was this helpful?