441 lines
13 KiB
Markdown
441 lines
13 KiB
Markdown
# 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
|