SOVEREIGN DISCLOSURE PLANE / SOVEREIGN AGENT LAB
● PERSONAL RESEARCH NOTE LIVE CASE 03 · NOT AFFILIATED WITH REVOLUT LTD
LIVE CASE 03 // 14 SEP 2026NEWS EVENT 11–12 SEP 2026 THE DOMAIN WAS REAL // THE AUTHORITY WASN'THOLD = ZERO OUTBOUND PII FIVE GATES // CHANNEL → PRINCIPAL → CAPACITY → MANDATE → SCOPEAI OVERRIDE FALSE PUBLIC FACTS ≠ COMPANY STATEMENTS ≠ REPORTING ≠ INFERENCE LIVE CASE 03 // 14 SEP 2026NEWS EVENT 11–12 SEP 2026 THE DOMAIN WAS REAL // THE AUTHORITY WASN'THOLD = ZERO OUTBOUND PII FIVE GATES // CHANNEL → PRINCIPAL → CAPACITY → MANDATE → SCOPEAI OVERRIDE FALSE PUBLIC FACTS ≠ COMPANY STATEMENTS ≠ REPORTING ≠ INFERENCE
LIVE CASE 03 // 14 SEP 2026 // PERSONAL RESEARCH NOTE

THE DOMAIN WAS REAL. THE AUTHORITY WASN'T.

Revolut says fraudulent information requests arrived through a legitimate government-agency email domain and resulted in customer data being disclosed to an unauthorised third party. I used to run a bank and built an earlier version of a regulator-as-user product. This incident made me revise one of the assumptions behind it.

NEWS EVENT 11–12 SEPT 2026 PRIOR ART ARIVAL ≤2023 FIRST FIX FAILED NEW INVARIANT HOLD SHORT VERSION revolut.hot ↗
INCIDENT CONSOLE · WHAT DID NOT HAPPEN

NO EXOTIC FAILURE IS NEEDED TO EXPLAIN THIS.

A convincing piece of evidence — the channel — acquired too much operational authority before the human, current capacity, mandate and scope were fully resolved.

NEWS EVENT
11–12 SEPT 2026
a disclosure process was socially engineered
MY PRIOR ART
ARIVAL
regulator as first-class product user
MY FIRST FIX
FAILED
a provisional-minimum idea still leaked
NEW INVARIANT
HOLD
zero outbound PII until authority is complete
→ TechCrunch · 12 Sep 2026 → Reuters · 12 Sep 2026 → FBI / fake EDR class via Krebs · 2024

Public facts, company statements, secondary reporting and my inferences are kept separate below.

00

The hotline

WHAT THIS PAGE IS ACTUALLY ABOUT
I am not interested in building an infallible officer or an infallible AI. I am interested in a system where convincing evidence cannot silently become permission.
01

The earlier version I actually built

ARIVAL ≤2023

▚ WHAT WE WERE TRYING TO FIX

At Arival, I treated the regulator as a product segment rather than an external nuisance. An agency could exist as an entity, with named human representatives as sub-users. Bank-account functionality was disabled; the point was structured supervisory interaction.

  • Named regulator users rather than anonymous inbox traffic.
  • Read-only compliance views rather than endless PDF ping-pong.
  • Contextual questions around a client or transaction.
  • Session telemetry: logins, pages viewed, time spent, reports opened.
  • A product/segment owner focused on regulator requests and UX.

▚ WHAT AGED WELL — AND WHAT DID NOT

Survived: regulatory interaction is a product problem: actors, objects, states, evidence, latency and auditability all matter.

Did not survive: using the working government email as the bootstrap root of trust. A legitimate domain can be evidence about the channel without proving the current human, their capacity or their mandate.

2026 revision: Regulator-as-user → authority-as-preverified-principal, with scoped virtual views and explicit mandate objects.

MODEL CLAIM  this reading is my inference — not Revolut's published root-cause language.

02

My first fix still leaked

R002 · THE USEFUL EMBARRASSMENT
48-HOUR SELF-REVIEW · RULE KILLED, NOT QUIETLY EDITED · MODEL CLAIM

I initially allowed a “minimum dataset” before principal verification.

That sounded pragmatic: give less now, verify more later. It was also the same failure class with a smaller payload. Once an address, phone number, ID fragment or account detail leaves the bank, it is not provisional in any meaningful sense.

✕ DEAD RULE

Government-domain match → provisional minimum disclosure while identity resolves.

✓ REPLACEMENT

Government-domain match → HOLD. Preserve / prepare / escalate internally. packet_out = null until principal + capacity + mandate + scope pass.

irreversible(disclosure) → deferred_controls(disclosure) = ∅ CASE MAY BE PROVISIONAL · OUTBOUND PACKET MAY NOTWHY NO “MINIMUM DATASET”: DISCLOSURE IS IRREVERSIBLE — THE REVERSIBILITY GATE FROM LIVE CASE 02. OPEN LC02 →
A case may remain provisional. An outbound packet may not.
03

What I would ship on Monday morning

BEFORE A PLATFORM REWRITE · SPEC · PROPOSED
01

INDEPENDENT CALLBACK

Out-of-band verification via a number sourced independently of the request.

02

REQUESTER REGISTRY

Named principals + current capacity. Domain membership is insufficient.

03

HOLD

