┌─────────────────────────────────────────────────────────────────────┐
│ Step 1: Initialize Infrastructure (if not exist) │
├─────────────────────────────────────────────────────────────────────┤
│ • Initialize Global Vault for token mint │
│ • Initialize Global Vault ATA │
└─────────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ Step 2: Initialize User Accounts (if not exist) │
├─────────────────────────────────────────────────────────────────────┤
│ • Initialize Sender ATA │
│ • Initialize Receiver ATA │
│ • Initialize Sender Ephemeral ATA │
│ • Initialize Receiver Ephemeral ATA │
└─────────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ Step 3: Setup Permissions │
├─────────────────────────────────────────────────────────────────────┤
│ • Create Permission(s) for Ephemeral ATA │
│ • Delegate Permission(s) │
└─────────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ Step 4: Deposit & Delegate │
├─────────────────────────────────────────────────────────────────────┤
│ • Deposit SPL tokens to Global Vault │
│ • Delegate Sender and Receiver Ephemeral ATA │
└─────────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ Step 5: Private Transfer │
├─────────────────────────────────────────────────────────────────────┤
│ • Transfer tokens between Ephemeral ATAs (Sender → Receiver) │
└─────────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ Step 6: Undelegate & Withdraw │
├─────────────────────────────────────────────────────────────────────┤
│ • Undelegate Ephemeral ATA │
│ • Withdraw SPL tokens from Ephemeral ATA │
└─────────────────────────────────────────────────────────────────────┘