EXCHANGES & OTC

Catch the withdrawal your backend never sent.

Hira reconciles every hot-wallet movement, withdrawal and admin action against independent onchain truth — and turns any gap between intent and settlement into an accountable exception.

For centralized exchanges, OTC desks and brokerage VASPs that hold their own keys.

412,000 USDT out — no matching intent
Reconciliation Gap Watch
Hard BreachOpenSLA
Portfolio
Exchange Hot Wallets
Opened
4 Jul
LCLiam Chen23bd726f
Dormant wallet reactivated after 120 days
Suspicious Matter Escalation
Hard BreachOpenSLA
Portfolio
High Risk Wallets
Opened
4 Jul
AKAmira Khanc16f11aa
Withdrawals running 3× baseline on hot-2
Withdrawal Velocity Policy
Soft BreachOpenSLA
Portfolio
Exchange Hot Wallets
Opened
4 Jul
ECEthan Colebccb5ba6
BUILT FOR BSA · DOJ monitoring precedent, 2025 MiCA · CASP obligations MAS PSA AUSTRAC · live Jul 2026
Why now

The perimeter held. The approval path didn’t.

$505M
the OKX penalty — charging papers cite failure “to adequately use software to monitor and detect suspicious activity”
— U.S. Department of Justice, 2025
$44M
drained from CoinDCX through a compromised internal operational account — no customer wallet touched, no contract bug
— CoinDCX disclosures, Jul 2025
~59%
of 2025 onchain losses were access-control and operational failures — not code bugs
— Hacken, 2025

The penalty was for what monitoring didn’t see. The thefts went through approval paths nobody watched. Same blind spot — your own operations.

The controls

Four watches on the flow only you can see.

Deterministic policies over your own ledger and the chain — Hira monitors and flags; your desk decides.

Reconciliation gap watch

An unmatched onchain movement — surfaced in minutes, not at month-end.

An onchain movement with no matching backend event is exactly what a compromised signer looks like — the highest-severity signal in the system.

Explore the walkthrough

Large-transfer review

From threshold breach to a named reviewer — in seconds.

You author the thresholds — per asset, wallet tier and desk — and every breach arrives with a reviewer and a deadline attached.

Explore policy packs

Withdrawal velocity

Drain patterns trip at the second withdrawal, not the post-mortem.

Rate-of-change policies per wallet, asset and hour — a drain pattern breaches long before the balance goes to zero.

Explore the walkthrough

Admin action watch

A 3am role grant doesn’t wait for the morning stand-up.

Every roleGrant, rotation and pause held against policy — the role grant comes before the theft, and this is where it’s caught.

Explore the exception model

Put a name on every breach

Assigned in seconds — resolved inside a defensible window.

When a policy breaks, Hira opens an exception — severity, assignee, SLA clock — and records every state change immutably. When the examiner asks who reviewed the March 14 flag, the answer is one link, not a week of spreadsheet archaeology.

Explore the exception model

Triage like a desk, not a dumping ground

No scoring engine, no black-box alerts.

The board holds only breaches of policies you wrote — a threshold crossed, a movement unmatched, a role granted off-schedule. No vendor risk scores, no black-box typologies. Queued by SLA, so the desk works the clock, not the noise.

See how exceptions are worked
NAMED INCIDENT — ILLUSTRATIVE WALKTHROUGH

The largest theft in crypto went through the approval path.

Bybit · February 21, 2025
$1.5B

A routine cold-to-hot ETH transfer went out for signing. The signing interface had been manipulated: authorized signers approved a transaction that rewrote the wallet’s logic and redirected the funds — the largest theft in crypto’s history, through the exchange’s own approval path. Roughly $160M was laundered within 48 hours.

— Bybit disclosures; CSIS analysis, 2025
14:13:02 · Backend intent recorded — track(’transfer’, { amount: ’401346.76’, asset: ’ETH’, fromAddress: cold-vault, toAddress: hot-01 })
14:16:48 · Chain disagrees — funds settled to an address no recorded intent ever named · intent ≠ observed
14:16:49 · Critical exception opens — reconciliation policy breaches at severity critical; escalation notifies the on-call owner — minutes after settlement, inside the laundering window
Open · SLA 1h · critical

Real incident. Illustrative detection — Hira did not monitor this system.

Policy packs

Coverage that maps to the rulebooks.

One call, out of your hot path.

track() is asynchronous, fail-open and server-side — it never sits in your withdrawal path and never adds latency a customer can feel. Instrument one flow in an afternoon; start with large-transfer review on withdrawals and expand control by control.

Read the SDK docs
wallet-ops.tsstreaming
import { Hira } from '@hira/sdk';
const hira = new Hira({
  apiKey: process.env.HIRA_KEY,
});

hira.track('transfer', {
  amount: '250000.00',
  asset: 'USDT',
  fromAddress: '0x9f4…cold-vault',
  toAddress: '0x71a…hot-01',
  correlationId: 'cw_20260705_0091',
});
FAQ

Questions risk teams ask.

What does Hira actually watch?

Two feeds. Your backend emits events through one server-side track() call — payouts, transfers, mints, redemptions, reserve moves, admin actions. Hira reads the chain independently and reconciles the two, then evaluates every event against your policies: thresholds, ratios, velocity, sanctions. Anything that crosses a line opens an exception with a named owner and an SLA clock.

How is this different from Chainalysis or TRM?

Keep them — they screen counterparties against public chain data, and they’re good at it. They’re structurally blind to your own operations: an unauthorized withdrawal your backend never intended, a hot-wallet balance drifting from your ledger, a role granted at 3am — all of it looks perfectly normal on chain. Hira compares your first-party backend events against independent chain state — the gap screening tools can’t see, because they never had your intent to compare against.

Does Hira sit in our transaction path?

No — and that’s deliberate. Hira observes events and chain state out of band: it adds zero latency, never holds keys, and can’t fail closed on your flow. The SDK is fire-and-forget and fail-open — if Hira is ever unreachable, you lose visibility, not availability. Your existing systems keep deciding what moves.

Get started

Know your wallets did only what you told them to.

Deterministic controls on your own flow — reconciled against the chain, resolved on a clock.

More use cases