Files
CurrenciCombo/docs/UI_UX_Specification_Builder_V2.md
T

19 KiB

UI/UX Specification: ISO-20022 Combo Builder v2

Overview

This document specifies the user interface and user experience for the Combo Builder v2, which enables users to compose multi-step financial workflows combining DeFi protocols and traditional banking rails (ISO-20022). The UI is inspired by Furucombo's Create page but extends it with compliance overlays, hybrid adapter support, and optional simulation.

Design Principles

  1. Composability: Drag-and-drop interface for building complex financial workflows
  2. Transparency: Clear display of compliance status, fees, and execution risks
  3. Flexibility: Support for both DeFi and fiat/DTL adapters with selection control
  4. User Control: Optional simulation for advanced users, mandatory compliance checks
  5. Accessibility: Intuitive for non-developers while providing advanced features

1. Main Builder Canvas

Layout Structure

┌─────────────────────────────────────────────────────────────────┐
│ Header: [Combo Builder] [User Identity] [Wallet] [Settings]     │
├─────────────┬─────────────────────────────────────────────────────────┤
│             │                                                      │
│  Adapter    │              Canvas (Drop Zone)                     │
│  Palette    │              ┌─────────────────────┐               │
│             │              │  Step 1: Borrow     │               │
│  [DeFi]     │              │  💰 CBDC_USD: 100k  │               │
│  - Swap     │              └─────────────────────┘               │
│  - Borrow   │              ┌─────────────────────┐               │
│  - Deposit  │              │  Step 2: Swap       │               │
│  - Bridge   │              │  🔄 USD → EUR       │               │
│             │              └─────────────────────┘               │
│  [Fiat]     │              ┌─────────────────────┐               │
│  - Pay      │              │  Step 3: Pay         │               │
│  - Repay    │              │  📤 EUR to IBAN     │               │
│  - Transfer │              └─────────────────────┘               │
│             │                                                      │
│  [Compliance]│                                                    │
│  ✓ LEI     │                                                      │
│  ✓ KYC     │                                                      │
│  ✓ AML     │                                                      │
└─────────────┴─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ Summary Panel:                                                   │
│ Initial Funds: 100,000 CBDC_USD                                 │
│ You will receive: ~78,000 EUR                                   │
│ Fees: 0.2% (200 USD) | Compliance: ✓ | Simulation: [Toggle]   │
│ [Review & Sign] [Simulate] [Save Draft]                        │
└─────────────────────────────────────────────────────────────────┘

Key Components

A. Adapter Palette (Left Sidebar)

  • DeFi Section: Swappable protocols (Uniswap, Aave, Compound, etc.)
  • Fiat/DTL Section: Banking rails (ISO-20022 pay, SWIFT, SEPA, etc.)
  • Compliance Badge: Shows current user compliance status (LEI/DID/KYC/AML)
  • Filter Toggle: "Show All" / "Show Whitelisted Only" / "Show DeFi Only" / "Show Fiat Only"

B. Canvas (Center)

  • Drop Zone: Visual area where users place workflow steps
  • Step Cards: Each step shows:
    • Step number (1, 2, 3...)
    • Icon (💰, 🔄, 💳, 📤)
    • Step type and summary
    • Compliance badge (if applicable)
    • Drag handle (⋮⋮) for reordering
    • Edit/Remove buttons

C. Summary Panel (Bottom)

  • Initial Funds: What user must supply (from wallet or borrow)
  • You will receive: Expected output at workflow end
  • Fee Display: "Included 0.2% fee" (if applicable)
  • Compliance Status: Visual indicators (✓ LEI, ✓ KYC, ✓ AML, ✓ DID)
  • Simulation Toggle: Optional checkbox for advanced users
  • Action Buttons: Review & Sign, Simulate (optional), Save Draft

2. Step Configuration Drawer

Layout

┌────────────────────────────────────────────────────────┐
│ Configure Step: Swap                    [X]            │
├────────────────────────────────────────────────────────┤
│                                                        │
│ From Token: [CBDC_USD ▼]                              │
│ Amount: [100,000]                                      │
│                                                        │
│ To Token: [CBDC_EUR ▼]                                 │
│ Min Receive: [90,000] (auto-calculated)                │
│                                                        │
│ Slippage: [0.5%] (default)                            │
│                                                        │
│ ────────────────────────────────────────────────────── │
│                                                        │
│ Compliance Requirements:                               │
│ ☑ LEI Required: [5493000IBP32UQZ0KL24]                │
│ ☑ KYC Status: ✓ Verified                              │
│ ☑ AML Check: ✓ Passed                                 │
│                                                        │
│ [Save] [Cancel]                                        │
└────────────────────────────────────────────────────────┘

Features

  • Token/Asset Selection: Dropdown with supported tokens (DeFi) or currencies (Fiat)
  • Amount Input: Numeric input with validation
  • Compliance Fields: Auto-populated from user session (LEI, KYC, AML status)
  • Dependency Visualization: Shows which previous steps feed into this step
  • Validation Feedback: Real-time error messages (insufficient balance, invalid IBAN, etc.)

