PRODUCT

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.

0x… addressOFAC · UK · EUUSDT / USDC liveresult +evidencenever stored

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.

sanctionsCOMPLETEissuer freezeCOMPLETEtx integrityCOMPLETEprocessor evidenceMISSINGwallet ownershipPARTIALbehaviourCOMPLETEactor attributionNOT AVAILABLEsource of fundsNOT AVAILABLEtravel ruleMISSINGone honest status per dimension — never a single score

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.

DECISION RECEIPTinput hasha1b2…9flist snapshotsha256:2b44…coverage9 dimensionspolicyultimo-v1.1decisionREVIEWed25519signatureanyoneverifiesintegrity you can prove — not a screenshot

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.

YOUR PROCESSKYTGATE (shadow)ALLOWALLOW=REVIEWALLOWBLOCKBLOCK=REVIEWREVIEW=ALLOWBLOCKmeasure agreement and false positives before you enforce

The modules

GateCoverage
Nine coverage dimensions per decision — sanctions, issuer freeze, tx integrity, wallet ownership, processor evidence, behaviour and more — each with its own honest status. Never a single score.
GateBehaviour
Deterministic, explainable rules on the funding lifecycle: pass-through, withdrawal to a foreign wallet, structuring, wallet churn, large first deposit, shared wallets across customers.
GateReceipt
An Ed25519-signed Decision Receipt on every screening: inputs, list snapshot hashes, policy version, signals, human actions.
GateReplay
Re-run any stored decision under its recorded policy — or a candidate one — without ever re-querying a provider.
GateBacktest
Run a candidate policy over your last N days before activating it: what changes, how many cases it would open or avoid.
GateReconcile
Ledger vs processor settlement vs on-chain amount, with a tolerance you set. Mismatches open a case and fire a webhook.
GateShadow
Send your current decision alongside ours for 30 days. Agreement matrix, where we are stricter, where we are looser — before enforcement.
GateProof
Evidence pack as JSON or PDF, and a browser-side receipt verifier anyone can use without an account.
GateMonitor
Daily re-screening of past counterparties against fresh sanctions lists; SLA breaches and list staleness are surfaced, not hidden.

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.

Request early accessTry the sandboxRead the API docs