While authority resolves: preserve, prepare, restrict deletion, escalate. Release zero PII.

04

DUAL CONTROL

Second human for passports, selfies and broad transaction-history releases.

05

EVIDENCE PACKET

Canonicalise → hash → sign → timestamp → bind to rule version and mandate object.

04

The five authority gates

BEFORE IRREVERSIBLE DISCLOSURE
01

CHANNEL

Where did the message travel? Necessary evidence, never sufficient authority.

02

PRINCIPAL

Who is the named human/system? Verify independently.

03

CAPACITY

Do they currently represent the agency in the relevant role?

04

MANDATE

What lawful power applies to this case, purpose and jurisdiction?

05

SCOPE

Which subjects, fields and time range may leave?

Anything above this line may be revised.Anything below it must be assumed copied forever.
05

Runtime + tests

REFERENCE IMPLEMENTATION, NOT DEPLOYMENT CLAIM · SPEC · PROPOSED
DW-2026-09-14-0041 · STATE: HOLD
{
  "request_id": "DW-2026-09-14-0041",
  "channel_evidence": { "type": "gov_domain_email", "status": "pass", "role": "evidence_only" },
  "principal": { "name": null, "verified_out_of_band": false },
  "capacity": { "agency_id": null, "current": "unknown" },
  "mandate": { "legal_basis": null, "case_id": null, "jurisdiction": null },
  "scope": { "subjects": [], "fields": [], "time_range": null },
  "state": "HOLD",
  "packet_out": null,
  "ai_override": false
}
DATA_OUT · AUTHORISATION LAW
DATA_OUT :=
    channel_evidence.valid
AND principal.verified
AND capacity.current
AND mandate.valid
AND scope.non_empty
AND required_human_approvals.complete

if irreversible(action):
    deferred_controls(action) = ∅

HOLD.permits  = [ preserve, prepare_internal, restrict_deletion, escalate ]
HOLD.forbids  = [ release_pii, export_kyc, disclose_tx_history ]
ai_override = false
TRACE
// choose a trajectory
PASS channel_only_never_releases
PASS unknown_principal_packet_out_null
PASS stale_capacity_never_releases
PASS unresolved_mandate_never_releases
PASS empty_scope_never_releases
PASS ai_cannot_override_red_gate
PASS hold_releases_zero_pii
PASS revision_preserves_old_trace

These are reference-model assertions. They become evidence only when the same invariants are enforced and regression-tested in implementation. SPEC · PROPOSED

RECEIPT · FACT

Legitimate agency domain

Revolut confirmed fraudulent requests sent from a legitimate government-agency email domain.

RECEIPT · FACT

Data disclosure

Revolut confirmed sensitive customer information was disclosed to an unauthorised third party.

CLAIM · ATTRIBUTED

Systems + funds

Revolut said its systems and customer funds were unaffected.

REPORT · SECONDARY

Data categories

TechCrunch says identity/contact details and ID document copies were affected; selfies, statements and transaction histories may also have been included.

MODEL CLAIM

Authority plumbing

My model: channel evidence became operational permission too early. This is not Revolut's published root-cause language.

SPEC · PROPOSED

LC03

A design response derived from LC01/LC02 — not a deployed Revolut or Arival control.

06

Adversarial Compliance Lab

WEIRD PROPOSAL, DELIBERATELY · SPEC · PROPOSED

Train the control against people who know how controls get gamed.

A synthetic disclosure desk. Professional red-teamers first. Then, case-by-case and under ordinary paid contracts, people with lived experience of fraud or social engineering generating attack paths a conventional compliance exercise may never imagine: urgency theatre, false capacity cues, scope inflation, the “helpful shortcut” after a refusal. No production PII. The product is not cheap labour. The product is adversarial knowledge.

A · PROFESSIONAL RED TEAM

Baseline: security, fraud and compliance specialists.

B · LIVED EXPERIENCE

Post-conviction / post-release experts, paid normally, synthetic environment only.

C · EDUCATIONAL PILOT

Custodial setting only later, if HMPPS + ethics + security design make sense.

07

One research line, several artifacts

NOT TEN UNRELATED DEMOS
08

Revision ledger

THE PAGE EXPOSES ITS OWN SCARS
R001
Old assumptionGovernment-domain email can bootstrap requester identity.
New ruleChannel = evidence only. Principal verified independently.
Regressionchannel_only_never_releases
R002
Old assumptionMinimum dataset may leave while identity is deferred.
New ruleHOLD = zero outbound PII; packet_out = null.
Regressionunknown_principal_packet_out_null
R003
Clarification“Scope may be provisional” was too loose.
New ruleCase may be provisional; outbound packet scope is final at dispatch.
Regressionempty_scope_never_releases
09

Break the model, not the prose

THE STRONGEST RESPONSE IS A REVISION EVENT

Break the model, not the prose.

If you can design a synthetic request that crosses DATA OUT without complete principal + capacity + mandate + scope, the strongest response is not a defensive paragraph. It is a signed revision event and a new regression test.

OPEN THE SHORT NEWS VERSION ↗

Honest boundary. Personal research note by an outsider. Not affiliated with Revolut Ltd; not Revolut's root-cause language; not a description of Arival's or Revolut's current controls. Sources are public reporting and company statements, separated from my inferences throughout. Nothing on this page is legal advice.