Data · AI · Mini Ledger · Rung

You don't know what you have. Or what your AI does.

Half or more of what an organisation holds has never been searched, and nobody has read the record of what the AI did with the rest. 132recon surveys both where they sit, finds what's in them completely, and puts every step on the record, without moving or copying anything.

50–80%
Of enterprise data is dark
Nothing copied
Read where it sits
Four
Places to run the same binary
Days
To a map of the whole estate
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Two doors
Start with the problem you have.

Same tools, two piles. The estate the company has always had, and the pile it started generating the day it turned AI on.

The shape of every solution
See it. Find it. Prove it. Control it.

Every engagement runs in this order. Each step is a separate binary; you use the ones the problem needs.

01

See it

Survey the whole estate where it sits. Three passes: what's there, what it is, what it contains.

Recon
02

Find it

Define what to look for, route to it, and search closed-world: every item in scope, a negative is a finding.

Seek Map · Route · Search
03

Prove it

Seal the record so any party can verify what was searched, found, decided or produced, without being given the data.

Mini Ledger · add-on
04

Control it

Run each step bounded and stateless, like a rung on a PLC ladder. The check can't be skipped. The model keeps its capability and loses its reach.

Rung · Agents · Bricks · Algorithms
everything drops to the log
Mini Ledger seals it, as an add-on
Deployment
One binary. Four places to run it.

The code is the same in all four. What changes is where it sits and who touches the network. Your data stays your data in every case.

API
A stateless call into the estate. Reads, returns, stores nothing.
Through your partner
The same deployment, hosted and run by the consultancy or MSP you already work with.
On-premises
Inside your environment. Nothing leaves it.
Air-gapped
No network at all. The binary is carried in. For estates that can't be reached from outside.
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Data · Dark data

The data youcan't see.

Mail, shares, archives, exports, the drives of people who left. It was never worth the cost of making it searchable, so nobody looked, and nobody knows what is there. Recon surveys it where it sits, three passes, nothing moved, nothing copied, and produces a map of the whole estate. In days.

50–80%
Of enterprise data is dark
Three
Independent, stateless passes
1–2%
The map, as a share of the data
Zero
Copies made
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Why anyone looks
Five things you can't say today.
Reduce reworkThe same problem solved in fifty places. The same analysis redone because nobody knew it existed.
Capture legacy knowledgeDecades of decisions, designs and contracts in drives nobody opens, and the people who knew them are leaving.
Stop paying for what you don't useStorage, backup, licences and governance on stale and duplicated data.
Know your exposurePersonal data past retention. What a request or a regulator would find first.
Find what you didn't know you hadCustomer history, research, product data. The nuggets.
Three passes
Run the one the question needs.

Each pass is a deliverable on its own. Recon 0 and 1 are fast; Recon 2 is the heavy one. Read them as what they tell you, or as the artifact each one writes.

