Skip to content

Fast vs Full Screening Mode

Fast mode (default)

Latency: ~20ms synchronous

Checks Tier 0 (sanctions), Tier 1 (threat intelligence), and Tier 2 (entity attribution) in a single synchronous call. No heuristic analysis.

When to use:

  • Real-time deposit screening
  • API gateway address checks
  • High-volume automated screening
bash
curl -X POST https://api.cryptachain.com/v1/screen/address \
  -H "X-API-Key: $CRYPTACHAIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address": "0xd8dA...", "chain": "ethereum", "mode": "fast"}'

Full mode

Latency: Synchronous response (~20ms) + async heuristics (2-30 seconds)

Runs all fast mode checks immediately, then kicks off Tier 3 heuristic analysis in the background. Results delivered via:

  1. Polling — check GET /v1/screen/jobs/{jobId} until status: "COMPLETE"
  2. Webhook — receive a HEURISTICS_COMPLETE event at your configured URL
bash
curl -X POST https://api.cryptachain.com/v1/screen/address \
  -H "X-API-Key: $CRYPTACHAIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address": "0xd8dA...", "chain": "ethereum", "mode": "full"}'

The initial response includes heuristics_status: "PENDING" and a heuristics_job_id.

When to use:

  • Compliance officer review
  • Onboarding KYC/KYB flows
  • Regulatory reporting
  • Investigation workflows

Polling for heuristic results

typescript
const initial = await screenAddress(address, 'full');
const jobId = initial.heuristics_job_id;

// Poll every 2 seconds (max 30 seconds)
for (let i = 0; i < 15; i++) {
  await new Promise(r => setTimeout(r, 2000));
  const job = await fetch(`${BASE}/v1/screen/jobs/${jobId}`, {
    headers: { 'X-API-Key': key },
  });
  const result = await job.json();
  if (result.status === 'COMPLETE') {
    return result; // Full screening result with heuristics
  }
}
throw new Error('Heuristic analysis timed out');

Webhook handler for heuristic completion

typescript
// Express.js webhook handler
app.post('/webhooks/cryptachain', (req, res) => {
  // Verify HMAC signature first — see /webhooks/verify
  const event = req.body;

  if (event.type === 'HEURISTICS_COMPLETE') {
    const { address, chain, risk_score, flags } = event.data;
    console.log(`Heuristics complete for ${address}: score=${risk_score}`);
    // Update your database, trigger alerts, etc.
  }

  res.status(200).send('OK');
});

Comparison table

FeatureFastFull
Sanctions (OFAC, EU, UN, UK)SynchronousSynchronous
Threat intelligenceSynchronousSynchronous
Entity labelsSynchronousSynchronous
Behavioral heuristicsNot includedAsync (2-30s)
Risk score accuracyGoodBest
Credits25
Recommended forReal-time flowsCompliance review

CryptaChain API — built by CryptaCount Luxembourg S.a r.l.