DocsAPI Reference
Log In
Docs

Conversion Routing

Conversion Optimization

Meld's intelligent quote ranking system maximizes conversion rates by guiding users toward the most suitable payment providers. Through advanced algorithms analyzing user history, provider performance, and KYC requirements, Meld helps developers achieve significantly higher success rates.

🎯

Proven Results

Meld's customerScore and lowKyc optimization features have enabled developers to achieve 69-94% end-to-end conversion rates - a dramatic improvement over industry averages.

Overview

Every quote response includes intelligent ranking data to help you:

  • Prioritize familiar providers where users have succeeded before
  • Identify low-friction options requiring minimal verification
  • Optimize for user success based on historical performance
  • Reduce abandonment rates through smart provider selection
📋

Scope: These optimization features apply to buy transactions only and are included automatically in all quote responses.

Understanding KYC Impact

Know Your Customer (KYC) verification significantly impacts conversion rates. Each provider has different requirements:

  • Minimal KYC: Email, phone, basic details (high conversion)
  • Standard KYC: Document uploads, identity verification (medium conversion)
  • Enhanced KYC: Bank statements, proof of funds (low conversion)

Meld's optimization ensures users are directed to providers where they've already completed verification, dramatically reducing friction.

Key Optimization Parameters

Every quote includes these conversion-critical fields:

customerScore (0-100)

Meld's proprietary recommendation engine that predicts conversion likelihood for each user-provider pair. Higher scores indicate greater success probability. Meld recognizes users by their wallet address, so this score works across the entire Meld ecosystem, even if your user used the same wallet address via a different wallet before!

lowKyc (boolean)

Indicates whether the transaction can complete without document uploads for new users.

Calculation Factors

Meld's algorithm processes multiple data points, updated several times daily:

User History (Primary Factor)

  • Previous successful transactions with each provider
  • Transaction recency and frequency
  • Failure patterns and recovery behavior
  • Cross-wallet transaction history within Meld network

Provider Performance

  • Historical success rates by geography and payment method
  • Average processing times and reliability metrics
  • Fee competitiveness and spread analysis
  • Payment method diversity and regional support

Market Dynamics

  • Real-time provider availability and capacity
  • Regional regulatory compliance status
  • Seasonal performance variations

Score Interpretation

Score RangeMeaningRecommendation
70-100Excellent MatchMultiple recent successes, prioritize prominently
30-69Good MatchSome success history, feature positively
0-29New/UnknownNo significant history, standard positioning
⚠️

Implementation Note: Always include the user's walletAddress in quote requests to enable personalized scoring.

Implementation Strategy

Primary Sorting: Always rank quotes by customerScore (highest first)

Visual Emphasis: Highlight providers with scores > 30 using:

  • "⭐ Recommended" badges
  • Primary button styling
  • "You've used this before" messaging

Code Example:

interface Quote {
  customerScore: number;
  serviceProvider: string;
  lowKyc: boolean | null;
  partnerFee: number | null;
  sourceAmount: number;
  destinationAmount: number;
  totalFee: number;
  // ... other fields
}

function sortQuotesByRecommendation(quotes: Quote[]): Quote[] {
  return quotes.sort((a, b) => b.customerScore - a.customerScore);
}

function getRecommendationBadge(score: number): string {
  if (score >= 70) return "🏆 Your Best Choice";
  if (score >= 30) return "⭐ Recommended";
  return "";
}
🎯

Best Practice: Never hide or de-emphasize high-scoring options, even if they have higher fees. User familiarity typically outweighs small price differences in conversion impact.

Low KYC Optimization

The lowKyc flag identifies providers where new users can complete transactions without document uploads, significantly reducing friction and improving conversion rates.

What Low KYC Means

✅ Low KYC Requirements:

  • Basic information: email, phone, name
  • Simple verification: SMS codes, email confirmation
  • Optional: SSN or tax ID (varies by country)
  • No document uploads required

❌ Standard KYC Requirements:

  • Government ID photos (license, passport)
  • Proof of address documents
  • Bank statements or financial verification
  • Selfie verification

Response Values

