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
/api/v3/kyt/check🔒 Auth Required2 CreditsScreen a cryptocurrency wallet
Screen a wallet address for sanctions, fraud, and money laundering risk.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
address | string | Yes | Wallet address |
blockchain | string | Yes | Blockchain network (BTC, ETH, USDT, etc.) |
transactionDepth | number | No | Hops to trace (default: 1, max: 3) |
includeSourceAnalysis | boolean | No | Trace fund sources (default: false) |
applicantId | string | No | Link to applicant |
Supported Blockchains
| Symbol | Network | Supported |
|---|---|---|
| BTC | Bitcoin | ✅ |
| ETH | Ethereum | ✅ |
| USDT | Tether (ERC-20) | ✅ |
| USDC | USD Coin (ERC-20) | ✅ |
| BNB | Binance Smart Chain | ✅ |
| XRP | Ripple | ✅ |
| ADA | Cardano | ✅ |
| SOL | Solana | ✅ |
| MATIC | Polygon | ✅ |
| LTC | Litecoin | ✅ |
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
/api/v3/kyt/checks/:id🔒 Auth Required0Retrieve 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
/api/v3/kyt/monitoring🔒 Auth Required1 CreditEnable 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
/api/v3/kyt/monitoring/:id🔒 Auth Required0Disable 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
/api/v3/kyt/checks🔒 Auth Required0List 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
| Category | Weight | Description |
|---|---|---|
| Sanctions | Critical | OFAC/UN sanctioned addresses |
| Darknet Markets | High | Interaction with illegal marketplaces |
| Ransomware | High | Linked to ransomware payments |
| Scam | High | Fraudulent schemes |
| Stolen Funds | High | Stolen cryptocurrency |
| Mixer/Tumbler | Medium | Privacy/mixing services |
| Gambling | Low | Online gambling platforms |
| Exchange | Low | Legitimate exchange interaction |
Risk Levels
| Score | Risk Level | Action |
|---|---|---|
| 0-30 | LOW | Accept |
| 31-50 | MEDIUM | Standard due diligence |
| 51-70 | HIGH | Enhanced due diligence |
| 71-100 | CRITICAL | Reject or in-depth review |
Special Cases
| Case | Risk Score | Action |
|---|---|---|
| Sanctioned address | 100 | Immediate rejection |
| Direct ransomware link | 95 | Reject |
| New wallet (<30 days) | +10 | Increased scrutiny |
| High-volume exchange | -5 | Lower risk |
Transaction Depth
Control how many hops to trace funds:
| Depth | Description | Use Case | Processing Time |
|---|---|---|---|
| 1 | Direct sources only | Quick screening | 2-3 seconds |
| 2 | 2-hop analysis | Standard compliance | 5-10 seconds |
| 3 | 3-hop deep trace | High-risk customers | 15-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 finishedkyt.high_risk_detected- Risk score above thresholdkyt.sanctions_match- Sanctioned address detectedkyt.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
- Screen at Deposit: Check wallets before accepting deposits
- Monitor High-Value Customers: Enable monitoring for customers with >$10,000 transactions
- Set Risk Thresholds: Define clear risk score thresholds for your business
- Document Decisions: Keep audit trail of wallet screening results
- Re-screen Periodically: Run quarterly re-screening for active customers
- Use Source Analysis: Enable for high-risk wallets to understand fund origins
- 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 Code | HTTP Status | Description | Solution |
|---|---|---|---|
INVALID_ADDRESS | 400 | Wallet address format invalid | Verify address format |
UNSUPPORTED_BLOCKCHAIN | 400 | Blockchain not supported | Use supported blockchain |
INSUFFICIENT_CREDITS | 402 | Not enough credits | Purchase credits |
RATE_LIMIT_EXCEEDED | 429 | Too many requests | Implement rate limiting |
MONITORING_ALREADY_ACTIVE | 409 | Wallet already monitored | Use existing monitoring |
Next Steps
Ready to get started?
Start with our free plan. No credit card required.