3. Simulation Results Panel (Optional)

Layout

┌────────────────────────────────────────────────────────┐
│ Simulation Results                    [Close]          │
├────────────────────────────────────────────────────────┤
│ Status: ✓ Simulation Successful                        │
│                                                        │
│ Execution Summary:                                     │
│ • Step 1 (Borrow): ✓ 100,000 CBDC_USD                 │
│ • Step 2 (Swap): ✓ 90,000 CBDC_EUR (estimated)        │
│ • Step 3 (Pay): ✓ 78,000 EUR to beneficiary           │
│                                                        │
│ Gas Estimate: 450,000 gas                             │
│ Estimated Cost: $25.50 (at 50 gwei)                    │
│                                                        │
│ Slippage Risk: Low (0.2% expected)                    │
│ Liquidity Check: ✓ Sufficient                          │
│                                                        │
│ Compliance: ✓ All checks passed                        │
│                                                        │
│ [Run Simulation Again] [Proceed to Sign]              │
└────────────────────────────────────────────────────────┘

Features

  • Step-by-Step Results: Shows success/failure for each step
  • Gas Estimation: Calculated gas cost for entire workflow
  • Slippage Analysis: Expected slippage for swaps
  • Liquidity Checks: Verifies sufficient liquidity for trades
  • Compliance Status: Confirms all compliance requirements met
  • Error Warnings: Highlights any potential failure points

4. Compliance Status Dashboard Overlay

Layout

┌────────────────────────────────────────────────────────┐
│ Compliance Status                    [Dismiss]          │
├────────────────────────────────────────────────────────┤
│                                                        │
│ Identity Verification:                                 │
│ ✓ LEI: 5493000IBP32UQZ0KL24                            │
│ ✓ DID: did:web:example.com:user:123                    │
│ ✓ KYC: Level 2 Verified (Expires: 2026-12-31)         │
│ ✓ AML: Passed (Last check: 2025-01-15)                 │
│                                                        │
│ Current Workflow Compliance:                           │
│ • All steps require LEI: ✓ Provided                   │
│ • KYC Level Required: 2 ✓ Met                           │
│ • AML Screening: ✓ Passed                              │
│                                                        │
│ Missing Requirements: None                             │
│                                                        │
│ [Update Identity] [View Compliance Details]           │
└────────────────────────────────────────────────────────┘

Features

  • Always Visible Badge: Small indicator in header showing compliance status
  • Detailed View: Expandable overlay with full compliance details
  • Workflow-Specific Checks: Validates compliance for current workflow
  • Expiration Warnings: Alerts if KYC/AML checks are expiring soon
  • Update Actions: Quick links to update identity or run new checks

5. Adapter Selection Modal

Layout

┌────────────────────────────────────────────────────────┐
│ Select Adapter Type                    [X]             │
├────────────────────────────────────────────────────────┤
│                                                        │
│ Filter: [All] [DeFi] [Fiat/DTL] [Whitelisted Only]   │
│                                                        │
│ ┌──────────────────┐  ┌──────────────────┐           │
│ │ DeFi Protocols   │  │ Fiat/DTL Rails   │           │
│ ├──────────────────┤  ├──────────────────┤           │
│ │ 🔄 Uniswap V3    │  │ 📤 ISO-20022 Pay │           │
│ │ 💰 Aave          │  │ 💳 SWIFT MT      │           │
│ │ 📊 Compound      │  │ 🌐 SEPA          │           │
│ │ 🌉 Bridge        │  │ 🏦 FedNow        │           │
│ │                  │  │                  │           │
│ └──────────────────┘  └──────────────────┘           │
│                                                        │
│ Selected: ISO-20022 Pay                               │
│                                                        │
│ [Add to Palette] [Cancel]                            │
└────────────────────────────────────────────────────────┘

Features

  • Category Filtering: Separate DeFi and Fiat/DTL adapters
  • Whitelist Toggle: Show only approved/whitelisted adapters
  • Adapter Status: Visual indicators (✓ Approved, ⚠ Deprecated, 🔒 Restricted)
  • Search: Quick search for specific adapters
  • Version Info: Shows adapter version and last updated date

6. User Flows

Flow 1: Building a Simple Combo (DeFi Only)

  1. User opens Builder page
  2. User drags "Borrow" from DeFi palette → Canvas
  3. Configures borrow step (asset, amount, collateral)
  4. Drags "Swap" from palette → Canvas (after borrow step)
  5. Configures swap step (from/to tokens, amount)
  6. Summary panel updates automatically
  7. User clicks "Review & Sign" (compliance auto-checked)
  8. Redirected to preview/sign page

Flow 2: Building Hybrid Combo (DeFi + Fiat)

  1. User opens Builder page
  2. Compliance badge shows: ✓ LEI, ✓ KYC, ✓ AML
  3. User drags "Borrow" (DeFi) → Canvas
  4. User drags "Swap" (DeFi) → Canvas
  5. User drags "Pay" (Fiat/DTL) → Canvas
  6. Configures pay step (IBAN, amount, beneficiary)
  7. Compliance overlay appears: "Fiat step requires LEI"
  8. LEI auto-populated from user session
  9. User optionally enables simulation toggle
  10. Clicks "Simulate" → sees results
  11. Clicks "Review & Sign" → proceeds