ValueMeaningUser Experience
trueNo documents needed for this amount⚡ Fast completion (2-5 minutes)
falseDocuments required📋 Standard process (10-30 minutes)
nullProvider doesn't specify or amount exceeds threshold🤷 Unknown requirements

Implementation Guidelines

Badge Messaging:

  • lowKyc: true → "⚡ No Documents Required"
  • lowKyc: false → Standard presentation
  • lowKyc: null → No special treatment

Code Example:

function getLowKycBadge(lowKyc: boolean | null): string {
  return lowKyc === true ? "⚡ No Documents Required" : "";
}

function shouldHighlightForSpeed(quote: Quote): boolean {
  return quote.lowKyc === true;
}

Conversion Impact: Low KYC options can improve completion rates by 40-60% for new users, making them valuable for customer acquisition.

Implementation Example

Here's a realistic quote response showing how optimization parameters work together:

{
  "quotes": [
    {
      "transactionType": "CRYPTO_PURCHASE",
      "sourceAmount": 200.00,
      "sourceAmountWithoutFees": 195.83,
      "destinationAmount": 0.04308219,
      "destinationCurrencyCode": "ETH",
      "exchangeRate": 4642.29,
      "paymentMethodType": "CREDIT_DEBIT_CARD",
      "customerScore": 78.5,
      "serviceProvider": "UNLIMIT",
      "lowKyc": null,
      "partnerFee": 2
    },
    {
      "transactionType": "CRYPTO_PURCHASE", 
      "sourceAmount": 200.00,
      "sourceAmountWithoutFees": 193.09,
      "destinationAmount": 0.04176125,
      "destinationCurrencyCode": "ETH",
      "exchangeRate": 4789.13,
      "paymentMethodType": "CREDIT_DEBIT_CARD",
      "customerScore": 45.2,
      "serviceProvider": "KRYPTONIM",
      "lowKyc": true,
      "partnerFee": 0
    },
    {
      "transactionType": "CRYPTO_PURCHASE",
      "sourceAmount": 200.00,
      "sourceAmountWithoutFees": 190.07,
      "destinationAmount": 0.041154,
      "destinationCurrencyCode": "ETH", 
      "exchangeRate": 4859.80,
      "paymentMethodType": "CREDIT_DEBIT_CARD",
      "customerScore": 12.1,
      "serviceProvider": "STRIPE",
      "lowKyc": false,
      "partnerFee": null
    }
  ]
}

Analysis & UI Recommendations

1. UNLIMIT (Score: 78.5)

  • 🏆 Primary Recommendation: Highest customer score indicates strong success history
  • UI Treatment: Featured position, "Your Best Choice" badge
  • Conversion Expectation: Very high (user familiarity)

2. KRYPTONIM (Score: 45.2)

  • Speed Advantage: lowKyc: true means fast completion for new users
  • UI Treatment: "No Documents Required" badge
  • Conversion Expectation: Good for new users, moderate for returning

3. STRIPE (Score: 12.1)

  • Standard Treatment: Lowest score, no special advantages
  • UI Treatment: Regular presentation
  • Conversion Expectation: Lower (unknown user history)

Optimal Implementation Strategy

// Sort quotes optimally
function optimizeQuoteDisplay(quotes: Quote[]): Quote[] {
  return quotes
    .sort((a, b) => b.customerScore - a.customerScore)
    .map(quote => ({
      ...quote,
      recommendationBadge: getRecommendationBadge(quote.customerScore),
      speedBadge: getLowKycBadge(quote.lowKyc),
      isPrimary: quote.customerScore >= 70,
      isRecommended: quote.customerScore >= 30
    }));
}
🎯

Key Principle: Rank by customerScore first, then enhance with lowKyc badges. Never let low KYC override strong user history - familiarity typically wins over convenience.

Summary

Meld's conversion optimization combines user history intelligence with friction analysis to maximize transaction success rates. By implementing proper quote ranking and visual emphasis, developers can achieve industry-leading conversion performance.

Implementation Checklist:

  • ✅ Always include walletAddress in quote requests
  • ✅ Sort quotes by customerScore (highest first)
  • ✅ Add visual badges for scores > 30
  • ✅ Highlight lowKyc: true options with speed messaging
  • ✅ Never override high customerScore with other factors
  • ✅ Monitor conversion metrics and iterate