One gate for every crypto funding decision
KYTGate sits between your crypto processor and your ledger. Every deposit, every withdrawal request and every wallet a client registers passes through the same pipeline: screen against public sources, decide under a versioned policy, keep signed evidence. What follows is what each step actually does — no more, no less.
Screen — public sources first, honestly labelled
Sanctions matching runs against OFAC, UK OFSI and the EU consolidated list, refreshed daily and content-hashed so every decision records exactly which snapshot it saw. Stablecoin issuer freezes are read live from the Tether and Circle contracts on six chains. Transaction integrity checks that a hash exists, succeeded, is confirmed and carries a canonical USDT/USDC transfer — and resolves the real sender. Ten networks are covered for sanctions, all EVM chains for integrity.
Each check reports its own status. "No known match" is not "clean", and a dimension we cannot cover says NOT_AVAILABLE instead of pretending. Commercial attribution (mixer exposure, cluster labels) is a coverage dimension that stays MISSING until a provider fills it — we do not fabricate it.
Decide — a policy you can read, version and roll back
Decisions are one of four: ALLOW, REVIEW, BLOCK_PENDING_MLRO or TECHNICAL_HOLD. There is no automatic reject — funds are never bounced by software. The policy is plain JSON, every change is a new immutable version, and guardrails refuse a policy that would allow a sanctioned address or default to ALLOW. Backtest a candidate over your own history before you activate it.
Anything that is not ALLOW opens a case with an append-only timeline, assignment, document requests and four-eyes closure for blocks — two different people, verified by login, not a free-text name.
Behaviour — the data only a broker has
On-chain data cannot tell you that a client deposited, traded nothing, and asked to withdraw to a different wallet 20 hours later. Your ledger can. KYTGate takes deposits, withdrawal requests and trading summaries as events and runs deterministic rules on the lifecycle. Thresholds are per tenant and every fired rule states the numbers it saw, so a reviewer can disagree with it.
Prove — evidence that survives the question "why?"
Every decision carries a signed receipt. Months later you can replay it under the exact policy version and list snapshots that applied, export it as a PDF evidence pack, or hand the receipt to an auditor who verifies the signature in their browser without trusting us.
Onboarding — shadow before enforcement
New tenants run in shadow mode: you keep deciding, we decide in parallel, and the console shows where the two disagree and why. Enforcement is switched on only when you have seen the false-positive rate on your own traffic.
The modules
Two surfaces, one brain
Everything above is reachable from a REST API with an OpenAPI description and a free sandbox, and from a console your compliance team uses for cases, wallets, reconciliation, policy and users. Signed webhooks push screening results, case events, SLA breaches and reconciliation mismatches into your own systems.