Off-Ramp Layer

The Off-Ramp Layer enables instant crypto-to-fiat conversion with 3-second settlement via direct banking API integration.

Settlement Flow

Step 1: User initiates off-ramp
  POST /offramp/request
  { amount: 1000, currency: "NGN", bank_code: "058", account: "0123456789" }

Step 2: Smart contract escrow
  Vault.withdrawToEscrow(shares, destId)
  → USDC locked in escrow contract

Step 3: LP matching
  System selects optimal liquidity node:
  - Same bank preference (GTBank → GTBank LP for 3s settlement)
  - Sufficient fiat balance
  - Highest reliability score

Step 4: Fiat transfer (automated)
  Paystack API → initiate_transfer({
    recipient: resolved_account,
    amount: 1_565_000,  // NGN equivalent
    currency: "NGN"
  })

Step 5: Confirmation
  Webhook: transfer.success
  → Backend calls Escrow.releaseAfterSettlement()
  → USDC released from escrow to LP node
  → User's bank account credited

Step 6: Failure handling
  If transfer fails or times out:
  → Escrow.refundIfFailed()
  → USDC returned to user's wallet
  → No manual intervention needed

Settlement Times

Transfer TypeExpected Time
Same-bank (e.g., GTBank → GTBank)3 seconds
Same-network (NIP — GTBank → Zenith)1–2 minutes
Cross-bankup to 5 minutes

Liquidity Node Model

┌─────────────────────────────────────────┐
│           Liquidity Node                 │
│                                         │
│  Operator stakes collateral (USDC)      │
│  Maintains fiat balance in bank acct    │
│  Connected via banking API              │
│                                         │
│  Revenue: 0.5% per transaction          │
│  Penalty: Deprioritized + collateral    │
│           slashed for repeated failures │
└─────────────────────────────────────────┘

KYC-Lite Requirements

Off-ramp users must complete lightweight identity verification:

  • Full name
  • BVN (Bank Verification Number) — Nigeria
  • NIN (National Identification Number) — Nigeria
  • Transaction limits applied based on verification level

Supported Currencies

CurrencyCountryBanking PartnerStatus
NGNNigeriaPaystack, Moniepoint, KudaMVP
GHSGhanaPaystackPost-beta
KESKenyaM-Pesa integration (planned)Post-beta