KYT Crypto API

API reference for Know Your Transaction (KYT) cryptocurrency compliance including wallet screening, risk scoring, and transaction monitoring.

KYT Crypto API

Screen cryptocurrency wallets and transactions for illicit activity, sanctions risk, and money laundering indicators.

Overview

KYT Crypto API provides:

  • Wallet screening - Check wallet addresses against sanctions lists and databases
  • Risk scoring - Calculate risk scores based on transaction history
  • Transaction monitoring - Ongoing monitoring of wallet activity
  • Source of funds analysis - Trace funds to identify illicit sources

2 Credits Per wallet check 1 Credit Per month for monitoring

Check Wallet

POST/api/v3/kyt/check🔒 Auth Required2 Credits

Screen a cryptocurrency wallet

Screen a wallet address for sanctions, fraud, and money laundering risk.

Request Body

FieldTypeRequiredDescription
addressstringYesWallet address
blockchainstringYesBlockchain network (BTC, ETH, USDT, etc.)
transactionDepthnumberNoHops to trace (default: 1, max: 3)
includeSourceAnalysisbooleanNoTrace fund sources (default: false)
applicantIdstringNoLink to applicant

Supported Blockchains

SymbolNetworkSupported
BTCBitcoin✅
ETHEthereum✅
USDTTether (ERC-20)✅
USDCUSD Coin (ERC-20)✅
BNBBinance Smart Chain✅
XRPRipple✅
ADACardano✅
SOLSolana✅
MATICPolygon✅
LTCLitecoin✅
const response = await fetch('https://api.veriplus.co.uk/api/v3/kyt/check', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
    blockchain: 'BTC',
    transactionDepth: 2,
    includeSourceAnalysis: true,
    applicantId: 'app_1234567890'
  })
});
 
const data = await response.json();
console.log('Risk score:', data.data.riskScore);
console.log('Risk level:', data.data.riskLevel);

Response

{
  "success": true,
  "data": {
    "checkId": "kyt_abc123xyz",
    "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
    "blockchain": "BTC",
    "riskScore": 72,
    "riskLevel": "HIGH",
    "sanctions": {
      "isSanctioned": false,
      "lists": []
    },
    "categoryScores": {
      "darknetMarkets": 45,
      "ransomware": 8,
      "scam": 12,
      "stolen": 6,
      "gambling": 23,
      "mixer": 38,
      "exchange": 65
    },
    "topRisks": [
      {
        "category": "MIXER",
        "score": 38,
        "description": "Wallet has interacted with known mixing services"
      },
      {
        "category": "DARKNET_MARKETS",
        "score": 45,
        "description": "Funds traced to darknet marketplace"
      }
    ],
    "walletInfo": {
      "firstSeen": "2009-01-03T18:15:05Z",
      "lastActive": "2024-01-10T14:22:00Z",
      "totalReceived": "68.12 BTC",
      "totalSent": "68.12 BTC",
      "balance": "0 BTC",
      "transactionCount": 3542
    },
    "sourceAnalysis": {
      "directSources": [
        {
          "address": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
          "percentage": 42,
          "category": "EXCHANGE",
          "riskScore": 10
        },
        {
          "address": "3J98t1WpEZ73CNmYviecrnyiWrnqRhWNLy",
          "percentage": 38,
          "category": "MIXER",
          "riskScore": 85
        }
      ],
      "ultimateSources": [
        {
          "category": "DARKNET_MARKETS",
          "percentage": 28,
          "description": "Traced to Silk Road marketplace"
        }
      ]
    },
    "recommendation": "ENHANCED_DUE_DILIGENCE",
    "creditsUsed": 2,
    "checkedAt": "2024-01-15T10:30:00Z"
  }
}

Get Check Results

GET/api/v3/kyt/checks/:id🔒 Auth Required0

Retrieve wallet check results

Retrieve results from a previous wallet check.

const response = await fetch(
  `https://api.veriplus.co.uk/api/v3/kyt/checks/${checkId}`,
  {
    headers: {
      'Authorization': `Bearer ${apiKey}`
    }
  }
);
 
const data = await response.json();
console.log('Risk score:', data.data.riskScore);

Enable Monitoring

POST/api/v3/kyt/monitoring🔒 Auth Required1 Credit

Enable ongoing wallet monitoring

Monitor a wallet for new transactions and risk changes.

1 Credit Per wallet per month

const response = await fetch('https://api.veriplus.co.uk/api/v3/kyt/monitoring', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
    blockchain: 'BTC',
    riskThreshold: 70,
    alertCategories: ['SANCTIONS', 'DARKNET_MARKETS', 'RANSOMWARE'],
    notificationUrl: 'https://yourdomain.com/webhooks/kyt'
  })
});
 
const data = await response.json();
console.log('Monitoring ID:', data.data.monitoringId);

Response