Process view
Your estate
where it sits
Recon 0
discovery · fast
Recon 1
identification · fast
Recon 2
metadata · heavy
The map
inside your perimeter
REF-01
01
Point it at a surface
A share, an archive, a mailbox, an export. Nothing is prepared, cleaned or moved.
REF-02
02
What is there
Every directory, every file, every path. Nothing opened. Minutes.
REF-03
03
What it is
Text or a scanned image; columns and encoding. Opens just enough to know.
REF-04
04
What it contains
Descriptions, keywords, what each file is about, and a record of what was seen and what wasn't. Only where it earned it.
REF-05
05
The map is written
1–2% of the size of the data. Searchable. The originals are untouched.
MAPPED
Seen, identified, described. Ready for search.
DARK · FLAGGED
Not readable as-is. Flagged for OCR or review. Never silently skipped.
everything drops to the log
add Mini Ledger to seal it
Properties
StateStateless · each scan stands alone
ScaleBatches; series or parallel
ScopeSpecified per data type
DataNever copied or moved
Your estate
where it sits
Recon 0
discovery · fast
Recon 1
identification · fast
Recon 2
metadata · heavy
The map
inside your perimeter
REF-01
01
Surface + specification
Paths and a spec: which file types, what to check per type, how deep.
spec set per data type; changed by editing, not rebuilding
REF-02
02
Estate summary
One JSON per surface: totals, file types, age bands, owners, largest dirs.
stateless · batch · series or parallel
REF-03
03
Per-node identification
The same summary per directory and per file, with a parent, so the tree can be walked.
fast · readable / needs OCR / picture of data
REF-04
04
Per-file record
Typed blocks with line ranges and a hash reference; honesty {coverage, dark, ocr_required, source}.
~25× the compute of 0+1 · run where it earns it
REF-05
05
Map written in place
JSON, inside the perimeter. Same surface + same spec → same map.
nothing copied · nothing leaves
MAPPED
Seen, identified, described. Ready for search.
DARK · FLAGGED
Not readable as-is. Flagged for OCR or review. Never silently skipped.
{
  "surface":        "finance-share-01",
  "total_files":    12418,
  "total_dirs":     403,
  "file_types":     { "pdf": 3102, "xlsx": 2210, "docx": 1876,
                      "msg": 2937, "csv": 611, "png": 940, "other": 742 },
  "last_modified":  { "≤1y": 1.2, "1–5y": 41.7, "5–10y": 38.1, ">10y": 19.0 },
  "owners_present": 3,
  "owners_departed": 11,
  "largest_dirs":   [ "Archive/2014", "Contracts/", "Exports/legacy-crm" ]
}
Recon 0 · estate summary (one document per surface)
{
  "path":        "Contracts/2016/supplier-msa-v3.pdf",
  "file_type":   "pdf",
  "honesty":     { "coverage": 1, "dark": false,
                   "ocr_required": false, "source": "exact" },
  "blocks": [
    { "block_type": "section", "name": "Term and renewal",
      "line_start": 44, "line_end": 61,
      "refs": ["38cc…4419"],
      "content": "This Agreement renews automatically for successive
                  twelve-month periods unless either party gives…" },
    { "block_type": "table",   "name": "Schedule B, rates",
      "line_start": 118, "line_end": 140, "refs": ["cfa0…2391"] }
  ]
}
Recon 2 · one record per file · honesty states what was seen and what wasn't
everything drops to the log
add Mini Ledger to seal it
Contract
InputSurface + specification
OutputJSON map, inside the perimeter
Per filecoverage · dark · ocr_required · source
ReplaySame surface, same spec, same map
Working a large surface
Seconds on everything. Compute where it earns it.

Every scan is independent, so a large estate is worked in stages and each batch is searchable the moment it lands.

01
Recon 0 everywhere
Minutes. You know what is there and how big it is.
02
Recon 1 where it matters
You know what is readable and what is a picture.
03
Decide, with numbers in hand
Which parts of the estate deserve the expensive pass.
04
Recon 2 only on what earned it
In parallel, batch by batch. Each batch usable as it lands.
Walkthrough
The departed employee's share.

A regional finance manager left eighteen months ago. Her share is still there: twelve thousand files across four hundred directories, migrated twice, never opened. IT wants to decommission it. Legal isn't sure. Nobody can say what's in it, so nothing happens.

REF-01
Recon 0 maps the shareTwelve thousand files, four hundred directories, eleven departed owners. Half the files untouched for more than five years. Three directories hold most of the volume: an archive, a contracts folder, a legacy CRM export. Minutes.
REF-02
Recon 1 identifies what's readableNineteen hundred of the PDFs are text; nine hundred are scanned images; three hundred are mixed. The spreadsheets are profiled by column. The email files are counted. Now the size of any next step is known before it's paid for.
REF-03
Recon 2 runs on the contracts folder onlyDescriptions and keywords per file. A supplier agreement from 2016 that renews automatically. Two documents nobody knew were signed. Each record carries its own statement: seen, not dark, source exact.
REF-04
The map is written inside the perimeterNothing was copied. The share is untouched. Legal has what it needs to decide; IT has what it needs to decommission the rest.
MAPPED
Seen, identified, described. Ready for search.
or
DARK · FLAGGED
Not readable as-is. Flagged for OCR or review, never silently skipped.
Working example · coming
Recon 0 and 1 on a sample estate

The sandbox demo for this page is scheduled in the build phase. The slot is here so the page shape is final.

Request a pilot instead

Why it's built this way

  • Stateless, so a scan on one share tells you nothing you'd have to un-know about another, and the estate can be worked in any order.
  • Nothing copied, because a copy is a second thing to secure, govern, retain and explain.
  • Three passes instead of one, so the expensive work only runs where the cheap passes showed it was worth it.
  • A record per file of what was seen, so a negative later is a finding and not a gap.

What it doesn't do

  • It doesn't move, clean, load or index the data. The map is the only output.
  • It doesn't decide what to keep. That's yours, or your partner's.
  • Recon 2 describes; it doesn't search. Search is the next product.
  • The map covers the surface it was pointed at, and says so.
What you get
Discovery. Knowledge. Next steps.
Discovery

Know what's there

What exists. What's stale. What's duplicated, and which copy is current. What's not needed. What it's costing.

Knowledge

Know what's in it

Compliance exposure. Legal obligations. The nuggets. What a model can read today and what needs OCR.

Next steps

Every item goes one of three ways

Off the bill. Into the lake, only what earned it. In front of AI, what good data makes possible. The savings found fund the work.

Add Mini Ledger

A sealed map.

What was surveyed, when, and what wasn't seen, sealed so any party can verify it later without being given the data. Optional, priced separately, always available.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Data · Data GPS

The right files.The right folders.

Recon draws the map. Seek Map says what to look for, a name, a file, the content inside a file. Route takes the search to the right files and folders on that map. Search finds it, completely: every item in scope, so a negative is a finding and the same search runs the same way next quarter.

Routed
To the right files and folders
A negative
Is a finding, not a gap
Repeatable
Same spec, same result
Three
Searches, by data need
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Primitives Configured per estate. Recon, Seek Map, Route, Search, Rung and Mini Ledger are primitives that software is built around. The specification is written per client: what the search looks for, what the gate checks, what the seal covers. A company with twenty thousand people and one with five thousand will not run this the same way, and shouldn't.
Seek map · the open-world problem
Mary Doe is also mdoe@ at a company that no longer exists.

Search that only knows the defined form finds a fraction of her and reports it as all of her. Seek Map is closed-world on what it's told, the right discipline for a controlled workflow, so something has to be responsible for closing the gap on what it's told.

Dynamic

Closes the gap. Starts from the name and finds the forms she actually takes in this company's data: the old address, the initials in a spreadsheet column, the maiden name on a contract, the French spelling in Paris mail. Adds them to the definition.

Mapping · what needed searching

Deterministic

Runs the definition. Every surface, every item in scope, the same way every time, and writes what it did and didn't see. This is what lets a search sit inside a rung and be replayed.

Routing · the same result, next quarter
Route
Every file shape, one search.

Route reads the map and picks the extraction path for each shape, so the search sees the same content whether it came from a scanned page or a database row, and reaches it at the source, not in a copy.

Text PDF, document, sheet
Direct extraction. Columns and encoding from Recon 1.
Scanned PDF, image of a form
Through OCR, and listed as pending if it hasn't run, never skipped.
Mailbox, PST, archive
Through the mail parser; attachments follow their own shape.
Database, export, API
Through a query adapter. Read, not copied.
Seek map · Route · Search
What to look for. How to reach it. Find it, completely.

Read the three as what they do, or as the artifacts that cross between them.

Process view
Ask
the request
Seek map
what to look for
Route
how to reach it
Search
every item in scope
Result
one artifact
REF-01
01
A question in prose
"Every occurrence of this person across mail, shares and archives."
REF-02
02
Written as a specification
Dynamic pass closes the gap: the old address, the initials, the maiden name. Deterministic pass fixes it. Reviewed before it runs.
REF-03
03
Each file shape gets its path
Text PDF direct; scanned PDF through OCR; PST through the mail parser; database through its adapter. Reached at the source.
REF-04
04
Closed-world search
Every item in scope evaluated. What couldn't be read is listed, not skipped.
REF-05
05
One artifact
Occurrences by form, the scope statement, a hash. Ready to seal.
FOUND
Every occurrence, by form, located.
CONFIRMED ABSENT
Not in scope, and the scope was everything named.
everything drops to the log
add Mini Ledger to seal it
Properties
MatchingExact and variant · never ranked
CoverageStated per result
DataReached at the source, never copied
ReplaySame spec, same result
Ask
the request
Seek map
what to look for
Route
how to reach it
Search
every item in scope
Result
one artifact
REF-01
01
Prose → trigger
The prose is the trigger; the specification is the search.
no LLM decides scope
REF-02
02
seek map
subject · resolved forms · surfaces · depth · match · mode
match: exact | variant · no similarity, no ranking
REF-03
03
route table
file shape → extraction path; the search sees the same content either way.
text · ocr · mail · db adapters
REF-04
04
closed-world evaluation
items_in_scope == items_evaluated; not_seen listed by reason.
a negative is a finding
REF-05
05
result + scope statement
found · by_form · not_seen · statement · hash
same spec + same map → same result
FOUND
Every occurrence, by form, located.
CONFIRMED ABSENT
Not in scope, and the scope was everything named.
subject:   "Mary Doe"
resolved:  # dynamic pass closed the gap on what needed searching
  - "Mary Doe"            - "M. Doe"           - "mdoe@oldco.example"
  - "Mary Doe-Harrison"   - "MD" (sheet cols)  - "Marie Doe" (FR mail)
surfaces:  [ mail-2012-2026, finance-share-01, hr-archive, crm-export ]
depth:     complete        # every item in scope is evaluated
match:     exact | variant # no similarity, no ranking
mode:      deterministic   # same spec, same result, next quarter
Seek map · the specification after the dynamic pass
{
  "query":       "seek/mary-doe-v3",
  "scope":       { "surfaces": 4, "items_in_scope": 1948231,
                   "items_evaluated": 1948231 },
  "found":       312,
  "by_form":     { "Mary Doe": 201, "mdoe@oldco.example": 74,
                   "M. Doe": 22, "MD": 9, "Marie Doe": 6 },
  "not_seen":    { "dark": 0, "ocr_pending": 41 },
  "statement":   "Every item in scope was evaluated. 41 items are
                  scanned images pending OCR and are listed, not skipped.",
  "hash":        "b71e…09c4"
}
Search result · with its scope statement and hash
everything drops to the log
add Mini Ledger to seal it
Contract
InputSeek map + surfaces
OutputOccurrences + scope statement, hashed
Not seenListed by reason
WindowFilled from the result, not by likeness
Walkthrough
The request, with proof the whole surface was searched.

A subject access request arrives for a former customer. The last one was answered from the CRM and signed as complete. This time legal wants to know it actually is: every occurrence across fourteen years of mail, three file shares, an HR archive and a legacy CRM export, and something to show if the answer is challenged.

REF-01
The map is already thereRecon surveyed the four surfaces earlier in the quarter. Nothing needs loading. The search runs on the map and reaches the source for content.
REF-02
Seek Map closes the gapThe dynamic pass turns one name into six forms, the old address, the initials, the maiden name, the French spelling, and writes the specification. Legal reviews it before anything runs.
REF-03
Route reaches every shapeText PDFs directly; scanned PDFs through OCR; PSTs through the mail parser; the CRM export through its adapter. One search, every path.
REF-04
Search evaluates every item in scope1.9 million items. 312 occurrences, by form. 41 scanned pages pending OCR, listed, not skipped. The result carries the statement and a hash.
FOUND
312 occurrences, each located, each by form. The answer to the request.
or
CONFIRMED ABSENT
Not in scope, and the scope was everything named. A negative is a finding.
Working example · coming
A seek map, a route, a closed-world search

The sandbox demo for this page is scheduled in the build phase. The slot is here so the page shape is final.

Request a pilot instead

Why it's built this way

  • Ranked and nearest-neighbour search returns the closest matches and no account of what it skipped. It can't answer a regulator.
  • Two modes, because the world the data came from isn't closed but the search has to be.
  • The scope statement travels with the result, so "we searched everything" is a sentence with evidence behind it.
  • Deterministic, so the same request next quarter is a replay, not a project.

What it doesn't do

  • It doesn't rank. There's no "most relevant"; there's found and not found.
  • It doesn't search what wasn't mapped. The scope statement says what was.
  • It doesn't erase. Execution is a rung, run inside your perimeter under your permissions.
  • It doesn't guess at forms it wasn't shown; the dynamic pass adds them, and the spec is reviewed before it runs.
Add Mini Ledger

Chain of search.

Every query and its result, the spec, the scope statement, the occurrences, the hash, sealed as an entry. Any party can verify the search happened as stated without being given the data. Optional, priced separately, always available.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Data · Data GPS · Search at scale

Query any record.Get a guaranteedanswer.

The at-scale search. Billions to trillions of payment or transaction records, and either a confirmed hit or a mathematically guaranteed negative, in a fraction of a second, on your own infrastructure. The closed-world discipline of Data GPS at record-set scale.

Try the demo Back to Data GPS
1B–1T+
Records searchable
Instant
Fraction of a second
Guaranteed
Confirmed negative within scope
Your infra
Runs on your server
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Primitives Configured per estate. Recon, Seek Map, Route, Search, Rung and Mini Ledger are primitives that software is built around. The specification is written per client: what the search looks for, what the gate checks, what the seal covers. A company with twenty thousand people and one with five thousand will not run this the same way, and shouldn't.
The Problem
Three industries.
One core gap.

Financial institutions, fintechs, and blockchain operators all face the same challenge, they need fast, evidence-grade answers about transactions. Probabilities are not enough.

Fintech

Decisions at payment speed

Fraud and AML checks must happen before or at the moment of transaction. Slow lookups and uncertain results disrupt payment flows and erode user trust. You need a result fast enough to act on.

Finance

Audit trails require certainty

Regulators and auditors don't accept "probably not there." Dispute resolution, compliance reporting, and reconciliation all require evidence-grade results, not statistical estimates.

Blockchain

On-chain complexity at scale

Blockchain payment data is high-volume, fast-moving, and difficult to query at scale. Existing tools either can't keep up or weren't built for the demands of digital asset compliance.

How It Works
Two results. Both definitive.

Every query returns one of two outcomes, scoped to your available records. Read it as a business process or a technical spec, the guarantee is the same either way.

Process view
Your System
Initiator
132recon
Processor · runs on your server
Output
Returned to your system
REF-01
01
Send query
Wallet address, transaction reference, or amount range. From your existing system, no integration rework required.
REF-02
02
Check the records
132recon searches the records you have ingested. Runs entirely within your infrastructure. Data does not leave your environment.
HIT
Record found. Returned to your system.
CONFIRMED −
Definitively absent within ingested records.
Spec
SpeedInstant · same at any record scale
DataNever leaves your environment
Guarantee scopeIngested record set
CoveragePre & Post transaction
Your System
Query origin
Routing Table
Tier & shard selection
Sketch Engine
Countminlog lookup
Widening
Cascade on miss
Result
Typed output
REF-01
01
Query typed & dispatched
Wallet, hash, amount range, or composite. BucketHint parsed on arrival.
ErrInvalidBucketHint on bad format
REF-02
02
Routing table selects tier
BaseRate priors select shard & time window for first lookup.
Tier 1: exact · Tier 2: widen on miss
REF-03
03
Countminlog lookup
min(row₁…row₄) across hash functions. Morris counting, bounded over-estimate, never under-counts.
Zero in every row → confirmed absent
REF-04
04
Widening cascade
On miss, search relaxes in defined order until a result is found.
temporal → amount → region
HIT
Hit=record · Confirmed=false
MissProb=calculated
CONFIRMED −
Hit=nil · Confirmed=true
MissProb=0
Technical spec
AlgorithmCountMinLog sketch
ComplexityConstant time · scales without slowdown
GuaranteeNever under-counts · bounded over-estimate
Neg. resultMissProb=0 within ingested records
Use Cases
Where it fits across industries.

These are examples, not a definitive list. If your workflow involves transaction verification at any stage, there is likely a fit worth discussing.

Pre-Transaction

AML screening before settlement

Query wallet history and transaction size frequency before a payment clears. Understand whether an account appears in flagged records, fast enough to act on.

Operates at payment speed
Configurable to your authorisation flow
Returns a definitive result, not a score
Pre-Transaction

Fraud detection on wallet behaviour

Check transaction size patterns and counterparty history before processing. Identify unusual interactions within ingested records without raw data storage or transmission.

Transaction size frequency · same speed at any scale
Counterparty history within ingested records
No raw data duplication required
Post-Transaction

Payment dispute resolution

When a payment is disputed, establish definitively whether it appears in the record set. A confirmed negative within scope is a defensible, documented result.

Evidence-grade confirmed negative output
Scope clearly documented per query
Integrates into existing dispute workflows
Access Coordination

Algorithm-coordinated access

The system can coordinate permissioned access, time-limited, query-limited, or email-gated, programmatically. One example of what 132recon can manage beyond direct queries.

Time-limited or query-limited grants
No manual overhead for coordination
Configurable to your access model
Compliance

Audit-ready record verification

The confirmed negative, mathematically bounded within the ingested record set, provides a grounded, loggable result that audit teams can present as evidence.

Confirmed negative as a first-class result type
Scope of guarantee stated per query
Integrates into existing compliance reporting
Operations

Large-scale record reconciliation

Query large datasets at constant time without significant query infrastructure. Compatible with existing reconciliation workflows, deployed on your infrastructure.

O(1) queries regardless of record set size
Sub-linear space · no raw data duplication
Runs within your own environment
Risk

Counterparty verification

Verify counterparty transaction history within available records. Understand frequency patterns and amount distributions without building a separate intelligence stack.

Wallet and account frequency analysis
Amount range distribution queries
Tiered search with configurable widening
Reporting

Regulatory evidence trails

Build evidence trails that support regulatory submissions. Each result is loggable and reproducible, with a clear scope statement documenting what the guarantee covers.

Loggable, reproducible query results
Scope of guarantee documented per query
Deployable within regulated infrastructure
On-Chain Verification

Payment record search at scale

Query on-chain payment records at O(1) speed without full-node overhead. XRPL-native, with the architecture to extend to other ledger data depending on what records are ingested.

Constant-time queries over large transaction sets
No full-node requirement for record lookup
Adaptable to your ingested record set
Exchange & Custody

Exchange compliance operations

Integrate into deposit, withdrawal, and transfer screening workflows. Deployed on your infrastructure, against your ingested records, data stays within your environment.

Configurable to your screening workflows
Data sovereignty · stays in your environment
Full code transparency on agreement
Digital Assets

Asset traceability for CASPs

Crypto asset service providers need to demonstrate transaction traceability to regulators. Verifiable, scoped query results deployed in your environment, on your records.

Confirmed negative within ingested records
Data never leaves your environment
Supports traceability obligations under digital asset regulation
Protocol

DeFi protocol record integrity

Independently deployable, no third-party dependency. Query the records the protocol has access to, with bounded error guarantees on frequency analysis.

Independent deployment
Bounded error guarantees on frequency queries
Compatible with existing protocol infrastructure
Regulatory & MiCA
Built for the compliance
reality of 2026.

MiCA is in full effect. Crypto asset service providers across the EU face real obligations around transaction traceability, record keeping, and AML compliance.

The confirmed negative is scoped to the ingested record set. The strength of the guarantee grows with the coverage of the records you ingest. This is not a universal claim, it is a precise, mathematically bounded result within a defined scope. That precision is what makes it regulatorily useful.

Transaction traceability

MiCA requires CASPs to maintain and demonstrate transaction traceability. 132recon provides verifiable, scoped query results that support documented traceability processes.

AML record obligations

The confirmed negative as a first-class result provides a defensible, loggable output for AML compliance processes, not an estimate, a guarantee.

Data sovereignty

132recon runs on your server. Sensitive financial data never leaves your environment, satisfying both compliance and commercial requirements under EU data regulation.

Code transparency on agreement

Regulators increasingly require auditability of compliance systems. Code is disclosed on agreement, full transparency for compliance and legal teams.

Deployment & Access
Not plug and play.
Compatible by design.

132recon deploys to your infrastructure, configures to your record sets, and integrates into your existing workflow. Every engagement starts with a conversation.

01

Consultation

We discuss your workflow, your record sets, and the integration point. Pre-transaction, post-transaction, or audit, determined by your use case.

02

Agreement & code disclosure

On agreement, the code is disclosed. Your technical and legal teams have full visibility into what is being deployed. No black boxes.

03

Deploy to your infrastructure

132recon runs on your server. Your data stays in your environment. We support the deployment and integration process throughout.

04

Configured to your records

The system runs against the record sets you have access to. The scope of the guarantee is defined by those records and clearly documented.

Server deployable

Runs on your own infrastructure. No cloud dependency, no data transfer to third parties. Full control over your environment.

Code disclosed on agreement

Not open source, not a black box. Full auditability for compliance and technical teams who need to understand what is running.

Workflow compatible

Integrates into your existing compliance, fraud, or operations workflow. 132recon returns a result, what your system does with it is up to you.

Algorithm-coordinated access

Access can be managed programmatically, time-limited, query-limited, or scoped to specific use cases.

Scoped guarantees

Every confirmed negative is scoped to the ingested record set. The system is precise about what it can and cannot guarantee, which is what makes it useful in regulated contexts.

Working example · live
Query a record set. Get a hit or a confirmed negative.

The search-at-scale demo runs a query against an ingested record set and returns the typed result with its scope.

Open the demo
Add Mini Ledger

Chain of search, at scale.

Every query and its typed result, Hit or Confirmed Negative, with the scope of the guarantee, sealed as an entry. The existing compliance audit trail, as an add-on.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Data · Compliance

Completeness isthe requirement.

Privacy, compliance and safety don't ask what's relevant. They ask whether you found everything. Ranked and nearest-neighbour search, the kind under every AI assistant, returns the closest matches and no account of what it skipped. That cannot answer a regulator, a court or an inspector. A closed-world search over a surveyed estate can.

Every
Occurrence, across the estate
Proof
The whole surface was searched
Inside
Your perimeter, your permissions
Sealed
A record any party can verify
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Primitives Configured per estate. Recon, Seek Map, Route, Search, Rung and Mini Ledger are primitives that software is built around. The specification is written per client: what the search looks for, what the gate checks, what the seal covers. A company with twenty thousand people and one with five thousand will not run this the same way, and shouldn't.
Execution
Erasure runs inside your perimeter.

Nobody will give an external platform delete rights across the CRM, HR, billing and backups, and they shouldn't. Discovery provides the map; execution returns to you. Each system's erasure is a rung, run by the team that owns that system, under their own permissions, with a record that proves each step ran.

Find

Every occurrence

Data GPS across mail, shares, archives, backups and exports. Every form the person takes. The scope statement travels with the result.

Execute

By the system owner

One rung per system. The CRM team runs the CRM rung; HR runs theirs. Same manifest, different hands. No access granted outside.

Prove

On the record

The request, the search, each erasure, the sign-off, sealed, replayable, verifiable by a regulator who was never given the data.

Walkthrough
The erasure as six rungs.

The request from the Data GPS walkthrough, one week on. 312 occurrences across the CRM, the HR system, two file shares, a mail archive and a legacy export. Six systems, four owning teams, one deadline, and a regulator who may ask to see it done.

REF-01
The occurrences file is the inputThe search result, hashed, becomes the first state file. Nothing is re-searched; nothing is copied.
REF-02
The validation rung gates everythingRetention rules, legal holds, exclusions. Deterministic, no model, reads no model output. If it doesn't pass, no erasure rung runs.
REF-03
Six erasure rungs, four teamsEach system's owner runs their rung under their own permissions. Two shares are run by IT in one sitting; the mail archive waits for its owner. The manifest doesn't care about the order, only that each fires.
REF-04
The record sealsSix state files, six hashes, one entry each, one Merkle root. The DPO signs; the signature is the last entry. The answer to "show me" is a root, not a reassurance.
ERASED · ON THE RECORD
All six fired. Each occurrence gone from its source; each step sealed.
or
HELD
The gate didn't fire: a legal hold or a retention rule. Nothing erased, and the reason is on the record.

See the rung itself in the Rung walkthrough →

Add Mini Ledger

Chain of decision.

The request, the search, the check, each erasure and the sign-off as one sealed chain, what was decided, by whom, on what evidence. Optional, priced separately, always available.

About Mini Ledger ↗
Examples · one configuration each
How the primitives were configured for three estates.

Not the offering, the offering is the primitives. These are three examples of what a specification looked like once it was written for a client: what it discovered, what it found at risk, what it gave back. Yours will differ.

Privacy · EU rules

Every occurrence, and proof you looked everywhere.

A subject access or erasure request is a closed-world question. The AI Act and NIS2 add a second one: what did the systems do with it, and can you produce the record.

Discovery
  • Every form a person takes: name, old email, initials, maiden name, ID numbers.
  • Personal data outside the systems that were mapped for it.
  • Records past retention. Data from processes that no longer exist.
  • What the AI systems read and produced about people.
Risk
  • A request answered from a fraction and signed as complete.
  • Erasure done in the CRM, still present in six other places.
  • Records of processing that don't match what's actually there.
  • No record-keeping for AI systems when Article 12 asks.
What you get
  • The map of where personal data actually sits, nothing moved, nothing copied.
  • Every occurrence found, and the search that proves coverage.
  • Execution inside your perimeter, under your permissions, on the record.
  • A sealed record of what was searched, found, erased and produced.

First step: one request, one estate, one afternoon, a complete answer next to the one you gave last time.

Health, safety & environment

The records exist. Can you produce all of them?

Daily field records, inspection checks, permits to work, toolbox talks, incident reports, training certificates, environmental monitoring. Filed by site, by contractor, by year, in every format.

Discovery
  • Every daily record, check and permit, across sites, contractors and years.
  • Scanned forms and photos: what's a readable record and what's a picture of one.
  • Gaps: the days, sites or checks with no record at all.
  • Near-misses and observations that never became a report.
Risk
  • An incident investigation that can't find the prior checks.
  • Certifications and training expired without anyone knowing.
  • A regulator's request answered from the sites that were easy to reach.
  • Environmental monitoring records that can't be reconciled to the permit.
What you get
  • The whole safety record surveyed where it sits, no re-filing, no copying.
  • Every record for a site, a person, a piece of equipment, completely.
  • A negative is a finding: the missing check is found before the incident.
  • A sealed record that can be handed to an inspector or a court.

First step: one site or one contractor's records, one afternoon, and the gaps show themselves.

For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

AI

What is your AIactually doing?

Every model call and agent run leaves a record, prompts, responses, what was retrieved, what it cost. It is the complete account of what the AI did, and nobody has read it. Same tool, second pile: the logs are data too, read where they sit, nothing copied.

Input
Is most of the bill, not output
Re-read
The same files, every call
No receipt
A token total, no outcome
Searchable
Every output, completely
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Why anyone looks
Five things you can't say today.
Re-reading the same dataMost of the bill is the same files filled into the window on every call. The output is the remainder.
The same fix, every dayA hundred developers correcting the same thing in fifty places, because the rule isn't written anywhere the model can see.
A bill with no receiptA token total. No connection to any decision, workflow or team.
Outputs nobody can searchWhat did the model say about this customer, across every call, last quarter? Nobody can answer.
Nothing to show a regulatorWhat the AI saw and produced, when the AI Act or an auditor asks.
Four parts
Binaries, not Python. No MCP. No added attack surface.

What makes this different is what runs: the model as a Go binary that spins up, does the job and tears down, with no framework, no protocol surface and your keys never leaving your environment, and Rung, which is what those binaries run inside. Start there, then the three things it lets you see.

For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

AI · Code

You integrated AI.Now the codebase is dark.

Every AI-assisted change adds code, artifacts and generated files nobody mapped. The model has no memory of the repo, so it re-reads it on every call, and each change is harder than the last because nobody, human or model, can see the whole thing.

>99%
Of agentic coding volume is input¹
Once
Read the repo; hand the model the map
Written
The rule that lived in heads
A gate
The check the change can't skip
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Primitives Configured per estate. Recon, Seek Map, Route, Search, Rung and Mini Ledger are primitives that software is built around. The specification is written per client: what the search looks for, what the gate checks, what the seal covers. A company with twenty thousand people and one with five thousand will not run this the same way, and shouldn't.
What's in the codebase
  • Entry points, dependency roots, and what actually runs.
  • Dead code, unused exports, orphaned files.
  • Missing tests. Undocumented rules that live in people's heads.
  • Generated artifacts nobody reviewed or removed.
What the AI is doing
  • Re-reading the same files into the window on every call.
  • Making the same mistake daily because a requirement isn't written where it can see it.
  • Leaving artifacts, scaffolds, configs, notes, that become tomorrow's dark data.
  • Retrying after misses. Nobody can say which step went wrong.
Organise it so it can be used
  • Survey the repo: a map of structure, routes, references, and what's stale.
  • Define what matters, then find every instance, completely.
  • Show the model the map, not the repo. Read once, not on every call.
  • Turn the repeated fix into a written rule and a check that can't be skipped.

¹ Published analysis of agentic coding sessions: input tokens, mostly re-sent context, often exceed 99% of volume; the largest driver is context re-reading because the model has no memory between turns. Augment Code, 2026.

The map of a repository
Read the repo once.

Recon 0 and 1 on code produce the map a model should be handed instead of the repository.

Process view
Without the map

Every call, the assistant reads to find out where it is: pulls in files, follows imports, guesses at structure, re-discovers the same routes it discovered an hour ago for someone else. The reading is the bill; the fix is the remainder.

With the map

Given the map, the model reads the three files that matter instead of the three hundred that might. Given the honesty record, it knows what it wasn't shown. The cost of the call drops to the cost of the work.

With a gate

The rule that lived in fifty heads becomes a rung: a check the generated change has to pass before it moves on. The correction happens once, in the structure, instead of a hundred times by hand.

Properties
InputA repository, as it sits
OutputA map: structure, routes, references, gaps
ModelHanded the map, not the repo
DataNever copied; nothing leaves the repo host
{
  "repo":            "payments-core",
  "files":           2311,
  "entry_points":    [ "cmd/api/main.go", "cmd/worker/main.go" ],
  "dependency_roots":[ "internal/ledger", "internal/auth" ],
  "unused_exports":  57,
  "orphaned_files":  23,
  "missing_tests":   [ "internal/fx/convert.go", "internal/auth/refresh.go" ],
  "rules_in_heads":  [ "amounts are minor units; never float" ]   // ← written down for the first time
}
Recon 0 on a repository · the map a model is handed
What crosses the boundary.
In: the repository path and a specification (which languages, which directories, what counts as an entry point). Out: one map per repository, written next to it, never inside it. The same map on the same commit, every time. Design fields are not shown here and are not part of the contract.
Contract
Per repoentry points · roots · orphans · unused · missing tests
ReplaySame commit, same map
GateA rung; the change does not merge on fail
RecordThe day the fix stopped, sealed
Walkthrough
A hundred developers and the same fix.

An older deployment has a rule: amounts are integers in minor units, never floats. It isn't written anywhere a model can see. So every morning the assistant generates code with floats, every developer catches it, every developer fixes it, and the fix never propagates because the model has no memory of yesterday. Fifty areas, a hundred people, one correction, daily. Nobody sees it as one thing.

REF-01
Recon on the assistant and review logsTreated as an estate: fifty areas, one map. The same diff, in the same place, appears across a dozen teams under a dozen local names. What looked like fifty quirks is three rules nobody wrote down.
REF-02
Recon on the repositoriesThe map of each: entry points, roots, orphans, missing tests, and the rule, written down for the first time, as a property of the map.
REF-03
The rule goes in front of the modelSearch puts the constraint from the legacy deployment into the window on every call. Shown, not hoped for.
REF-04
The rule becomes a rungA check the generated change has to pass. Three rules, three rungs, applied wherever code passes through. The humans stop repeating because it's written; the model stops because it's shown and gated.
PASSED
The change met the rule. Merged, on the record.
or
DID NOT FIRE
Caught at the gate, once, in the structure, not a hundred times by hand.

Why it's built this way

  • The cost wasn't in the token bill; it was a hundred people doing the same correction. Only the logs show it.
  • The repeated fix is invisible because it's spread across fifty areas. Recon is the thing that stands where all fifty are visible.
  • A rule in a prompt is a sign on the wall. A rule as a rung is a gate.
  • The ledger shows the day the fix stopped appearing, cost-per-outcome in its plainest form.

What it doesn't do

  • It doesn't write your code or replace the assistant. It shows the assistant the map.
  • It doesn't fix the rule. It finds it, writes it down, and gates on it.
  • The map covers the repositories it was pointed at, and says so.
  • The published figure is a published figure; your number is in your logs.
Add Mini Ledger

The day the repeated fix stopped.

The rule, the gate, every pass and every stop, sealed, so the change in the logs is a fact you can show, not an estimate. Optional, priced separately, always available.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

AI · Data

The logsnobody reads.

Every model call and agent run writes JSON somewhere: prompts, responses, token counts, tool traces, which documents were pulled into the window. Huge, unstructured, and the complete record of what the AI did and what it cost. Recon treats it like a file share.

Read
Which documents, how often, by whom
Produced
Every output, searchable
Repeats
The re-reading, the retry, the same fix
Per outcome
Cost you can show, not estimate
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Primitives Configured per estate. Recon, Seek Map, Route, Search, Rung and Mini Ledger are primitives that software is built around. The specification is written per client: what the search looks for, what the gate checks, what the seal covers. A company with twenty thousand people and one with five thousand will not run this the same way, and shouldn't.
Same tool, second pile
What it did. What it cost. Why.

Recon 0 shows how much log there is and where. Recon 1 sorts it: prompt logs, tool traces, embedding runs, billing exports. Recon 2 pulls the metadata that answers the questions.

Process view
What was read

Which documents went into the window, how often, by whom, for what. Which content was embedded again and again because nobody knew it was already there.

What was produced

Every output, searchable closed-world. What the model said about this customer across every call last quarter. Every decision traceable to its step.

What repeats

The re-reading. The retry after a miss. The same fix made daily in fifty places. The step that keeps failing. Cost attached to an outcome, not to a token total.

Properties
InputThe logs, where they sit
ChangeNone to any model, tool or workflow
OutputA map of reads, outputs, repeats · by team
DataNever copied
{
  "surface":         "assistant-logs/2026-Q2",
  "calls":           418902,
  "documents_read":  9126,
  "read_gt_5x":      1311,        // the same document, six or more calls
  "top_reread":      [ "policies/retention-v7.pdf", "schemas/orders.sql" ],
  "outputs":         418902,      // every one searchable
  "repeat_outputs":  0.31,        // share matching an earlier output
  "retries":         { "after_miss": 22417 },
  "by_team":         { "support": 0.44, "finance": 0.21, "eng": 0.35 }
}
Recon on a quarter of assistant logs · illustrative fields
What crosses the boundary.
In: the log surfaces and a specification (which fields identify a document, a call, a team, an output). Out: one map per surface with reads, outputs and repeats; every output indexed for closed-world search. The re-read rate is a count, not an estimate.
Contract
Readsdocument × call × team, counted
OutputsSearchable; a negative is a finding
RepeatsRe-reads, retries, matching outputs
ReplaySame logs, same map
Walkthrough
The document embedded five times.

A support team's assistant answers policy questions. The bill has tripled in a year and the answers haven't improved. The AI lead can see tokens per day and nothing else. Nobody has opened the logs.

REF-01
Recon 0 and 1 on the logsA quarter of logs: four hundred thousand calls, nine thousand documents read. Sorted into prompt logs, retrieval traces, billing exports. Minutes.
REF-02
Recon 2 on the retrieval tracesThirteen hundred documents read more than five times each. One retention policy PDF read into the window on a third of all calls, and embedded five separate times under five filenames, because nobody knew it was already there.
REF-03
Search over the outputsWhat did the assistant tell customers about retention, across every call? A closed-world answer, with the outputs that contradicted each other listed.
REF-04
The map goes in front of the modelOne policy document, read once. The window filled from a search result, not by likeness. Next quarter's map shows the re-read rate as a number, next to last quarter's.
FOUND
The re-reading, the duplicate embeddings, the contradicting outputs. Where the bill went.
or
CONFIRMED ABSENT
"The model never saw this", as important as "it did," and just as provable.

Why it's built this way

  • The bill is mostly input, not output; nothing between calls remembers what was already read.
  • Observability tools count tokens and trace calls. They can't say what the tokens did, because outputs are text they can only query approximately.
  • Treat the outputs as an estate and every question a CFO or regulator asks becomes answerable.
  • The re-read rate is the number that shows what the map is worth.

What it doesn't do

  • It doesn't change the model, the tool or the workflow. It reads what they wrote.
  • It doesn't estimate. If it's not in the logs, it isn't in the map.
  • It doesn't watch the pipe. It reads the record after the fact, and, with Rung, as it's written.
  • The map covers the logs it was pointed at, and says so.
Add Mini Ledger

Cost per outcome you can show.

Reads, outputs and repeats sealed per period, so the change from one quarter to the next is a record, not a dashboard. Optional, priced separately, always available.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

AI · Compliance

A record youcan show.

The AI Act asks what the system saw and produced and whether you can produce the record. NIS2 asks for the audit trail. Telemetry can't answer either, because it watches the pipe and the outputs are text nobody built a way to search exactly. Read the outputs as an estate, search them closed-world, seal them, and the answer is a root, not a reassurance.

Art. 12
Record-keeping, by construction
NIS2
An audit trail the system didn't write about itself
Every
Output, searchable and complete
Verifiable
Without being given the data
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Primitives Configured per estate. Recon, Seek Map, Route, Search, Rung and Mini Ledger are primitives that software is built around. The specification is written per client: what the search looks for, what the gate checks, what the seal covers. A company with twenty thousand people and one with five thousand will not run this the same way, and shouldn't.
Discovery
  • Which AI systems exist, where their logs sit, and what they hold.
  • What each system read about people, and what it produced.
  • Decisions made or influenced by a model, and the step they came from.
  • The outputs that contradict each other, or an earlier one.
Risk
  • No record-keeping for a high-risk system when Article 12 asks.
  • An audit trail written by the system being audited.
  • "What did the model say about this person" answered by likeness, from a sample.
  • A decision nobody can trace to what the model saw.
What you get
  • Every output searchable, closed-world; a negative is a finding.
  • Each step bounded and recorded, with the model's input and output as state.
  • Chain of thought and chain of decision sealed as they happen.
  • A record any party can verify without being given the data.
Walkthrough
One customer, one quarter, every output.

A regulator asks what an insurer's claims assistant said about one policyholder over a quarter, and on what basis. The vendor dashboard shows call counts. The answer has to be every output, complete, with what the model was shown each time, and it has to hold up if challenged.

REF-01
Recon on the assistant's logsThe quarter's logs surveyed where they sit. Prompts, retrieved documents, outputs, by call.
REF-02
Seek Map for one personEvery form the policyholder takes in the logs: name, policy number, claim reference, the misspelling in one branch's notes. The spec is reviewed before it runs.
REF-03
Closed-world search over the outputsEvery call that mentioned her, every output, and for each the documents that were in the window. Two outputs contradict; both listed. The scope statement says every call in the quarter was evaluated.
REF-04
The record is the answerWith Rung, each call was already a step with its state sealed; the search result is sealed as an entry. The regulator verifies the root. The data stays inside the perimeter.
PRODUCED
Every output about one person, with its inputs, complete and sealed.
or
CONFIRMED ABSENT
The model never produced an output about her, and the scope proves it.

Why it's built this way

  • An audit trail written by the system under audit isn't one. The seal is what makes it independent.
  • Ranked search over outputs answers "probably." Regulators don't accept probably.
  • Record-keeping that's a step in the topology can't be skipped by the system it records.
  • A root can be verified by someone who was never given the data.

What it doesn't do

  • It doesn't classify your systems under the Act. It gives you the record whichever tier they're in.
  • It doesn't judge the outputs. It finds all of them.
  • It records what ran through a rung; outputs that bypassed the pipeline aren't in it, which is why nothing should.
  • It's a record, not legal advice.
Add Mini Ledger

Chain of thought. Chain of decision.

Every step of a model's reasoning and every human decision captured alongside the data that drove it, sealed as it happens, for Article 12 and for the audit. Optional, priced separately, always available.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

AI · Model primitives

Not Python.Not a wrapper.A binary.

Each agent is a Go binary. It spins up, does the job, and tears down. No state carried between runs. No MCP. No LangChain. No additional security surface. Your API keys, your model, your infrastructure. The agent is the binary. The binary is the deployment. Nothing else runs.

Stateless
Spins up, runs, tears down
No framework
No MCP, no LangChain
No protocol surface
Nothing for a connector to reach
Your keys
Nothing leaves your environment
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
Agents
Stateless. No framework. Your keys.

Typical agent frameworks bring a runtime, a dependency chain and a protocol surface into your perimeter, and pass your keys through all of it. A binary brings nothing in.

Typical agent frameworks

  • Stateful · state persists between runs, must be managed
  • Framework dependency · LangChain, LangGraph, CrewAI
  • Protocol surface · MCP, tool-calling, external connectors
  • Key exposure · API keys passed through framework layers
  • Patch burden · framework updates, dependency chains
  • A runtime to adopt · Python, an interpreter, pip, on a production box

132 agents

  • Stateless · spins up, runs, tears down. Nothing carried
  • Go binary · compiled, no runtime, no interpreter
  • No MCP, no LangChain · zero framework dependencies
  • Your keys, your model · nothing leaves your environment
  • One binary · nothing to patch, nothing to chain
  • Runs where Python can't · air-gapped, or next to a PLC

The agent is the binary. The binary is the deployment. Nothing else runs.

Three binaries
Stateful. Stateless. Router.

Two binaries put a model to work; a third routes stateless data between steps. All three are deployed stateless: nothing is kept inside the binary between calls.

The stateless agent
A single task. Data in, result out, nothing kept. One call, one boundary. This is the one that runs as a rung.
The stateful agent
A multi-step job. The state is carried in the call and handed back out, never held in the binary, so the deployment is still stateless, and the job can be resumed from its last state file.
The router
Routes stateless data between steps: which output goes to which next binary, on what condition. No queue, no broker, no server held open.
What crosses the boundary
In: a state file and your keys. Out: a state file, hashed. Nothing else: no callbacks, no connectors, no protocol a tool can reach in through.
Attack surface
What a wrapper brings into your perimeter, and what a binary doesn't.

Enterprises that won't allow a Python runtime with a hundred pip dependencies on a production box, and there are many, can deploy a single binary. The industrial side can put it next to the PLC.

Wrapper

Runtime

An interpreter and its packages, each one a version to track and a CVE to watch. On every host the agent runs on.

Wrapper

Protocol surface

MCP servers, tool endpoints, connectors: every one a listener, every one a path in. The surface grows with each tool added.

Binary

One file

Compiled Go. No runtime, no interpreter, no package manager on the box. One thing to sign, one thing to patch, one thing to carry into an air-gapped estate.

Binary

No listener

Nothing is held open. It runs, writes a state file, exits. There is no protocol for a tool to reach in through, so there is nothing to harden.

Retrieval
Search first, then the model. Replaces RAG for internal data.

Standard RAG retrieves chunks by similarity from a vector store. For internal data where you know what you have after Recon, you do not need similarity. You need completeness. Same LLM on the output side. Completely different retrieval on the input side.

Standard RAG

  • Embed documents into vector store
  • Query by similarity · approximate, top-K
  • No guarantee of completeness
  • No proof of what was searched
  • Chunks lose context and source
  • Hallucination fills the gaps

132search retrieval

  • Recon maps the data. Seek Map specifies the query
  • Closed-world search · complete, not approximate
  • Every item in scope evaluated
  • Sealed result with source per item
  • Full context preserved, not chunked
  • Gaps left blank, not estimated

For internal data you already hold, you do not need similarity search. You need to search it completely and prove you did.

SAME LLM · DIFFERENT RETRIEVAL · COMPLETE NOT APPROXIMATE · see how a question becomes a search tree →

Why this matters for Rung
The primitives are what run. Rung is what they run inside.

For AI, the fit is the data path and the decision, not the model's intelligence. A binary that holds nothing and listens on nothing is the only kind of thing that can run as a rung, because a rung is a bounded, stateless step that executes once, reads its inputs, produces its outputs, and stops. A wrapper with persistent state and an open protocol surface cannot be bounded; it can only be told to behave.

Sensitive data inside a bounded step
The data enters the rung, the computation happens, the result exits. No ambient access, no persistent memory of the data across invocations, no side channel through which the data leaks to other steps.
A decision that cannot be routed around
Many upstream rungs feed one convergence rung, where the determination happens. The control is topological, a property of the pipeline structure, not a convention someone must remember to follow.
The intelligence stays. The authority goes.
A stateful agent can choose to bypass a check because it persists and plans across time. A stateless rung executes once. You keep the agent's full capability and bound its scope of action to a single task within a single rung. The unbounded authority, the part of agentic AI that is actually dangerous, is what the rung removes.
A component with a failure rate
Because every rung records its inputs and outputs and is deterministic, you can measure what a model actually did against a requirement, as a re-runnable percentage with the failing cases preserved and localized to the step. Treat the model like any other component, set the acceptable rate by consequence, and compose independent checks to drive the system failure rate below the threshold. The same way safety engineering has handled fallible components for decades.
A model inside the ladder
Search → model rung → convergence → record.

Where the binaries sit in a pipeline. The model runs in its own lane; the gate contains no model and reads no model output.

Process view
Search
complete, not approximate
Model rung
the stateless agent
Router
stateless data between steps
Convergence
the gate · no model
Record
state file → entry
REF-01
01
The window is filled from a search result
Recon mapped it; Seek Map specified it; Search found every item in scope. The model is shown a complete result, not a likeness.
REF-02
02
One task, one boundary
The stateless agent spins up, reads the state file and your keys, does the job, writes a state file, tears down. Nothing kept.
REF-03
03
The output is routed, not broadcast
The router hands the state file to the next step on the condition the manifest names. No queue, no broker, no listener.
REF-04
04
The determination happens where it can't be bypassed
Deterministic, contains no model, reads its own inputs. Fires or doesn't. Downstream does not run on fail.
REF-05
05
Every step on the record
Each state file hashed; with Mini Ledger, the hash is the entry. The model's input and output are part of the record.
PASSED
The gate fired. Output released, each step recorded.
DID NOT FIRE
Stopped at the gate. The model ran; its authority didn't. On the record.
everything drops to the log
add Mini Ledger to seal it
Properties
ModelKept capable; denied reach
GateContains no model; reads no model output
DataEnters and exits the rung; never ambient
RecordInput and output as state
Search
complete, not approximate
Model rung
the stateless agent
Router
stateless data between steps
Convergence
the gate · no model
Record
state file → entry
REF-01
01
result.json
occurrences · scope statement · hash, the only thing that enters the window
closed-world; a negative is a finding
REF-02
02
agent-stateless
in: state file + keys · out: state file, hashed · exits
no listener · no MCP · no persistence
REF-03
03
router
manifest condition → next binary
no server held open
REF-04
04
gate: true
deterministic; inputs from state files and sensors, never from the model
downstream does not run on fail
REF-05
05
state + hash
exact value · display form · hash · signed
byte-identical on replay
PASSED
The gate fired. Output released, each step recorded.
DID NOT FIRE
Stopped at the gate. The model ran; its authority didn't. On the record.
everything drops to the log
add Mini Ledger to seal it
Contract
LayersEncryption · integrity · base validation · manifest topology
Foreign codeSatisfies none without the key
Failure rateRe-runnable; failing cases localized to the step
DeploymentAir-gapped closes the outside path
Why it matters for data workflows
A PLC for data.

Data pipelines, ETL processes, batch processing systems, algorithmic trading, and scientific computation all need the same properties: bounded steps, auditable inputs and outputs, deterministic execution, resumability after failure. Today these properties are reimplemented ad hoc in every system, with varying degrees of correctness, and the guarantees live in convention rather than structure. A pipeline built from rungs has these properties by construction. Each step is isolated. Each step's inputs and outputs are recorded. The manifest defines the workflow declaratively. Resumption after failure is a property of the execution model, not a feature bolted on afterward.

The relay and the datacenter

  • The relay is safe but cannot compute. The datacenter can compute but does not enforce the safety properties structurally.
  • The field's consensus is that you leave ladder when you need real computation. Rung refuses that trade.
  • A rung can hold exact arithmetic, a data transformation, a model evaluation, a GPU computation, and still carry the guarantees, because the safety lives in the boundary and the statelessness, not in what is inside.
  • Binaries are what make that true in practice: only a step that holds nothing and listens on nothing can be bounded.

Structural, not content

  • You can build a rung that does the wrong thing, exactly as you can program a PLC to do the wrong thing.
  • What the structure guarantees is that whatever the step does, it does it inside a boundary you can inspect, bound, replay, and reason about.
  • For foreign code to execute as a rung it must satisfy every layer, encryption, integrity, base validation, and the manifest topology, and injected code satisfies none of them without the key.
  • The code and pipeline protection is Rung's; correct deployment is the user's. An air-gapped deployment closes the remaining path.
Seven bricks
Stateless Go binaries. No runtime to adopt.

Streaming sketches, anomaly scoring and graph propagation. Each one compiled, each one independent, deployed on its own, chained into a group, or embedded in something you already run. Go 1.22+ · compiled · one, some, or all.

T-DigestAccurate percentiles and ranks on streaming data, with better tail precision than histograms. Monitoring service latencies · risk metrics (VaR) · fraud score distributions · real-time alerting on extremes
Count-Min-LogFrequency estimation for heavy hitters in streams, with logarithmic counters for range. Top-K items in logs · frequency capping in ads · anomaly spikes in transactions
Cuckoo filterSet membership with deletes, and lower false positives than Bloom for the same space. Cache invalidation · URL dedup in crawlers · campaign membership · coupon and discount validation
Isolation forestUnsupervised anomaly detection by random isolation in trees. Fast on high-dimensional data. Fraud in cards and transactions · network intrusion · outlier scoring in risk models
One-class SVMLearns a boundary around normal data and flags deviations from it. Imbalanced fraud detection · novelty detection in streams
Dynamic time warpingSimilarity between time series of different lengths and speeds. Fraud pattern matching in transaction sequences · sensor anomaly
Graph propagationPropagates a score through connected entities, so a value on one reaches the others it is linked to. Takes seed scores in and returns propagated scores out. Fraud rings · synthetic identities · collusive networks in payments

THE METHOD IS GENERAL · THE DEPLOYMENT IS NOT, what a given deployment looks like is set by the data and the question, not by the binary. These seven are the first of the full list →

The shape
Binaries, not a platform.

Each brick reads input, produces output, and exits. No server to stand up, no state carried between runs, nothing held open. The same input gives the same output every time it is run. Stateless means reproducible, the same run, on the same data, twice.

One · on its own
A single brick doing a single job, called from whatever you already run.
A group · chained
Several run in sequence, the output of one becoming the input of the next.
Integrated · embedded
Placed inside an existing pipeline as a step, taking files in and writing files out.
Read · compute · write · exit
Which is the shape of a rung. Every brick is already a rung-shaped component.
Chained · an example
One entity, one value.

An entity carries three independent descriptions: a sequence over time, a set of attributes, and a position among other entities. A method reading one has no access to the other two. Chained, each stage hands its result forward as input to the next.

01
DTWCompares the sequence against the baseline and returns a distance, how far behaviour over time has moved.
02
MergeThat distance is folded in as another attribute. Time stops being a separate verdict.
03
iForest + OCSVMScore the attributes, now carrying the distance. Two methods, fused so either can raise an entity.
04
GraphPropThe fused value seeds the graph and spreads across shared objects, reaching what an entity touches.
OUT
One value per entityCarrying time, attributes and connection, and the clusters found while propagating. A value to threshold or to track as it moves. A cluster to take as one. Not three scores to reconcile, by the time the graph runs, it is spreading a value that already carries the other two.

FOUR OF THE SEVEN · ONE ARRANGEMENT, and in a pipeline, four rungs with a state file between each.

Add Mini Ledger

The model's input and output, on the record.

Every rung a model ran in, with its state files sealed as entries. Chain of thought for Article 12; a failure rate you can show, not estimate. Optional, priced separately, always available.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Rung · PLC for data workflows

Every stepfires, or it doesn't.

A rung is one bounded, stateless step: it reads its inputs, produces its outputs, and stops. Same inputs, byte-identical outputs. A check is not a habit; it's a step the pipeline can't get past. Rung brings the execution model of a PLC ladder to data workflows, and to the models running inside them.

Bounded
Nothing reaches outside the step
Stateless
Nothing persists between runs
Exact
Replayable, byte for byte
Signed
The runtime refuses a changed program
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
The three parts
The rung. The manifest. The state file.

Read them as what they do, or as the artifacts they are.

Process view
Upstream
state files in
Validation rung
the gate
Erasure rungs
one per system
Model rung
if any
Record
sealed
REF-01
01
Inputs arrive as state files
The search result, hashed. Nothing is re-fetched.
REF-02
02
The check that can't be skipped
Deterministic. Contains no model, reads no model output. Fires or doesn't.
REF-03
03
Each owner runs their own rung
CRM by the CRM team, HR by HR. Same manifest, different hands, their permissions.
REF-04
04
A model, if one is in the pipeline
One task, one boundary, no memory, no reach. Its output is a state file like any other.
REF-05
05
Every step on the record
One state file per rung, hashed. With Mini Ledger, the hash is the entry.
PASSED
The gate fired. Downstream ran, each step recorded.
DID NOT FIRE
Stopped at the gate. Nothing downstream ran. The stop is on the record.
everything drops to the log
add Mini Ledger to seal it
Properties
DeterminismSame inputs, same outputs
ProgramSigned; refused if altered
FailureMissing or malformed → stop
RecordState-file hash is the ledger entry
Upstream
state files in
Validation rung
the gate
Erasure rungs
one per system
Model rung
if any
Record
sealed
REF-01
01
state_in
Named in the manifest; missing or malformed → stop.
fail-safe default
REF-02
02
gate: true
Downstream rungs do not run on fail. The stop is a state file too.
topology, not convention
REF-03
03
erase-* rungs
Executed under the owning team's credentials; the runtime never holds them.
signed program; refused if altered
REF-04
04
model rung
Stateless invocation; input and output as state; measurable failure rate.
capability kept, reach removed
REF-05
05
state_out + hash
exact value · display form · hash · signed.
byte-identical on replay
PASSED
The gate fired. Downstream ran, each step recorded.
DID NOT FIRE
Stopped at the gate. Nothing downstream ran. The stop is on the record.
pipeline: erasure-request-4471
rungs:
  - id: find          from: search        out: occurrences.json
  - id: validate      from: policy-check  in:  occurrences.json
                      gate: true          # pipeline halts here if not passed
  - id: erase-crm     from: crm-erase     in:  occurrences.json
  - id: erase-hris    from: hris-erase    in:  occurrences.json
  - id: record        from: seal          in:  [erase-crm, erase-hris]
Manifest excerpt · the gate is a step, not a rule
{
  "rung":     "validate",
  "input":    "occurrences.json",
  "checked":  312,
  "passed":   true,
  "value":    { "exact": "312/312", "display": "100%" },
  "hash":     "9f1c…a37e",
  "signed":   true
}
State file · one per rung, hashed and signed
everything drops to the log
add Mini Ledger to seal it
Contract
LayersEncryption · integrity · base validation · manifest topology
Foreign codeSatisfies none without the key
Model rungOne task; no persistence; no reach
DeploymentAir-gapped closes the outside path
With a model
Keeps its capability. Loses its reach.

A persistent agent with broad access has no controls, only preferences. Inside a rung the model runs once, on one task, with no memory across invocations and no path around the check downstream. It can be as clever as it likes; it has nothing to bypass it with.

The safety rung contains no model
Its logic is deterministic and its inputs come from sensors and state files, not from the model's output.
No road around it
The actuator has no path that doesn't pass through the gate. Control is topological, not a convention.
Fail-safe by default
A missing or malformed state file means stop, not proceed.
A failure rate you can measure
Because every rung is replayable, a model becomes a component with a measurable rate, and a century of safety engineering applies.
Structural, not content
Foreign code satisfies none of the layers.

For code to execute as a rung it has to satisfy every layer at once, encryption, integrity, base validation, and the manifest topology, and injected code satisfies none of them without the key. A conventional ladder offers no such barrier; implanting logic is simply editing it. What the layers guard is code entering through the pipeline; an air-gapped deployment closes the path outside it.

Encrypted

The compiled program is encrypted for distribution. Not readable, not editable, between steps.

Integrity

Signed; the runtime refuses a program that has changed by a byte.

Base validation

Each rung's values are checked against the base it declares. Out-of-base input doesn't run.

Manifest topology

Only steps named in the manifest, in the order it names, with the inputs it names. There is no other way in.

The safety is structural, not content, the same contract ladder logic has always had. You can build a rung that does the wrong thing, exactly as you can program a PLC to do the wrong thing. What the structure guarantees is that whatever the step does, it does it inside a boundary you can inspect, bound, replay and reason about. The code and pipeline protection is Rung's; correct deployment is yours.

The Rung language
A language with base math.

Rung is a working programming language with a runtime implemented in Go. It implements exact multi-base arithmetic as a built, tested system, not a proposal. This section says what it does and why, not how it is implemented.

The problem it exists for

Every modern computing system does arithmetic in base 2. This works perfectly for values that are exact in binary and fails quietly for everything else. One divided by three becomes 0.33333… with a rounding error in the last bit. Multiply that by three and you do not get one. Do it a thousand times in a loop, accumulating a running total, computing a weighted average, normalizing a score, and the error compounds. Not catastrophically. Not on any single operation. But steadily, invisibly.

The standard response is tolerance checks, rounding functions, correction factors, and the occasional unexplained +1 that nobody can remove because doing so breaks something downstream. These are not solutions. They are concessions to a representation that rounds where the math does not require it. The root cause is always the same: the number base does not fit the operation.

Why you would write in it

Rung routes each operation to the number base where it is exact. Division by three runs in base 12, where one-third is exactly 0.4, a terminating fraction with no rounding, no approximation, no error term. Bit manipulation runs in base 2. Three-state decisions run in base 3. Decimal values run in base 10, where tenths and fifths are exact.

Values cross between bases through a canonical form: an exact rational number, numerator and denominator, both arbitrary precision. The conversion is lossless. Rounding stops being something that happens on every operation and becomes a deliberate act, at output, or where a transcendental function genuinely has no exact rational form. Everywhere else the arithmetic is exact and verifiably so.

What the bases provide
Base 2

Logic

Bitwise AND, OR, XOR, NOT, shifts and masks on the native binary representation. Flags, status words, hash indices, tree structures belong here.

Base 3

Three-state decisions

A comparison returns a trit, less, equal, greater, directly usable in a three-way branch. Three-state machines encode naturally.

Base 6

The intermediate

Factors into both 2 and 3: the natural intermediate for values consumed by both binary and ternary operations. Exact senary arithmetic today; bridging operations planned.

Base 10

Decimal-native values

Tenths and fifths are exact, which suits currency, measurement, and any data that arrives in decimal form.

Base 12

Division and accumulation

One-third, one-quarter, one-sixth and one-twelfth all terminate. Any division whose denominator divides 12 is exact, most real-world division in measurement, proportion, finance and engineering.

Working example · coming
A pipeline with a gate that fires or doesn't

The sandbox demo for this page is scheduled in the build phase. The slot is here so the page shape is final.

Request a pilot instead

Three ends at once

  • It makes the arithmetic exact, by matching each operation to a base where its result terminates.
  • It controls outputs, by bounding each computation to its own base within its own rung.
  • It hardens the code: the base structure is a secondary defence that protects the program and the pipeline, intrinsic to how a rung is written rather than added afterward.

Where it applies

  • Industrial control: a divided setpoint that should be exact comes out slightly wrong, and correction code piles up to cover it.
  • Financial systems: accumulated rounding across millions of transactions produces discrepancies that require reconciliation.
  • Scientific computation: error propagation through long chains of division changes results in ways that are difficult to trace and impossible to reproduce exactly across platforms.
  • Data workflows and AI pipelines: everything else on this page.
What has been proven
Tested, measured, in the test suite.

Four head-to-head comparisons run the same computation in Rung's exact rational arithmetic and in standard IEEE 754 binary floating point.

AccumulationOne hundred additions of one-third. Float64 accumulates a drift of 4.26 × 10⁻¹⁴ from the expected value. Rung produces exactly 100/3 with zero error.
Round-tripFifty divisions by three followed by fifty multiplications by three. Float64 does not return to the original value of 1000, it deviates by 1.14 × 10⁻¹³. Rung returns to exactly 1000.
Weighted meanFifty centroid merges with a weight of one-third, simulating the core operation of a streaming quantile estimator. Rung produces the exact rational weighted mean; float64 deviates by 7.1 × 10⁻¹⁵.
The correction problemA budget of 2 minus five payments of one-third. The remaining balance should be exactly one-third. Rung computes exactly 1/3. Float64 computes 0.33333333333333365, close, but not exact, and the difference matters when the next operation compares it to a threshold.
Cross-base transportA ladder test sends a single value through four bases in one pipeline: bit extraction in base 2, exact division in base 12, ternary classification in base 3, senary accumulation in base 6, and final exact accumulation back in base 12. Zero precision loss. Three copies of one-third sum to exactly one. Two independent runs produce byte-identical state files.
Process view
In a rung

A rung declares its base. The computation inside runs in that base, exact for every value whose denominator's factors divide it. The result leaves as a state file.

Between rungs

The state file carries the exact rational value, its base, its display form, and a hash. The next rung reads the exact value, not an approximation of it, whatever base it runs in.

At output

Rounding, if any, happens once, deliberately, where a human or a display needs a decimal. Never silently in the middle of a pipeline.

Properties
ExactFor every value whose denominator divides the base
LosslessCrossing bases through the canonical rational
DeliberateRounding only at output or transcendental functions
ReplayTwo runs, byte-identical state files
{
  "rung":    "balance",
  "base":    12,
  "value":   { "exact": "1/3", "base": 12, "display": "0.4" },
  "hash":    "51ae…c0d2",
  "signed":  true
}
State file, the interface between rungs. Exact value, base, display form, hash.
What crosses the boundary.
In: state files named in the manifest. Out: one state file per rung, carrying the exact rational value, the base the rung ran in, the display form, and a hash. That is the whole interface. How the runtime computes in a base, validates it, or compiles a program is not on this page.
Contract
value.exactArbitrary-precision rational
value.base2 · 3 · 6 · 10 · 12
value.displayThe value written in that base
hashTamper-detectable; the ledger entry

What this does not claim

  • Rung does not claim novelty in the parts. Exact rational arithmetic is well-established. Multiple number bases are well-understood. Stepped execution models have existed for decades. Ladder logic predates modern computing.
  • The claim is the integration: ladder safety semantics preserved in a structured computation language that reaches modern compute, exact arithmetic, compiled bytecode, encrypted distribution, AI workflow composition, and serves general stepped workflows beyond the plant floor.

An open question, stated

  • It is a first implementation, unproven at production scale, of a gap that grows more urgent as autonomy advances.
  • In the current implementation, exactness derives from the canonical rational form that carries values between rungs. Whether computing natively in each base yields a measurable benefit beyond the rational representation is an open question the test suite is built to measure rather than assume.
Walkthrough
The check that can't be skipped.

An erasure request: one person, found in the CRM, the HR system and two archives. Each system is owned by a different team, and none of them will give an outside platform delete rights. The erasure has to run inside the perimeter, by the people who own each system, and afterwards someone has to be able to prove it ran.

REF-01
Search writes the occurrencesEvery place the person appears, from a closed-world search over the map. One state file, hashed.
REF-02
The validation rung gates the pipelinePolicy check against the occurrences: retention, holds, exclusions. It contains no model and reads no model output. If it doesn't pass, nothing below it runs.
REF-03
Each system's team runs its own erasure rungThe CRM team runs the CRM rung under their permissions; HR runs theirs. Same manifest, different hands. No external access was granted to anyone.
REF-04
The record sealsEvery state file's hash becomes a ledger entry. The request, the check, each erasure, the sign-off, replayable, and verifiable by a regulator who was never given the data.
PASSED
The gate fired. Downstream rungs ran, each on the record.
or
DID NOT FIRE
The pipeline stopped at the gate. Nothing downstream ran. The stop is on the record too.

Why it's built this way

  • Telling a model to be safe is a sign on the wall. A light curtain doesn't care what the operator intends.
  • Statelessness is what removes the ability to plan around a check; the model has no yesterday.
  • Exact, replayable state files are what make a failure rate a fact instead of an estimate.
  • A signed program is the difference between an interlock and a suggestion.

What it doesn't do

  • It doesn't make a model correct. It bounds what an incorrect one can do.
  • It doesn't hold data. State files carry values and hashes, not the estate.
  • It can't protect an actuator that has another path. Don't build a road around it.
  • If the signing key or the host is compromised, so is the guarantee, as with any signed system.
Rung + Mini Ledger

The state-file hash is the entry.

Every rung seals itself. The Merkle root covers the pipeline. Chain of search, chain of decision, chain of thought stop being descriptions and become what a pipeline produces by running.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Algorithms · bricks

Bricks.Deployable today.

Stateless Go binaries. Each one reads input, computes, writes output, and exits. No server to stand up, no state carried between runs, nothing held open. The same input gives the same output every time it is run. Each one independent, deployed on its own, chained into a workflow, or embedded in something you already run. One, some, or all.

Go
Compiled · no runtime to adopt
<10 MB
Static binaries, edge-deployable
Pipe-friendly
JSON lines in, JSON lines out
Mergeable
Across shards, regions, carriers
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
The list
The method is general. The deployment is not.

What a given deployment looks like is set by the data and the question, not by the binary. Every method below is deployable today as a Go binary. Most are modernised variants of the published method, streaming, mergeable, drift-aware, or with operations the original lacked. Each will have its own page.

Finance · fraud · risk
Improved t-digestCompact sketch for accurate percentiles and ranks on streaming data, with better tail precision than histograms. Monitoring service latencies · risk metrics (VaR) · fraud score distributions · real-time alerting on extremesDeployable
Count-Min-Log / Count SketchProbabilistic frequency estimation for heavy hitters in streams, with logarithmic counters for better range. Top-K items in logs · frequency capping in ads · anomaly spikes in transactionsDeployable
Cuckoo filterProbabilistic set membership with support for deletes; lower false positives than Bloom for the same space. Cache invalidation checks · URL dedup in crawlers · campaign membership · coupon and discount validationDeployable
Graph-based fraud propagationPropagates fraud risk through connected entities, accounts, merchants, devices, by label propagation or loopy belief on transaction graphs. Fraud rings · synthetic identities · collusive networks in paymentsDeployable
Isolation forestUnsupervised anomaly detection by random isolation in trees. Fast on high-dimensional data. Fraud in cards and transactions · network intrusion · outlier scoring in risk modelsDeployable
One-class SVMLearns a boundary around normal data and flags deviations from it. Imbalanced fraud detection · novelty detection in streamsDeployable
Dynamic time warpingMeasures similarity between time series of different lengths and speeds, with fast approximation. Fraud pattern matching in transaction sequences · sensor anomalyDeployable
Quant finance · trading
Kalman filter variantsRecursive state estimation for noisy signals, unscented and ensemble variants. Smoothing prices and volatility · sensor fusion in HFTDeployable
Particle filter / Sequential Monte CarloNon-linear, non-Gaussian state estimation via sampling. Options pricing · volatility modellingDeployable
Order statistic treeAugments a balanced tree with order statistics: k-th smallest, rank queries. Streaming order-book analytics · percentile trackingDeployable
Recommendation · personalisation
HNSWGraph-based approximate nearest neighbour for high-dimensional vector similarity, concurrent. Semantic search · recommendation · image and NLP similarityDeployable
Product quantization + IVFCompressed vectors with an inverted file for billion-scale search. Scalable recommendation · image searchDeployable
Locality-sensitive hashingHashing families for approximate similarity in high dimensions. Near-duplicate detection · collaborative filteringDeployable
Geospatial · routing
R-treeSpatial index for range and nearest-neighbour queries; concurrent, bulk-loaded. Location services · GIS queriesDeployable
VP-tree / BK-treeTrees for exact or approximate nearest neighbour in custom metric spaces. Geospatial and non-Euclidean distancesDeployable
Contraction hierarchies / ALTPreprocessed speed-up for shortest paths; A* with landmarks. Fast routing in road networksDeployable
Fortune's VoronoiSweep-line computation of the Voronoi diagram for a set of sites. Territory optimisation · coverage planningDeployable
Bioinformatics · chem
FM-index + Burrows-WheelerCompressed full-text index for sequences. Genome search · read alignmentDeployable
Suffix automatonMinimal automaton accepting all substrings of a sequence. Sequence queries · compressionDeployable
Needleman-Wunsch / Smith-WatermanOptimal global and local sequence alignment, accelerated. DNA and protein alignmentDeployable
Advanced graph · matching
Edmonds' BlossomMaximum matching in non-bipartite graphs. Assignment · ride-sharing pairingDeployable
Link-cut treesDynamic trees with path queries. Network reliability · dynamic MSTDeployable
Minimum arborescenceMinimum spanning tree in directed graphs (Chu-Liu / Edmonds). Dependency resolution · broadcastDeployable
Misc · niche
Wave function collapseConstraint-based procedural generation. Level design · synthetic data · layoutsDeployable
Marching cubes3D surface reconstruction from volume data, optimised. Medical imaging · geospatial visualisationDeployable
Streaming · missing in Go
KLL / DDSketch / REQCompact, mergeable quantile sketch with tighter relative-error guarantees than t-digest in many cases; excellent for distributed aggregation and tail accuracy. 99.99th percentile latency, risk scores and fraud amounts across shards · distributed VaR/CVaR · exact tail monitoring without storing raw dataDeployable
Robust random cut forestStreaming ensemble of random trees with point removal, robustness to outliers, and natural concept-drift handling. Real-time fraud scoring on multivariate transaction streams · outlier detection in risk features · network anomalyDeployable
Frequent directionsDeterministic fixed-memory low-rank approximation of a streaming matrix, online SVD/PCA. Sketch once, query forever. Real-time dimensionality reduction on fraud feature vectors · streaming covariance for portfolio risk · log and telemetry compressionDeployable
Streaming graph sketchingCount-Min and reservoir hybrids that summarise edge streams, triangle counts, dense subgraphs, spectral properties, without materialising the graph. Fraud-ring and collusion detection in transaction-account-device graphs · botnet and synthetic-identity detection via triangle-density spikesDeployable
ADWIN and drift detectorsParameter-free adaptive window that detects distribution shifts with statistical guarantees; can wrap any sketch or model. Auto-flagging fraud pattern evolution · market regime changes · triggering retraining or alerts in production pipelinesDeployable
BOCPD / streaming PELTBayesian online change-point detection: probabilistic detection of abrupt changes in time-series parameters with full posterior updates. Shifts in fraud velocity · VaR spikes · transaction-behaviour changes without labelsDeployable
Theta sketchMergeable set cardinality with intersection. Unique fraudster and device counting across partitionsDeployable
Entropy / frequency-moment sketchesMergeable entropy and frequency-moment estimation on streams. Anomaly spike detection in logs and transactionsDeployable
Supply chain · delivery
Mergeable ETA quantile sketchesStreaming, mergeable sketches for accurate percentiles on delivery, lead and transit times, with tight tail error; merge across regions or shards. Probabilistic ETAs · carrier performance tails · extreme-delay alerts without storing every GPS pingDeployable
Top-K with decayHeavy-hitter detection on streaming events with logarithmic counters and decay for recency. Sudden demand spikes · frequent delay culprits · inventory whales · promo abuse and bid collusionDeployable
Cuckoo / quotient filters for logistics streamsSet membership with deletes for unique shipments, pallets or devices without full dedup tables. Deduplicating GPS pings and order events · double-billing prevention · cache invalidation for dynamic routingDeployable
RRCF / extended iForest for streaming anomalyOnline, drift-resistant ensemble for multivariate anomalies with point removal. Abnormal deliveries and route detours · inventory outliers · cold-chain sensor drift · fake proofs of deliveryDeployable
ADWIN / BOCPD for demand and delay regimesAdaptive windowing or Bayesian change-point detection to flag distribution shifts automatically. Demand regime changes · carrier reliability shifts · port delays propagatingDeployable
HLL++ / Theta cardinality with intersectionMergeable unique counting with set operations. Unique active SKUs and customers per region · delayed shipments across carriers · bottleneck detectionDeployable
Frequent directions for shipment vectorsOnline low-rank approximation for high-dimensional shipment features. Dimensionality reduction before clustering · covariance tracking for correlated delaysDeployable
Tracking · routing · tariff
Labeled cuckoo filterCuckoo filter extended with per-fingerprint labels, country tags, and delete support. O(1) membership plus a compliance query. Real-time tariff-avoidance checks on every GPS ping · compliant vs non-compliant shipment dedup · "Canada-bound shipments that routed via the USA"Deployable
Streaming trajectory anomalyRobust random cut forest with approximate dynamic time warping on GPS tracks, aware of country constraints. Deviation into a forbidden country in under 50 ms · theft via route anomaly · similar deviant tracksDeployable
Constrained graph sketchHigher-order Count-Min sketch preserving dense subgraphs and country-border edges in constant memory. A carrier network suddenly routing through forbidden legs · collusion and synthetic routes · tariff-risk hotspotsDeployable
Geospatial quantile sketch with constraintsKLL or t-digest that aggregates compliant paths only; merges across regions. Probabilistic ETA without forbidden transit · tail risk for tariff-delay spikes · routing feedback loopDeployable
ADWIN / BOCPD for tariff regime shiftsChange-point detection wrapped around route and cost streams. Sudden tariff-rule changes · carrier behaviour shifts · proactive routing updatesDeployable
Frequent directions for route embeddingsOnline low-rank approximation of route vectors: origin, destination, countries crossed, cost, time. Similar-route search · routing pre-filter at scale · tariff-exposure forecastingDeployable
Combined into workflows
Any brick is a step. Any step is a rung.

Several run in sequence, the output of one becoming the input of the next, a state file between each, hashed, and the record sealed. An entity carries three independent descriptions: a sequence over time, a set of attributes, and a position among other entities. A method reading one has no access to the other two. Chained, each stage hands its result forward.

01
DTWCompares the sequence against the baseline and returns a distance, how far behaviour over time has moved.
02
MergeThat distance is folded in as another attribute. Time stops being a separate verdict.
03
iForest + OCSVMScore the attributes, now carrying the distance. Two methods, fused so either can raise an entity.
04
GraphPropThe fused value seeds the graph and spreads across shared objects, reaching what an entity touches.
OUT
One value per entityCarrying time, attributes and connection, and the clusters found while propagating. Not three scores to reconcile, by the time the graph runs, it is spreading a value that already carries the other two.

What crosses the boundary

  • JSON lines in, JSON lines out. Flags for the method's parameters. Exit codes.
  • Static binaries, deployable to edge devices, sidecars, or an existing pipeline as a step.
  • Pipe-friendly: feed | filter | score | route
  • Mergeable where the method allows it, across shards, regions, carriers.

In a pipeline

  • Each brick is a rung: bounded, stateless, fires or doesn't.
  • A state file between each, hashed; with Mini Ledger, the hash is the entry.
  • The manifest names the steps and the order; a check is a step that must pass.
  • The same run, on the same data, twice, byte-identical.
Your business might need these

One brick. One stream. One afternoon.

Pick the brick the question needs. Run it where the data sits, a stream, a log, a table, an event feed, and read the output. When one isn't enough, chain them into a workflow, each step on the record. No platform, no vendor lock, nothing that phones home.

Request a free pilot →
Data service providers · startups · service providers

Build on it. Join our network.

The primitives are a foundation to build on, not a platform to depend on, no runtime to adopt, nothing that phones home, nothing of ours in your product's path. Deploy them under your name, for your clients, on their infrastructure or yours. The kit: the binaries under keys, the deployment guides, the price sheet, the paper. Referral, then reseller, then embedded.

Join our network →
Add Mini Ledger

Every step's output, sealed.

A workflow of bricks with a state file between each becomes a chain of entries. What ran, in what order, on what input, with what result, verifiable without the data. Optional, priced separately, always available.

About Mini Ledger ↗
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Mini Ledger · self-deployed on your infrastructure

Prove whathappened.

Mini Ledger produces what a blockchain produces, immutable records, Merkle proofs, chain of custody, from a single binary and one JSON file, on your server. No coin, no node, no gas. Any party can verify any record without being given the data. It's the add-on to every Data and AI solution, and a product on its own.

Try the demo Full technical page ↗
Off-chain
Private by design
Coin-less
No speculation, no gas
Node-less
Your infrastructure
One JSON
Config file, two fixed fields
On every page Nothing saved. Nothing duplicated. Every product reads the data where it sits and holds nothing. The only output is a map or a record, written inside your perimeter. The originals stay the only originals.
How it works
From entry to proof.

Every record follows the same path, submitted, bundled, sealed, linked. The Merkle root is the proof. The chain link is the continuity.

Process view
REF-01

Submit a record

Any data, a transaction, a decision, a search result, a rung's state file. Your system sends it to Mini Ledger.

REF-02

MemoEntry created

Timestamped, hashed, added to the pending block. Accumulates until the trigger fires.

REF-03

Block sealed

By time or by count. Merkle root computed, block linked to the previous one via the genesis chain.

REF-04

Proof

Any party verifies any record from the root, without the data. Optionally anchored to a public chain.

Properties
TriggerTime-based or count-based
ProofMerkle root per block
ResilienceStop · reconfigure · restart · chain unbroken
ModesSequential · stateless · multi-chain · rollup
{
  "chain":     "erasure-4471",
  "block":     118,
  "entry":     { "ts": "2026-09-12T14:03:22Z",
                 "type": "rung.state",
                 "hash": "9f1c…a37e",          // the rung's state-file hash
                 "payload": "encrypted"  },   // AES-256 at rest
  "merkle_root":"e4b0…77d1",
  "prev_block": "c2a9…5f10",
  "anchor":    { "chain": "xrpl", "mode": "public", "tx": "A93F…" }
}
A sealed entry · the rung's state-file hash is the entry
What crosses the boundary.
In: a typed record, validated against the JSON config schema. Out: a MemoEntry with timestamp, hash, type and payload; a MemoBlock sealed by its Merkle root and linked to the previous block; optionally, an anchor transaction on the chain you name. Encrypted at rest. Pruned blocks resubmittable.
Contract
FixedBlock trigger · chain name
YoursEverything else in the JSON
EncryptionAES-256 at rest
VerifyRoot + proof; the data is never required
Working example · live
Mint blocks, seal them, verify a record.

The Mini Ledger demo runs the primitive in the browser: submit entries, watch the block trigger fire, compute the root, verify without the data.

Open the demo
Deploy it where you need it
Five options. Same binary.

The first four are about where the ledger sits. The fifth is about who else can verify it. "No gas" is true of the ledger; an anchor is a small, scheduled cost you choose, on a chain you choose.

API
Your systems submit records to a ledger you run. Nothing of ours in the path.
On-premises
Inside your environment. The private ledger stands on its own.
Through a provider
Run by the MSP or partner you already work with, under their name, on their site or yours.
Air-gapped
No network. The binary is carried in. Anchors, if any, are carried out.
Anchored to any chain
The Merkle root of a block written to XRPL, Ethereum, or whatever chain you already run, on your schedule. Public, so anyone can verify the root; or encrypted, so only the parties holding the key can, while the chain still holds the proof of time. Chain-agnostic: a primitive that writes a hash anchors to any chain that accepts one. The data never goes anywhere; a hash does.
What it's for
Settlements. Contracts. On-chain data.

Four cases, each a walkthrough in the build. Told as the situation, the steps, and the two outcomes, sealed, or rejected.

Use case

Data settlements

Two parties agree what the record was at a point in time. The anchored root is the thing neither can later dispute, without either seeing the other's data.

Sequential chain · public or encrypted anchor
Use case

Payment settlements

The private ledger holds the transactions; the public anchor proves the batch existed and hasn't changed. Pairs with search at scale for Hit / Confirmed Negative on the same records.

MemoLedger · chain of search
Use case

Contracts

Obligations, amendments and sign-offs sealed as they happen, with a timestamp that survives either party's systems. Chain of decision for the approvals.

Sequential chain · four-eyes compatible
Use case

On-chain data management

Mini Ledger as the system of record for what lives on a chain: tokens, credentials, instruments, assets, loyalty points. The chain carries the anchor or the asset; the ledger carries the full, sealed record inside your perimeter. Contained by architecture, not by policy.

Multi-chain · rollup · stateless credentials
As the add-on
Three chains, one primitive.

Every Data and AI page ends with "Add Mini Ledger." This is what the seal gives each of them.

Chain of search

Every query and its result

The spec, the scope statement, the occurrences, the hash, or, at scale, Hit / Confirmed Negative with the scope of the guarantee. Proves which checks ran, when, and what they returned.

Chain of decision

Who decided, on what

Human decisions captured alongside the data that drove them. The request, the check, each erasure, the sign-off. Approver and timestamp immutable.

Chain of thought

What the model did, step by step

Every rung a model ran in, with its input and output as state, sealed as it happened. Record-keeping for Article 12 that the system under audit didn't write about itself.

Rung + Mini Ledger

The state-file hash is the entry.

Every rung seals itself. The Merkle root covers the pipeline. That's why the add-on is one line on every page: it's already the shape of the work.

About Rung ↗
Supported through
XRPL Commons · Aquarium, Paris.

This started as Aagentix, a multi-agent system. As we ran into multiple issues and solved them, 132recon evolved from that effort: Mini Ledger, the primitives for agents, stateful and stateless agent deployments as a stateless spun-up architecture. Then understanding how to search AI records, chain-of-thought tracking and output tracking, had to be solved, and that became the foundations for 132recon. The work ran through XRPL Commons' Aquarium AI cohort 6 (April–July 2025) and the Aquarium alumni cohort (July–September 2026). Mini Ledger's anchor was first built and proven in the XRPL ecosystem; the anchor itself is chain-agnostic.

XRPL Commons · Aquarium · Paris
For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

About

A Canadiancompany.

132recon is part of 132 ENG Inc., a Canadian company. We deploy in the EU and the US as required. The data never goes anywhere; only the binary crosses a border.

Where we sit

Canadian by default, which reads as neither American nor Chinese in a sovereignty conversation and carries an EU adequacy decision. A local entity in the EU or the US where a market requires one. The product doesn't change; the letterhead does.

How we work

Solution provider, not a platform. The binaries run on your infrastructure or your partner's; nothing is hosted by us and nothing of yours is held by us. Internals are disclosed on agreement, to your technical and legal teams.

Where it came from

This started as Aagentix, a multi-agent system. Solving the problems that surfaced. Mini Ledger, the primitives for agents, stateless spun-up deployments, and then how to search AI records, chain of thought and outputs, became the foundations of 132recon. Supported through XRPL Commons' Aquarium programme in Paris: AI cohort 6 (2025) and the alumni cohort (2026). Further certifications will be listed here as they are granted.

Contact

All conversations are confidential · No commitment required · We respond within one business day

For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.

Documentation

The boundary,documented.

Four entrances for four readers. Every document has the same shape, purpose, contract, invariants, artifacts, non-goals, change log, so a reader who has understood one can read all of them, and the non-goals section of each is where the internals are explicitly excluded. What crosses the boundary and what you can rely on. Internals are disclosed on agreement.

Deploy it
For the partner engineer and client IT.
Deployment guides. one per perimeter, API · through a provider · on-premises · air-gapped, and the anchoring guide for Mini LedgerPlanned
Requirements. one binary, no runtime to adopt; what it needs access to and what it never touchesPlanned
Keys and licensing. how deployments are keyed, how keys expire and renew, what the runtime refusesPlanned
Verify a deployment. how to confirm the binary you're running is the one you were givenPlanned
Versioning and change log. which binary versions exist, what changed, what is compatible with whatPlanned
Use it
For the person running a survey, writing a seek map, building a pipeline.
Recon · input and output contracts. surface + specification in; estate summary, per-node identification, per-file record with honesty fields outPlanned
Seek map and search · contracts. the specification fields; the result with its scope statement; what "not seen" lists and whyPlanned
Configuration surface. per data type, per file type; what is fixed; what changes by editing the specification rather than the binaryPlanned
Rung · manifest and state-file reference. fields, not internals: rung ids, gates, inputs and outputs; value {exact, base, display}, hashPlanned
Bricks · per-brick CLI contract. stdin → stdout, flags, exit codes, merge behaviour, for every deployable brickPlanned
Reproducible examples. every walkthrough on this site as a runnable example against a synthetic estate: the files, the spec, the command, the expected output with its hashPlanned
The two-outcomes reference. every outcome pair on the site, mapped / dark-flagged, found / confirmed absent, passed / did not fire, sealed / rejected, what each means and what the artifact looks likePlanned
Failure behaviour. a file that can't be opened, a missing state file, an expired key, a failed anchor, a rung that doesn't fire, and what the record shows afterwardsPlanned
Trust it
For the DPO, the security reviewer, the auditor, the regulator.
Security pack. architecture on a page; the "nothing saved, nothing duplicated" statement in a form that can be filed; attestations as obtainedPlanned
Properties and guarantees. statelessness, determinism, coverage statements, the scope of every guarantee, failure behaviourPlanned
How to verify a record. a regulator-facing guide: verifying a Mini Ledger record from a root without being given the dataPlanned
Compliance map. which artifact answers which article: a DSAR to the search result and its scope statement; erasure to the rung record; AI Act Article 12 to chain of thought; NIS2 to the sealed logPlanned
What is not documented. internals, how a pass works, how the search proves coverage, how the runtime validates a program, are disclosed on agreement to a client's technical and legal teams, and whyPlanned
Support and response. how issues are raised, what one business day covers, how a pilot is scopedPlanned
Build on it
For the startup and the service provider.
What the primitives are and aren't. a foundation to build on, not a platform to depend on; what composes with whatPlanned
A product built on them. what it looks like; what is yours and what is ours; nothing of ours in your product's pathPlanned
The partner kit. the binaries under keys, the guides, the price sheet, the paper; referral → reseller → embeddedPlanned
Glossary. Recon 0/1/2, seek map, route, closed world, honesty record, rung, manifest, state file, MemoEntry, root, anchor, the four deployments, one line each, the same line everywhere on the sitePlanned

ORDER · Deploy it and Trust it first, what a partner's first engagement runs on and what a DPO reads before anyone else is allowed to. Use it second, driven by the first pilot. Build on it last, when there's a startup asking for it. Every page carries its version and date. French per document, as partners need it.

For partners
Join our network

Consultancies, MSPs and cloud resellers. The binaries under keys, the kit, and a route into your own accounts.

For customers
Request a free pilot

One share, one archive, one mailbox or one set of AI logs. One afternoon, inside your perimeter.

Mini Ledger
Ask about anchoring to your chain

Self-deployed, on your infrastructure. A private ledger you run, anchored to any chain you choose, public or encrypted. Data settlements, payment settlements, contracts.