# Smart Vault System vs MetaMask Smart Accounts Kit - Comprehensive Comparison **Date**: 2026-01-26 **Reference**: [MetaMask Smart Accounts Kit](https://docs.metamask.io/smart-accounts-kit#partner-integrations) --- ## Executive Summary The Proxmox project contains a **Smart Vault System** for payment rail settlement, which is **fundamentally different** from MetaMask Smart Accounts Kit. However, they can be **complementary** and integrated together. --- ## System Overview ### Proxmox Smart Vault System **Purpose**: Payment rail settlement and compliance for traditional financial systems. **Components**: 1. **RailEscrowVault** (`0x609644D9858435f908A5B8528941827dDD13a346`) - Escrows tokens for payment rail transfers - Supports FEDWIRE, SWIFT, SEPA, RTGS - Per-trigger escrow tracking 2. **AccountWalletRegistry** (`0xBeEF0128B7ff030e25beeda6Ff62f02041Dedbd0`) - Maps fiat accounts (IBAN, ABA) to Web3 wallets - Supports multiple wallet providers (MetaMask, Fireblocks) - 1-to-many account-wallet mapping 3. **SettlementOrchestrator** - Coordinates payment trigger lifecycle - Validates compliance and policies - Manages escrow lock/release **Architecture**: Standard EOAs (Externally Owned Accounts) with escrow contracts --- ### MetaMask Smart Accounts Kit **Purpose**: Programmable account behavior and granular permission sharing. **Key Features**: - ✅ **Smart Accounts**: ERC-4337 compatible programmable accounts - ✅ **Delegation Framework**: Rule-based permission sharing - ✅ **Advanced Permissions (ERC-7715)**: Fine-grained dApp permissions - ✅ **User Operations**: Batch transactions - ✅ **Gas Abstraction**: Pay gas in tokens or sponsor gas - ✅ **Multi-Signature**: Multi-sig approvals **Architecture**: Smart contract accounts with programmable logic **Reference**: [MetaMask Smart Accounts Kit Documentation](https://docs.metamask.io/smart-accounts-kit#partner-integrations) --- ## Detailed Feature Comparison ### 1. Account Type | Feature | Proxmox Smart Vault | MetaMask Smart Accounts Kit | |---------|---------------------|----------------------------| | **Account Type** | Standard EOAs | Smart Contract Accounts | | **Programmability** | ❌ No | ✅ Yes | | **Custom Logic** | ❌ No | ✅ Yes | | **Upgradeability** | ❌ No | ✅ Yes (via proxy) | ### 2. Permission System | Feature | Proxmox Smart Vault | MetaMask Smart Accounts Kit | |---------|---------------------|----------------------------| | **Delegation** | ❌ No | ✅ Yes (Delegation Framework) | | **Advanced Permissions** | ❌ No | ✅ Yes (ERC-7715) | | **Rule-Based Permissions** | ❌ No | ✅ Yes | | **Permission Expiry** | ❌ No | ✅ Yes | | **Role-Based Access** | ✅ Yes (AccessControl) | ✅ Yes (Delegation) | ### 3. Transaction Features | Feature | Proxmox Smart Vault | MetaMask Smart Accounts Kit | |---------|---------------------|----------------------------| | **Batch Operations** | ❌ No | ✅ Yes (User Operations) | | **Gas Abstraction** | ❌ No | ✅ Yes | | **Transaction Batching** | ❌ No | ✅ Yes | | **Multi-Signature** | ❌ No | ✅ Yes | | **Account Abstraction** | ❌ No | ✅ Yes (ERC-4337) | ### 4. Payment Rail Features | Feature | Proxmox Smart Vault | MetaMask Smart Accounts Kit | |---------|---------------------|----------------------------| | **Payment Rail Support** | ✅ Yes (FEDWIRE, SWIFT, SEPA) | ❌ No | | **Escrow Management** | ✅ Yes (RailEscrowVault) | ❌ No | | **Settlement Orchestration** | ✅ Yes | ❌ No | | **Compliance Integration** | ✅ Yes | ❌ No | | **Policy Enforcement** | ✅ Yes | ❌ No | ### 5. Account-Wallet Mapping | Feature | Proxmox Smart Vault | MetaMask Smart Accounts Kit | |---------|---------------------|----------------------------| | **Fiat Account Mapping** | ✅ Yes (AccountWalletRegistry) | ❌ No | | **Wallet Provider Support** | ✅ Yes (MetaMask, Fireblocks) | ✅ Yes (MetaMask) | | **1-to-Many Mapping** | ✅ Yes | ❌ No | | **Account Privacy** | ✅ Yes (Hashed refs) | ❌ No | --- ## Use Case Comparison ### Proxmox Smart Vault Use Cases 1. **Payment Rail Settlement**: - Lock tokens for FEDWIRE transfer - Lock tokens for SWIFT transfer - Coordinate settlement lifecycle - Enforce compliance and policies 2. **Account-Wallet Linking**: - Link IBAN to MetaMask wallet - Link ABA routing to wallet - Track wallet providers - Manage account-wallet relationships 3. **Compliance and Policy**: - Check compliance registry - Enforce policy manager rules - Validate account eligibility - Track regulated entities ### MetaMask Smart Accounts Kit Use Cases 1. **dApp Integration**: - Execute transactions on behalf of users - Request advanced permissions - Batch multiple operations - Abstract gas payments 2. **User Experience**: - Programmable account behavior - Delegation to dApps - Gas abstraction - Batch transactions 3. **Developer Features**: - Smart account creation - Delegation framework - Permission management - User operation batching --- ## Integration Opportunities ### Option 1: Deploy Smart Accounts Kit Alongside Smart Vault **Architecture**: ``` ┌─────────────────────┐ │ Fiat Account │ │ (IBAN/ABA) │ └──────────┬──────────┘ │ ▼ ┌─────────────────────┐ │ AccountWalletRegistry│ └──────────┬──────────┘ │ ├──► EOA Wallet (MetaMask) │ └──► RailEscrowVault (Payment Rails) │ └──► Smart Account (New) ├──► Delegation Framework ├──► Advanced Permissions └──► User Operations (dApps) ``` **Benefits**: - ✅ Keep existing payment rail system - ✅ Add smart account capabilities - ✅ Support both use cases - ✅ Enhanced user experience ### Option 2: Enhance AccountWalletRegistry with Smart Accounts **Implementation**: 1. Extend AccountWalletRegistry to support smart accounts 2. Auto-create smart accounts when linking wallets 3. Support both EOA and smart accounts 4. Use smart accounts for dApp interactions 5. Use EOAs for payment rails (if needed) **Benefits**: - ✅ Unified account management - ✅ Seamless integration - ✅ Backward compatible - ✅ Enhanced capabilities ### Option 3: Hybrid Approach (Recommended) **Implementation**: 1. **Payment Rails**: Continue using RailEscrowVault with EOAs 2. **dApp Interactions**: Use Smart Accounts Kit 3. **Account Management**: AccountWalletRegistry manages both 4. **Bridge**: SettlementOrchestrator can use either **Benefits**: - ✅ Best of both worlds - ✅ Maintain existing functionality - ✅ Add new capabilities - ✅ Flexible architecture --- ## Implementation Plan ### Phase 1: Deploy Smart Accounts Kit **Tasks**: 1. Install Smart Accounts Kit SDK 2. Deploy EntryPoint contract 3. Deploy AccountFactory contract 4. Deploy Paymaster contract (optional) 5. Configure for ChainID 138 **Files to Create**: - `scripts/deploy-smart-accounts-kit.sh` - `contracts/smart-accounts/DeploySmartAccounts.s.sol` - `docs/SMART_ACCOUNTS_DEPLOYMENT.md` ### Phase 2: Integrate with AccountWalletRegistry **Tasks**: 1. Extend AccountWalletRegistry interface 2. Add smart account creation on link 3. Support both EOA and smart accounts 4. Update API documentation **Files to Create**: - `contracts/emoney/AccountWalletRegistryExtended.sol` - `docs/SMART_ACCOUNTS_ACCOUNT_WALLET_INTEGRATION.md` ### Phase 3: Add Delegation Framework **Tasks**: 1. Implement delegation framework 2. Create delegation rules 3. Enable permission sharing 4. Test delegation flows **Files to Create**: - `docs/SMART_ACCOUNTS_DELEGATION.md` - `examples/delegation-example.ts` ### Phase 4: Advanced Permissions (ERC-7715) **Tasks**: 1. Implement ERC-7715 standard 2. Enable permission requests 3. Manage permission lifecycle 4. Test permission flows **Files to Create**: - `docs/SMART_ACCOUNTS_ADVANCED_PERMISSIONS.md` - `examples/advanced-permissions-example.ts` --- ## Code Examples ### Current: AccountWalletRegistry ```solidity // Link MetaMask EOA to fiat account accountWalletRegistry.linkAccountToWallet( keccak256("IBAN123"), keccak256("0xWalletAddress"), keccak256("METAMASK") ); ``` ### Proposed: Smart Account Integration ```typescript // Create smart account and link const smartAccount = await smartAccountsKit.createAccount({ owner: userAddress, }); await accountWalletRegistry.linkAccountToWallet( keccak256("IBAN123"), keccak256(abi.encodePacked(smartAccount.address)), keccak256("METAMASK_SMART_ACCOUNT") ); ``` ### Proposed: Delegation for Payment Rails ```typescript // Delegate payment rail operations const delegation = await smartAccountsKit.requestDelegation({ target: settlementOrchestratorAddress, permissions: ['lock_escrow', 'release_escrow'], expiry: Date.now() + 86400000, // 24 hours }); ``` --- ## Partner Integration Opportunities According to [MetaMask Smart Accounts Kit documentation](https://docs.metamask.io/smart-accounts-kit#partner-integrations), the following partners are integrated: - **Scaffold-ETH 2**: Smart Accounts extension - **Viem**: Smart Accounts support - **Arbitrum**: Network support - **permissionless.js**: Smart Accounts integration - **Monad**: Testnet support **ChainID 138 Integration**: - Submit ChainID 138 for Smart Accounts Kit support - Create partner integration guide - Test with existing partners (Viem, permissionless.js) --- ## Benefits of Integration ### For Payment Rails - ✅ **Keep Existing System**: RailEscrowVault continues to work - ✅ **Enhanced Security**: Smart accounts for sensitive operations - ✅ **Better Compliance**: Programmable compliance checks - ✅ **Delegation**: Delegate payment operations securely ### For dApps - ✅ **Better UX**: Gas abstraction, batch operations - ✅ **Advanced Permissions**: Fine-grained permission control - ✅ **Delegation**: Execute on behalf of users - ✅ **Programmable**: Custom account behavior ### For Users - ✅ **Flexibility**: Choose EOA or smart account - ✅ **Better UX**: Gas abstraction, batch transactions - ✅ **Security**: Delegation with expiry - ✅ **Control**: Fine-grained permissions --- ## Recommended Approach ### Hybrid Architecture (Recommended) 1. **Payment Rails**: Use RailEscrowVault with EOAs (existing system) 2. **dApp Interactions**: Use Smart Accounts Kit (new capabilities) 3. **Account Management**: AccountWalletRegistry manages both 4. **Bridge**: Users can have both EOA and smart account linked **Benefits**: - ✅ Maintains existing payment rail functionality - ✅ Adds smart account capabilities - ✅ Flexible for different use cases - ✅ Backward compatible --- ## Implementation Checklist ### Smart Accounts Kit Deployment - [ ] Review MetaMask Smart Accounts Kit documentation - [ ] Install SDK: `npm install @metamask/smart-accounts-kit` - [ ] Deploy EntryPoint contract - [ ] Deploy AccountFactory contract - [ ] Deploy Paymaster contract (optional) - [ ] Configure for ChainID 138 - [ ] Test smart account creation ### AccountWalletRegistry Integration - [ ] Extend AccountWalletRegistry interface - [ ] Add smart account creation function - [ ] Support both EOA and smart accounts - [ ] Update linking functions - [ ] Test smart account linking - [ ] Update API documentation ### Delegation Framework - [ ] Implement delegation framework - [ ] Create delegation rules - [ ] Enable permission sharing - [ ] Test delegation flows - [ ] Create delegation examples ### Advanced Permissions - [ ] Implement ERC-7715 standard - [ ] Enable permission requests - [ ] Manage permission lifecycle - [ ] Test permission flows - [ ] Create permission examples --- ## Files Created 1. **`docs/SMART_VAULT_VS_METAMASK_SMART_ACCOUNTS_COMPARISON.md`** - Initial comparison 2. **`docs/SMART_VAULT_COMPREHENSIVE_COMPARISON.md`** - This comprehensive comparison 3. **`scripts/deploy-smart-accounts-kit.sh`** - Deployment script 4. **`smart-accounts-kit-deployment/DEPLOYMENT_GUIDE.md`** - Deployment guide 5. **`smart-accounts-kit-deployment/ACCOUNT_WALLET_INTEGRATION.md`** - Integration guide --- ## Next Steps 1. **Review Comparison**: Understand differences and opportunities 2. **Deploy Smart Accounts Kit**: Deploy to ChainID 138 3. **Integrate with AccountWalletRegistry**: Extend existing system 4. **Test Integration**: Test all features 5. **Document**: Create user and developer guides --- ## Conclusion The Proxmox Smart Vault System and MetaMask Smart Accounts Kit serve **different but complementary purposes**: - **Smart Vault**: Payment rail settlement and compliance ✅ - **Smart Accounts Kit**: Programmable accounts and dApp integration ✅ **Recommended**: Deploy Smart Accounts Kit alongside Smart Vault system for enhanced capabilities while maintaining existing payment rail functionality. --- **Last Updated**: 2026-01-26