{
  "success": true,
  "data": {
    "monitoringId": "kyt_mon_xyz789",
    "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
    "blockchain": "BTC",
    "status": "ACTIVE",
    "riskThreshold": 70,
    "lastChecked": "2024-01-15T10:30:00Z",
    "nextCheckAt": "2024-01-15T22:30:00Z",
    "creditsPerMonth": 1,
    "createdAt": "2024-01-15T10:30:00Z"
  }
}

Monitoring Frequency: Checks run every 12 hours. Alerts sent when risk threshold exceeded or sanctions match found.

Stop Monitoring

DELETE/api/v3/kyt/monitoring/:id🔒 Auth Required0

Disable wallet monitoring

Stop monitoring a wallet.

const response = await fetch(
  `https://api.veriplus.co.uk/api/v3/kyt/monitoring/${monitoringId}`,
  {
    method: 'DELETE',
    headers: {
      'Authorization': `Bearer ${apiKey}`
    }
  }
);
 
if (response.ok) {
  console.log('Monitoring stopped');
}

List Checks

GET/api/v3/kyt/checks🔒 Auth Required0

List all wallet checks

Retrieve a paginated list of wallet checks.

const params = new URLSearchParams({
  riskLevel: 'HIGH',
  blockchain: 'BTC',
  limit: '50'
});
 
const response = await fetch(
  `https://api.veriplus.co.uk/api/v3/kyt/checks?${params}`,
  {
    headers: {
      'Authorization': `Bearer ${apiKey}`
    }
  }
);
 
const data = await response.json();
console.log(`Found ${data.data.length} high-risk wallets`);

Risk Scoring

VeriPlus calculates wallet risk scores (0-100) based on:

Risk Categories

CategoryWeightDescription
SanctionsCriticalOFAC/UN sanctioned addresses
Darknet MarketsHighInteraction with illegal marketplaces
RansomwareHighLinked to ransomware payments
ScamHighFraudulent schemes
Stolen FundsHighStolen cryptocurrency
Mixer/TumblerMediumPrivacy/mixing services
GamblingLowOnline gambling platforms
ExchangeLowLegitimate exchange interaction

Risk Levels

ScoreRisk LevelAction
0-30LOWAccept
31-50MEDIUMStandard due diligence
51-70HIGHEnhanced due diligence
71-100CRITICALReject or in-depth review

Special Cases

CaseRisk ScoreAction
Sanctioned address100Immediate rejection
Direct ransomware link95Reject
New wallet (<30 days)+10Increased scrutiny
High-volume exchange-5Lower risk

Transaction Depth

Control how many hops to trace funds:

DepthDescriptionUse CaseProcessing Time
1Direct sources onlyQuick screening2-3 seconds
22-hop analysisStandard compliance5-10 seconds
33-hop deep traceHigh-risk customers15-30 seconds

Cost: Same credit cost regardless of depth (2 credits per check).

Webhooks

Receive real-time alerts for wallet monitoring:

Events:

  • kyt.check_completed - Wallet check finished
  • kyt.high_risk_detected - Risk score above threshold
  • kyt.sanctions_match - Sanctioned address detected
  • kyt.monitoring_alert - Risk change in monitored wallet

Webhook Payload:

{
  "event": "kyt.high_risk_detected",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "checkId": "kyt_abc123",
    "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
    "blockchain": "BTC",
    "riskScore": 72,
    "riskLevel": "HIGH",
    "topRisks": ["MIXER", "DARKNET_MARKETS"]
  }
}

See Webhooks Documentation for setup.

Best Practices

  1. Screen at Deposit: Check wallets before accepting deposits
  2. Monitor High-Value Customers: Enable monitoring for customers with >$10,000 transactions
  3. Set Risk Thresholds: Define clear risk score thresholds for your business
  4. Document Decisions: Keep audit trail of wallet screening results
  5. Re-screen Periodically: Run quarterly re-screening for active customers
  6. Use Source Analysis: Enable for high-risk wallets to understand fund origins
  7. Reject Sanctioned Immediately: Zero tolerance for sanctioned addresses

Regulatory Compliance

KYT screening helps comply with:

  • FinCEN Travel Rule (US) - Identify transaction parties
  • 5AMLD (EU) - Crypto exchange compliance
  • MiCA (EU 2025) - Market abuse regulation
  • UK MLR 2017 - Money laundering regulations
  • FATF Recommendations - Global AML standards

Regulatory Requirement

Most jurisdictions require cryptocurrency businesses to screen wallets for sanctions and monitor high-risk transactions.

Error Handling

Error CodeHTTP StatusDescriptionSolution
INVALID_ADDRESS400Wallet address format invalidVerify address format
UNSUPPORTED_BLOCKCHAIN400Blockchain not supportedUse supported blockchain
INSUFFICIENT_CREDITS402Not enough creditsPurchase credits
RATE_LIMIT_EXCEEDED429Too many requestsImplement rate limiting
MONITORING_ALREADY_ACTIVE409Wallet already monitoredUse existing monitoring

Next Steps

Ready to integrate?

Get your API key and start building in minutes.

Ready to get started?

Start with our free plan. No credit card required.

We value your privacy

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Read our Privacy Policy and Cookie Policy for more information.