Flow 3: Advanced User with Simulation

  1. User enables "Simulation" toggle in summary panel
  2. Builds workflow as normal
  3. Before signing, clicks "Simulate" button
  4. Simulation results panel shows:
    • Gas estimate
    • Slippage analysis
    • Liquidity checks
    • Failure predictions
  5. User reviews results, adjusts workflow if needed
  6. Clicks "Proceed to Sign" after simulation passes

Flow 4: Compliance Validation Failure

  1. User builds workflow with fiat step requiring LEI
  2. User has not provided LEI in settings
  3. Compliance badge shows: ⚠ LEI Missing
  4. User attempts to sign
  5. Error modal: "LEI required for this workflow. Please update your identity in Settings."
  6. User redirected to Settings page to add LEI
  7. Returns to Builder, workflow auto-validated

7. Responsive Design

Desktop (≥1024px)

  • Full layout with sidebar palette, canvas, and summary panel
  • All features visible simultaneously

Tablet (768px - 1023px)

  • Collapsible sidebar palette
  • Canvas takes full width when palette collapsed
  • Summary panel remains at bottom

Mobile (<768px)

  • Palette accessible via bottom sheet/modal
  • Canvas scrollable vertically
  • Step cards stack vertically
  • Summary panel sticky at bottom

8. Accessibility Requirements

  • Keyboard Navigation: Full keyboard support for drag-and-drop (arrow keys, space/enter)
  • Screen Reader Support: ARIA labels for all interactive elements
  • Color Contrast: WCAG AA compliance for all text and UI elements
  • Focus Indicators: Clear focus states for all interactive elements
  • Error Messages: Clear, actionable error messages for all validation failures

9. Performance Requirements

  • Initial Load: < 2 seconds for Builder page
  • Step Addition: < 500ms for drag-and-drop response
  • Summary Calculation: Real-time updates < 200ms
  • Simulation: < 5 seconds for full workflow simulation
  • Compliance Check: < 1 second for status validation

10. Integration Points

Frontend → Backend API

  • POST /api/plans - Create execution plan
  • GET /api/plans/:id/simulate - Run simulation (optional)
  • GET /api/compliance/status - Fetch compliance status
  • GET /api/adapters - List available adapters (filtered by type/whitelist)

Frontend → Smart Contracts

  • Wallet connection via Wagmi
  • Plan signing via wallet signature
  • Transaction submission via handler contract

11. Visual Design System

Color Palette

  • Primary: Black (#000000) for actions
  • Secondary: Blue (#3B82F6) for compliance/info
  • Success: Green (#10B981) for valid states
  • Warning: Yellow (#F59E0B) for warnings
  • Error: Red (#EF4444) for errors
  • Background: White (#FFFFFF) for cards, Gray-50 (#F9FAFB) for canvas

Typography

  • Headings: Inter, 24px/32px (h1), 18px/24px (h2)
  • Body: Inter, 14px/20px
  • Code/Monospace: Fira Code, 12px/16px for addresses/IDs

Icons

  • Emoji icons for step types (💰, 🔄, 💳, 📤)
  • Lucide React icons for UI elements (Edit, Remove, Drag, etc.)

12. Error States & Edge Cases

Insufficient Balance

  • Red warning badge on step card
  • Error message: "Insufficient balance. You need 100,000 CBDC_USD but have 50,000."

Invalid Workflow

  • Step dependency error: "Step 2 requires output from Step 1. Please reorder steps."
  • Visual connection lines between dependent steps

Compliance Failure

  • Modal overlay: "This workflow requires LEI verification. Please update your identity in Settings."
  • Link to Settings page

Simulation Failure

  • Results panel shows: "⚠ Simulation Failed"
  • Detailed error: "Step 2 (Swap) would fail due to insufficient liquidity."

Network/Chain Mismatch

  • Warning: "Selected adapter (Uniswap) is on Ethereum, but you're connected to Polygon."
  • Option to switch network or select different adapter

13. Future Enhancements (Out of Scope for v2)

  • Workflow Templates: Pre-built combo templates for common strategies
  • Workflow Sharing: Share workflows with other users (with compliance validation)
  • Multi-user Workflows: Collaborative workflow building
  • Advanced Analytics: Historical performance tracking for workflows
  • Mobile App: Native mobile app for workflow building

Acceptance Criteria

  1. ✅ User can drag adapters from palette to canvas
  2. ✅ User can reorder steps by dragging
  3. ✅ User can configure each step via drawer
  4. ✅ Compliance status is always visible and validated
  5. ✅ Optional simulation works for advanced users
  6. ✅ Summary panel updates in real-time
  7. ✅ Hybrid adapters (DeFi + Fiat) are selectable
  8. ✅ Error states are clearly communicated
  9. ✅ Responsive design works on mobile/tablet/desktop
  10. ✅ Accessibility requirements are met

Document Version: 1.0
Last Updated: 2025-01-15
Author: Engineering Team