function Defense() {
return (
01 · WHAT IT DOES
Behavior, not just
the address.
Most tools watch the chain — not the user. We score how the
transaction was made: IP, geo, time, amount, velocity, the
merchant's history. Account compromise and insider fraud get
caught where on-chain analytics is silent.
);
}
function DefenseChainCard() {
return (
L1 + L2 + L3
Rules, models, and human review — as one chain.
Deterministic rules catch the obvious. A behavioral model scores the context. A second model writes the rationale. Disagreement escalates to an analyst, not a coin flip.
Verdict
APPROVE / REVIEW / BLOCK
);
}
function DefenseDistributionCard() {
// Bars expand to their target width once the card scrolls into view —
// an IntersectionObserver replaces the legacy animateDistBars() hook.
const ref = React.useRef(null);
const [shown, setShown] = React.useState(false);
React.useEffect(() => {
if (!ref.current) return;
const io = new IntersectionObserver((es) => {
es.forEach((e) => { if (e.isIntersecting) setShown(true); });
}, { threshold: 0.3 });
io.observe(ref.current);
return () => io.disconnect();
}, []);
const bars = [
{ tag: 'APPROVE', color: 'var(--approve)', bgTint: 'rgba(93,214,143,0.16)', pct: 86 },
{ tag: 'REVIEW', color: 'var(--review)', bgTint: 'rgba(255,181,71,0.16)', pct: 11 },
{ tag: 'BLOCK', color: 'var(--block)', bgTint: 'rgba(255,94,120,0.18)', pct: 3 },
];
return (
DECISIONS
Approve, review, block — calibrated to your risk.
Thresholds you control. Distribution you can see at a glance, sliced by client and rule.
);
}
function DefenseExplainCard() {
return (
EXPLAIN
Every block has a reason — in plain English.
Compliance reads an audit trail. The operator reads a list of causes. No black box.
BLOCK
· 92
Destination first seen 14 days ago on an unrelated tenant. IP matches a known datacenter pool. New device + high amount within 24h velocity window. Escalation recommended.
);
}