Module 01 · Live in production

Screening that tells you why, not just how much

Sentinel scores an address or a transfer in a single call across Ethereum, Solana and Tron — sanctions and watchlist matches, mixer and bridge exposure, hop distance to a flagged cluster — and returns the evidence trail behind every point of the score.

EthereumSolanaTronp95 under 400msSOC 2 in progress
Typical response
POST /v1/screen/address
{ "chain": "ethereum", "address": "0x7a25…f3b1" }

→ 200 OK
{
  "risk_score": 71,
  "band": "elevated",
  "reasons": [
    { "code": "MIXER_PROXIMITY", "weight": 34,
      "hops": 2, "cluster": "tornado-router" },
    { "code": "HIGH_VELOCITY_FUNNEL", "weight": 22 },
    { "code": "NEW_ADDRESS", "weight": 15 }
  ],
  "sanctions": { "match": false, "lists": ["OFAC","EU","UK","UN"] },
  "evidence_url": "https://api.fin-techai.com/v1/…"
}

Every score decomposes into weighted reasons. The evidence URL resolves to the exact transfer path that produced each one, so a reviewer never has to take the number on trust.

4

lists checked per call — OFAC, EU, UK, UN, refreshed hourly

3

chains in one interface: Ethereum, Solana, Tron

<400ms

p95 for a cached address; 1.2s cold with full tracing

12mo

evidence retention on every score you were served

Figures describe the current production deployment and are restated each quarter. Ask for the latest measurement report before you cite them.

The problem

A number without a reason is not a control

Most screening vendors return a score and a colour. When a regulator or a payment partner asks why a customer was frozen, the answer has to be a chain of transfers — not a proprietary index nobody can inspect. Teams end up rebuilding the tracing work by hand in a block explorer, at the exact moment they are least able to afford it.

The second problem is coverage shape. A vendor strong on Ethereum is usually thin on Tron, which is where a large share of USDT settlement actually happens. Compliance teams paper over the gap with a second vendor, a second integration and two disagreeing scores for the same counterparty.

What teams do today
  • One vendor for EVM chains, a second for Tron, reconciled in a spreadsheet
  • Analysts re-tracing flagged addresses by hand in a block explorer
  • Alert thresholds tuned by guesswork because reason codes are not exposed
  • No stored evidence, so a review six months later starts from nothing
How Sentinel works

Ingest, cluster, explain

01

Continuous ingest

Full-node ingest on Ethereum, Solana and Tron, plus sanctions and watchlist feeds refreshed hourly. Reorg-aware: a score is stamped with the block height it was computed at, so you can tell a stale answer from a wrong one.

02

Clustering and tracing

Addresses are grouped into behavioural clusters — exchange deposit sets, mixer routers, bridge relays, funnel accounts. Tracing walks the transfer graph outward and records the hop distance and value share of each path it finds.

03

Explainable scoring

Each contributing signal carries an explicit weight. The score is the sum, not a black box, so you can reweight for your own risk appetite and see exactly what changes in your historical alert volume before you ship it.

Capabilities

What you get

Included in every plan

  • Address and transaction screening on all three chains
  • Sanctions, PEP and internal watchlist matching
  • Weighted reason codes with hop distance and value share
  • Stored evidence trail for every score, retained 12 months
  • Webhooks when a previously-cleared address deteriorates
  • Sandbox with a fixed set of known-bad fixtures for tests

Available on request

  • Custom cluster labels and an internal watchlist you control
  • Score reweighting against your own alert history
  • Case-file export formatted for your regulator
  • Deployment in your own VPC with no outbound calls
  • Batch backfill of an existing customer book
FieldTypeMeaning
risk_scoreinteger 0–100Sum of weighted reason codes. Not a probability, and not comparable across vendors.
bandstringclear · watch · elevated · high. Cut-offs are yours to configure; these are the defaults.
reasons[]arrayEvery signal that fired, with its weight, hop distance and the cluster it points at.
sanctions.matchbooleanA direct match on a screened list. Deliberately separate from the score: a sanctions hit is not a risk gradient.
as_of_blockintegerBlock height the score was computed at. Compare against your own head to detect staleness.
evidence_urlstringSigned, expiring link to the transfer paths behind the reasons.
Limits and honesty

What Sentinel will not do for you

Screening is decision support. It narrows where a human should look; it does not decide, and we will not pretend otherwise in a sales conversation.

A score is not a compliance determination. You remain the regulated party, and the decision to onboard, freeze or file is yours.
Coverage stops at the chains we ingest. An address funded through a chain we do not index looks newer and cleaner than it is — the response says so in coverage.
Clustering is inference. Labels carry a confidence value, and we would rather show you a low-confidence label with its evidence than hide the uncertainty behind a rounder number.

Screen your first address in an afternoon

Sandbox keys are issued the same day, with fixtures for the cases you actually need to test against.