chore: sync submodule state (parent ref update)
Made-with: Cursor
This commit is contained in:
353
docs/SMART_ACCOUNTS_INTEGRATION_ROADMAP.md
Normal file
353
docs/SMART_ACCOUNTS_INTEGRATION_ROADMAP.md
Normal file
@@ -0,0 +1,353 @@
|
||||
# Smart Accounts Kit Integration Roadmap
|
||||
|
||||
**Date**: 2026-01-26
|
||||
**Reference**: [MetaMask Smart Accounts Kit](https://docs.metamask.io/smart-accounts-kit#partner-integrations)
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
This roadmap outlines the integration of MetaMask Smart Accounts Kit with the existing Proxmox Smart Vault System.
|
||||
|
||||
---
|
||||
|
||||
## Current State Analysis
|
||||
|
||||
### Existing System
|
||||
|
||||
✅ **RailEscrowVault**: Payment rail escrow system
|
||||
✅ **AccountWalletRegistry**: Fiat account to wallet mapping
|
||||
✅ **SettlementOrchestrator**: Payment settlement coordination
|
||||
✅ **Compliance Integration**: Compliance and policy enforcement
|
||||
|
||||
### Missing Features
|
||||
|
||||
❌ **Smart Accounts**: No programmable accounts
|
||||
❌ **Delegation**: No delegation framework
|
||||
❌ **Advanced Permissions**: No ERC-7715 support
|
||||
❌ **User Operations**: No batch transaction support
|
||||
❌ **Gas Abstraction**: No gas abstraction
|
||||
|
||||
---
|
||||
|
||||
## Integration Phases
|
||||
|
||||
### Phase 1: Foundation (Weeks 1-2)
|
||||
|
||||
**Goal**: Deploy Smart Accounts Kit infrastructure
|
||||
|
||||
**Tasks**:
|
||||
1. ✅ Review Smart Accounts Kit documentation
|
||||
2. ✅ Create deployment scripts
|
||||
3. ✅ Deploy EntryPoint contract
|
||||
4. ✅ Deploy AccountFactory contract
|
||||
5. ✅ Deploy Paymaster contract (optional)
|
||||
6. ✅ Configure for ChainID 138
|
||||
7. ✅ Test smart account creation
|
||||
|
||||
**Deliverables**:
|
||||
- Smart Accounts contracts deployed
|
||||
- Deployment scripts ready
|
||||
- Basic smart account creation working
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: AccountWalletRegistry Integration (Weeks 3-4)
|
||||
|
||||
**Goal**: Integrate Smart Accounts with existing AccountWalletRegistry
|
||||
|
||||
**Tasks**:
|
||||
1. ✅ Extend AccountWalletRegistry interface
|
||||
2. ✅ Add smart account creation on link
|
||||
3. ✅ Support both EOA and smart accounts
|
||||
4. ✅ Update API documentation
|
||||
5. ✅ Test integration
|
||||
|
||||
**Deliverables**:
|
||||
- AccountWalletRegistry supports smart accounts
|
||||
- Smart accounts auto-created on link
|
||||
- Both EOA and smart accounts supported
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Delegation Framework (Weeks 5-6)
|
||||
|
||||
**Goal**: Implement delegation for payment rails and dApps
|
||||
|
||||
**Tasks**:
|
||||
1. ✅ Implement delegation framework
|
||||
2. ✅ Create delegation rules
|
||||
3. ✅ Enable permission sharing
|
||||
4. ✅ Test delegation flows
|
||||
5. ✅ Create delegation examples
|
||||
|
||||
**Deliverables**:
|
||||
- Delegation framework implemented
|
||||
- Delegation rules configured
|
||||
- Delegation examples created
|
||||
|
||||
---
|
||||
|
||||
### Phase 4: Advanced Permissions (Weeks 7-8)
|
||||
|
||||
**Goal**: Implement ERC-7715 Advanced Permissions
|
||||
|
||||
**Tasks**:
|
||||
1. ✅ Implement ERC-7715 standard
|
||||
2. ✅ Enable permission requests
|
||||
3. ✅ Manage permission lifecycle
|
||||
4. ✅ Test permission flows
|
||||
5. ✅ Create permission examples
|
||||
|
||||
**Deliverables**:
|
||||
- ERC-7715 implemented
|
||||
- Permission requests working
|
||||
- Permission examples created
|
||||
|
||||
---
|
||||
|
||||
### Phase 5: Production Deployment (Weeks 9-10)
|
||||
|
||||
**Goal**: Deploy to production and test
|
||||
|
||||
**Tasks**:
|
||||
1. ✅ Security audit
|
||||
2. ✅ Production deployment
|
||||
3. ✅ Integration testing
|
||||
4. ✅ User acceptance testing
|
||||
5. ✅ Documentation completion
|
||||
|
||||
**Deliverables**:
|
||||
- Production deployment complete
|
||||
- All features tested
|
||||
- Documentation complete
|
||||
|
||||
---
|
||||
|
||||
## Integration Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ AccountWalletRegistry │
|
||||
│ (Extended to support Smart Accounts) │
|
||||
└───────────────┬─────────────────────────────────────────┘
|
||||
│
|
||||
├──► EOA Wallet
|
||||
│ └──► RailEscrowVault (Payment Rails)
|
||||
│
|
||||
└──► Smart Account
|
||||
├──► Delegation Framework
|
||||
├──► Advanced Permissions (ERC-7715)
|
||||
├──► User Operations (Batch)
|
||||
└──► Gas Abstraction
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Use Cases
|
||||
|
||||
### Use Case 1: Payment Rails with Smart Accounts
|
||||
|
||||
**Scenario**: User wants to use smart account for payment rail operations
|
||||
|
||||
**Flow**:
|
||||
1. Create smart account
|
||||
2. Link to fiat account via AccountWalletRegistry
|
||||
3. Delegate payment operations to SettlementOrchestrator
|
||||
4. Use smart account for escrow operations
|
||||
|
||||
**Benefits**:
|
||||
- Enhanced security
|
||||
- Delegation with expiry
|
||||
- Programmable compliance checks
|
||||
|
||||
### Use Case 2: dApp Integration with Smart Accounts
|
||||
|
||||
**Scenario**: dApp wants to execute transactions on behalf of user
|
||||
|
||||
**Flow**:
|
||||
1. User creates smart account
|
||||
2. dApp requests Advanced Permissions (ERC-7715)
|
||||
3. User approves permissions
|
||||
4. dApp executes transactions on behalf of user
|
||||
|
||||
**Benefits**:
|
||||
- Better UX
|
||||
- Gas abstraction
|
||||
- Batch operations
|
||||
|
||||
### Use Case 3: Hybrid Approach
|
||||
|
||||
**Scenario**: User has both EOA and smart account
|
||||
|
||||
**Flow**:
|
||||
1. Link EOA to fiat account (for payment rails)
|
||||
2. Link smart account to same fiat account
|
||||
3. Use EOA for payment rails
|
||||
4. Use smart account for dApp interactions
|
||||
|
||||
**Benefits**:
|
||||
- Flexibility
|
||||
- Best of both worlds
|
||||
- Backward compatible
|
||||
|
||||
---
|
||||
|
||||
## Technical Implementation
|
||||
|
||||
### 1. Smart Account Creation
|
||||
|
||||
```typescript
|
||||
import { SmartAccountsKit } from '@metamask/smart-accounts-kit';
|
||||
|
||||
const kit = new SmartAccountsKit({
|
||||
chainId: 138,
|
||||
rpcUrl: 'https://rpc.d-bis.org',
|
||||
entryPointAddress: '0x...',
|
||||
accountFactoryAddress: '0x...',
|
||||
});
|
||||
|
||||
const smartAccount = await kit.createAccount({
|
||||
owner: userAddress,
|
||||
});
|
||||
```
|
||||
|
||||
### 2. AccountWalletRegistry Extension
|
||||
|
||||
```solidity
|
||||
// Add to AccountWalletRegistry.sol
|
||||
function linkSmartAccount(
|
||||
bytes32 accountRefId,
|
||||
address smartAccount,
|
||||
bytes32 provider
|
||||
) external onlyRole(ACCOUNT_MANAGER_ROLE) {
|
||||
bytes32 walletRefId = keccak256(abi.encodePacked(smartAccount));
|
||||
linkAccountToWallet(accountRefId, walletRefId, provider);
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Delegation for Payment Rails
|
||||
|
||||
```typescript
|
||||
const delegation = await kit.requestDelegation({
|
||||
target: settlementOrchestratorAddress,
|
||||
permissions: ['lock_escrow', 'release_escrow'],
|
||||
expiry: Date.now() + 86400000,
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testing Plan
|
||||
|
||||
### Unit Tests
|
||||
|
||||
- [ ] Smart account creation
|
||||
- [ ] AccountWalletRegistry linking
|
||||
- [ ] Delegation framework
|
||||
- [ ] Advanced Permissions
|
||||
- [ ] User operations batching
|
||||
|
||||
### Integration Tests
|
||||
|
||||
- [ ] Smart account + RailEscrowVault
|
||||
- [ ] Smart account + SettlementOrchestrator
|
||||
- [ ] Delegation + Payment rails
|
||||
- [ ] Advanced Permissions + dApps
|
||||
|
||||
### End-to-End Tests
|
||||
|
||||
- [ ] Complete payment rail flow with smart account
|
||||
- [ ] Complete dApp interaction flow
|
||||
- [ ] Hybrid EOA + smart account flow
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
### Technical Metrics
|
||||
|
||||
- ✅ Smart account creation time < 5 seconds
|
||||
- ✅ Delegation approval time < 10 seconds
|
||||
- ✅ User operation batch success rate > 99%
|
||||
- ✅ Gas savings > 30% (via batching)
|
||||
|
||||
### User Experience Metrics
|
||||
|
||||
- ✅ User satisfaction > 80%
|
||||
- ✅ Adoption rate > 50% (of eligible users)
|
||||
- ✅ Error rate < 1%
|
||||
- ✅ Support tickets < 5% of transactions
|
||||
|
||||
---
|
||||
|
||||
## Risk Mitigation
|
||||
|
||||
### Technical Risks
|
||||
|
||||
1. **Smart Account Deployment Issues**
|
||||
- Mitigation: Thorough testing before production
|
||||
- Rollback plan: Keep EOA support active
|
||||
|
||||
2. **Integration Complexity**
|
||||
- Mitigation: Phased rollout
|
||||
- Rollback plan: Feature flags
|
||||
|
||||
3. **Gas Costs**
|
||||
- Mitigation: Paymaster for gas abstraction
|
||||
- Rollback plan: Optimize contracts
|
||||
|
||||
### Business Risks
|
||||
|
||||
1. **User Adoption**
|
||||
- Mitigation: Clear documentation and examples
|
||||
- Rollback plan: Maintain EOA support
|
||||
|
||||
2. **Compliance Issues**
|
||||
- Mitigation: Review with compliance team
|
||||
- Rollback plan: Compliance checks in smart accounts
|
||||
|
||||
---
|
||||
|
||||
## Timeline Summary
|
||||
|
||||
| Phase | Duration | Status |
|
||||
|-------|----------|--------|
|
||||
| Phase 1: Foundation | 2 weeks | ⏳ Pending |
|
||||
| Phase 2: AccountWalletRegistry | 2 weeks | ⏳ Pending |
|
||||
| Phase 3: Delegation | 2 weeks | ⏳ Pending |
|
||||
| Phase 4: Advanced Permissions | 2 weeks | ⏳ Pending |
|
||||
| Phase 5: Production | 2 weeks | ⏳ Pending |
|
||||
| **Total** | **10 weeks** | ⏳ Pending |
|
||||
|
||||
---
|
||||
|
||||
## Dependencies
|
||||
|
||||
### External Dependencies
|
||||
|
||||
- ✅ MetaMask Smart Accounts Kit SDK
|
||||
- ✅ ChainID 138 network support
|
||||
- ✅ RPC endpoint availability
|
||||
- ✅ Gas for deployment
|
||||
|
||||
### Internal Dependencies
|
||||
|
||||
- ✅ AccountWalletRegistry contract
|
||||
- ✅ RailEscrowVault contract
|
||||
- ✅ SettlementOrchestrator contract
|
||||
- ✅ Compliance and policy systems
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. **Review Roadmap**: Get stakeholder approval
|
||||
2. **Start Phase 1**: Deploy Smart Accounts Kit
|
||||
3. **Test Integration**: Test with existing systems
|
||||
4. **Iterate**: Refine based on feedback
|
||||
5. **Deploy**: Deploy to production
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2026-01-26
|
||||
Reference in New Issue
Block a user