Local View Global View

_____________________

If Tx-Rails were a five-part concept, this is how I would put it.

  1. Kademlia – ADNS: Distributed Hash Tables, minimal need for DNS

  2. Local View – A –
    Integration Modes A; B; C; D: Core Mechanisms: From Underlay to Substrate

  3. Mode Status What customer does Metadata fidelity Use case
    A. Hash-only Built, live Commit path publishes a signed hash of each transaction; nothing else Identity/location + cryptographic-commitment + BFT/discriminator fields only, of 33 — no content, no amounts, ever, by construction Every customer scenario today; the only fully packaged, customer-adoptable mode
    B. CDC observation Deployed in our own estate and committing through consensus — reference implementation, not a packaged product Real Postgres logical replication (pglogrepl, no Debezium/Kafka needed); nothing in the app Adds CRUD intent directly from the WAL operation; coarse per-customer service-account attribution, not per-user — audit-column mapping back to real identity remains unbuilt Frozen-vendor systems — the tooling is real; no customer has been onboarded through it yet
    C. Gateway-mediated Deployed in our own estate and committing through consensus — reference implementation, not a packaged product Routes API traffic through a real inline reverse proxy (edge-gateway); app unchanged Derives semantic intent from an explicit per-customer route config (method + path), not HTTP inference; attribution via org-gateway’s existing JWT verification, forwarded through unchanged Clean single API edge — the only one of the three that’s genuinely preventative (fail-closed); no customer has been onboarded through it yet
    D. SDK / atomic dual-write Deployed in our own estate and committing through consensus — reference implementation, not a packaged SDK Calls tx-rails alongside its own DB write, via a reference outbox-relay a customer’s own team adapts Carries the full 33/33, with explicit semantic intent — real now, not a sketch Very-high-value flows needing explicit REVERSAL / CORRECTION / RESTATEMENT tagging — the tagging is real; no customer has been onboarded through it yet

    Local View – A2 –
    Your Mode sets a ceiling on which coordination Levels you can use

    The Modes and the coordination Levels are usually described separately, which hides a dependency between them that decides what a customer can actually buy. Level 1 is the registry: who is a member of a sector, and who vouches for them. Level 2 is the crossing: what may pass between sectors, under which regime, and the durable record that it did.

    Level 2 has to read a transaction to apply a regime to it. It is deciding which regime governs a crossing and which authority owns it, and neither question can be answered from a hash. So Mode A cannot reach Level 2 — not as a matter of configuration or licensing, but because the information Level 2 needs was never transmitted. A Mode A customer gets Levels 0 and 1 in full, and every ordinary transfer inside their own sector; a crossing into another sector needs Mode B or deeper. This is the one place where the two axes are not independent, and it is worth stating plainly rather than letting a customer discover it after choosing a Mode for confidentiality reasons.

    Where Level 2 stands, measured 1 October 2026. Level 2 runs on two governance meshes which are the same binary in two postures — a regulated one and a commercial one. The rule is that regulation attaches to the company: once a party comes under regulation, its transfers settle via the regulated mesh regardless of what geography alone would have chosen. Until this week nothing computed that. Routing was derived from addressing only — pyramid, sector, data centre, country — and no code anywhere consulted regulated status, so a regulated counterparty could be hosted by the commercial mesh on geography alone, and both meshes could each believe they owned the same transfer. Settlement needs exactly one authority per transfer, so that was a correctness defect rather than a preference.

    Host selection now exists as a pure function of (regulated status, then coordination tier), and the governance deployment enforces it rather than trusting callers to apply it — a rule only the caller applies is a convention, and a convention is not a control. The binary carrying it is live on all eight governance validators, verified by digest inside each running container rather than from a deployment status field. The enforcement itself is deliberately switched off. It arms per mesh, by an explicit setting, so that “the code is deployed” and “the control is on” remain two separately verifiable facts; a misconfigured value blocks the unit with a named reason rather than silently disabling the control. What a regulated federation is stays a registry of explicit records, readable and revocable — never inferred at runtime from anything about the identifier itself.


    Local View – B –
    The Data Visibility Ladder — four rungs, independent of which Mode you pick

    The four Modes above answer how content reaches Tx-Rails at all — nothing, a WAL observer, a gateway, or a direct SDK call. A separate question, orthogonal to all four, is who can actually read whatever content does arrive once one of them is sending it. That’s the Data Visibility Ladder: four rungs, each an explicit answer to “who can decrypt this field, and what does the platform give up or gain in exchange.” A customer climbs the rung that matches their own risk tolerance against how much platform-side service — cross-checking, referential validation, independent audit — they want in return. The full design lives in structured-atom-privacy-ladder-design.md; this section is the customer-facing summary, kept in sync with it.

    Rung Who can decrypt What the platform gives up Status
    1 — Plaintext Everyone in Tx-Rails’ own operational chain Nothing — full validation, full ChubbyChecker cross-checking Default today, for every content-receiving Mode (B, C, D), once adopted
    2 — Platform-key encrypted Tx-Rails (customer explicitly consents) Nothing structurally — the platform can always decrypt to validate/cross-check, same as plaintext, just protected from anyone outside the platform’s own key custody (a stolen DB backup, a network intercept) Mechanism built, carrying no production data. Ten fields of every transaction record are already sealed individually by it, each under its own per-record data key bound to the record and field it belongs to: the client node, the signing string, the user and role, the amount mantissas and exponents, and the database, schema, table and record identifiers. That last group matters more than it looks — a pointer to the exact customer row a transaction touched is a de-anonymisation index if left in the clear, whatever else is protected. The sealer and its schema exist and are exercised by tests, and organisations.tenant_sealed_fields is present in the live schema — but measured 2026-10-02 it held zero rows, against 33,964 rows in trace.slab_anchors on the same tier. No record has been sealed in a running deployment. This is the intended floor for the content-receiving Modes and the current direction of travel, not a capability available today.
    3 — Customer-key encrypted Only the customer — Tx-Rails genuinely cannot decrypt, even in principle Depends on the field — nothing, if the platform never validated that field’s content anyway; the rest of the cross-check catalogue, for the narrower case where we are expected to validate data only the customer can read Already solved today for fields Tx-Rails never validates. Genuinely open only for the narrower case where we are expected to validate customer key-encrypted data.
    4 — Partner-key encrypted Only a named third party the customer chooses (a manufacturing partner, a regulator) — asymmetric, multi-recipient N/A — separate key-management machinery layered on top of Rung 3 Undesigned. No code anywhere.
  4. Global View –


    1. 4 Deployment Shapes;
      • Tower (Highly Regulated)
      • Shape 1 (Default)
      • Shape 2 (Some Shared Resources)
      • Shape 3 (All Shared Resources)

    2. Company & Network Structures Concrete & Abstract
      • Company/Organisation Level
      • Federation Level
      • Pyramid Level
      • DataCentre Level
      • National Level
      • Sector Level

    3. 3 Transaction Regimes — all three built; none yet carrying customer traffic
      • Regime A (Intra-Pyramid) — coordinator wired
      • Regime B (Domestic) — Saga, executed through consensus
      • Regime C (International) — anchored settlement, rolled to every governance validator and a full lifecycle proven through consensus
  5. Industrial Internet of Things IIoT/Smart Contracts

  6. Auditing – ChubbyChecker, the criteria extracted from it, and why the verdict is reproducible without trusting us

____________


We enable Supply & Trading Networks.

________________________________________________________________________

PART 1: The Benefits (Optional) of Kademlia (ADNS)

________________________________________________________________________

general enterprise accountingSovereign Name Resolutiongeneral enterprise accounting

Octo-Quadrupled Networks

An Optionally Absent DNS (ADNS) Enterprise System

Bucordo/Tendermint
Database and Server Nodes

In the DataCentres

[Supernodes, Secondary Nodes]

QuadrupleNetworks

Optional Kademlia/DHT
Distributed Hash Table Nodes

Global

[Supernodes, Secondary Nodes,
Tertiary (Client) Nodes]

________________________________________________________________________

MINDERS

 

security

Tx-Rails
Sovereign Name Resolution
(optional ADNS)

Move the connection-trust decisions that matter off DNS and onto a Byzantine-fault-tolerant peer-identity mesh — without rewriting your applications, and without surrendering the parts of DNS that still work.

DNS is the load-bearing component of global digital trust, and it is structurally insecure. There is no authentication of names; DNSSEC adoption sits below 3% for end-user domains; cache-poisoning, registrar hijacking, BGP-leak attacks on authoritative servers, and dangling-CNAME subdomain takeover have produced an actuarial loss profile that every cyber-insurance underwriter now prices into your premium without ever calling it that. The largest providers — Cloudflare, Akamai, AWS Route 53, Google Public DNS — are single points of failure with a track record of cascading outages, and they sit within jurisdictions whose courts and intelligence services can compel changes to your name-resolution path. The economy has learned to live with this gap because the incremental cost of any one DNS-mediated incident is borne by someone who isn’t pricing it back into the system. That is the delusion.

Tx-Rails Sovereign Name Resolution displaces DNS for the connection paths where the actuarial cost has finally exceeded what’s tolerable: financial-settlement flows, audit-evidence channels, supply-chain provenance APIs, regulator-facing inspection endpoints, multi-party contract execution, and any client-to-server flow whose compromise has reputational, regulatory, or counterparty-trust consequence. DNS continues to serve everything else — your marketing site, your public-blog CDN, your developer-docs portal. Your applications do not need to be rewritten. The high-value flows route through a cryptographic peer-discovery substrate that has no single point of failure, no central registrar, no court-orderable trust path, and an independently-verifiable record of every connection accepted.

What we displace

DNS today resolves names to IPs without authenticating either end. Tx-Rails Sovereign Name Resolution replaces that with three layers, in order:

1. Cryptographic peer identity (libp2p peer-IDs)

Every endpoint — every server, every API, every audit node, every contract-execution surface — has a cryptographic peer-ID derived from its public key. Connecting to that peer-ID is provably connecting to the holder of that private key. There is no name-to-IP indirection that an attacker can poison; the name is the public key.

2. Kademlia DHT for peer location (with enterprise-CA gating)

Peers find each other through a Kademlia distributed hash table that holds peer-ID → multiaddress records. Records are signed by their owners; the DHT is operated by the customer’s federation (and, where contracted, by ITOTCCA-operated co-validator nodes). Cross-jurisdiction discovery happens without depending on any third party’s DNS resolver. Combined with the wp-06 peer-identity verification layer, every routing-table entry is gated by a CA-signed cert that binds the peer-ID to the operator’s enterprise PKI — so a malicious peer publishing a poisoned record is rejected before it ever appears in a routing lookup.

This same mechanism is also how two national aggregators that have never traded before find and verify each other for Regime C cross-border settlement, before a single dollar moves — see the corridor-onboarding Q&A in Part 3.

3. Cert-pinned DoH for the bootstrap edge

The one place DNS is still needed is the initial discovery of the federation’s bootstrap peers. We solve that with wp-9A DoH (DNS-over-HTTPS) with SPKI cert-pinning: bootstrap-peer hostnames resolve via your nominated DoH provider, with the provider’s TLS public-key SHA-256 pinned in the client config. The result is a bootstrap path that is (a) encrypted in transit, (b) authenticated by cert-pinning (not by trust-on-first-use), and (c) verifiable against the federation’s published trust roots. From that one bootstrap, the majority of subsequent peer discovery is over the BFT-consensused Kademlia overlay with the only further DNS dependence, employing DoH, occurring when server Node Ids are rotated as a security measure. At these points every user’s connection data must be renewed.


What we keep

We do not displace DNS for your public marketing properties, your CDN-fronted documentation, your developer portal, your blog, your image-hosting flows, your social-media login redirects, your office-network DNS, or any flow where the cost of a name-resolution incident is acceptable. DNS is fine for the things DNS is fine for. The pitch is not anti-DNS in principle; it is anti-DNS for the flows whose compromise has been quietly underwritten by your insurance premium for too long.

You also keep:

  • Your applications unchanged on the wire. sovereign-proxy is a single local daemon, TLS-terminated locally against a customer-installed root cert and relayed over Kademlia: HTTP CONNECT and SOCKS5 (RFC 1928) both built, auto-detected on the same port, for unmodified browsers and most legacy software; native-application SDKs built for Java, Python, Node, and .NET; a TUN-based virtual interface built in both a userspace-networking variant and a real kernel-backed device variant. Customers choose per-flow, from what’s actually built.
  • Your load balancers, WAFs, CDNs at the DNS edge. Sovereign Name Resolution is in front of those for the flows it serves; the DNS-fronted flows continue through the existing stack.
  • Your observability. Every peer-ID connection emits OpenTelemetry-compatible spans + ChubbyChecker audit events; existing SIEM / APM integrations consume them via the published collectors.
  • Your IdP. SAML / OIDC redirects continue to land at DNS-resolved HTTPS endpoints; the connection to those endpoints, if it’s one of the high-value flows, runs over the cryptographic substrate.

 


Where it applies

This is the right substrate for any flow whose actuarial cost-of-compromise exceeds what current DNS-mediated trust can defend. Concrete examples across sectors:
  • Defence + intelligence + sovereign: command-and-control APIs, classified-data exchange endpoints, multi-national-coalition information-sharing channels, anything that survives a hostile state-actor’s registrar-takeover capability.
  • Critical national infrastructure (energy / water / transport / telco): ICS / SCADA management endpoints, emergency-mutual-aid coordination APIs, regulator-facing real-time disclosure feeds — the flows that NIS2, US CISA CIRCIA, the new Australian SoCI Act assurance regime are all sliding toward mandating verifiable transport for.
  • Financial-settlement and central-bank flows: real-time gross settlement, cross-border payment-message rails, custody-record reconciliation. Where SWIFT bnPLUS, FedNow, and the various CBDC pilots are wrestling with how to authenticate counterparties without depending on commercial-DNS-mediated PKI.
  • Healthcare under ransomware attrition: imaging / EHR / lab-result endpoints between hospital systems and across regional networks. The entry vector in the majority of post-2023 ransomware cases involves DNS-mediated phishing or watering-hole — closing the DNS surface for the flows that matter shrinks the attack surface materially.
  • Sovereign-wealth + central-bank treasury: portfolio-management APIs, custodian reconciliation channels, regulatory disclosure rails. The CIOs of these organisations have been quietly looking for a DNS alternative for a decade; the technology is finally there.
  • Building safety + construction post-Grenfell / Carillion: golden-thread evidence channels, certifier-to-regulator notification rails, retention-bond release endpoints. The trust failure that produced these regulatory regimes was the failure of the underlying records chain — and the records-chain substrate sits on DNS.
  • Pharma supply-chain + cold-chain provenance: serialised-product traceability APIs, custody-of-evidence channels for cold-chain integrity, regulator-facing recall-execution flows. DSCSA / FMD compliance regimes assume verifiable transport that DNS cannot provide.
  • Cross-jurisdictional supply chains generally: any flow where two organisations in different legal regimes need to exchange data without depending on a third country’s name-resolution sovereignty.

 

MINDERS


Why this is becoming inevitable, not optional

Cyber-insurance is repricing DNS-mediated risk. Premiums for organisations that cannot demonstrate transport-layer integrity beyond DNSSEC have risen 30-50% year on year since 2022. Carriers are increasingly excluding DNS-mediated phishing and registrar-hijacking losses from baseline coverage; they appear as priced add-ons or aren’t covered at all.
Regulatory framing is shifting from “use DNSSEC” to “demonstrate end-to-end name-resolution integrity.” NIS2 (EU), CIRCIA (US), Australia’s SoCI Act amendments, the UK NCSC’s draft 2026 guidance, the EU Cyber Resilience Act — all four are moving away from prescribing DNSSEC (which they know is barely deployed) and toward attestation requirements that DNSSEC-on-paper cannot satisfy.
Sovereign jurisdictions are quietly reconsidering root-server dependence. The discussion isn’t held in public, but it’s held. A name-resolution path that terminates in US-controlled root servers, with TLS roots controlled by US-incorporated certificate authorities, has been quietly identified as a strategic exposure by Five Eyes-adjacent allies, EU member states, and BRICS-aligned governments alike.
Ransomware actuarial data has shifted. Post-2023, the share of ransomware entry vectors involving DNS-mediated phishing or DNS-mediated watering-hole has crossed 70% by most major IR firms’ published numbers. The DNS surface is now the dominant attack surface, full stop, and security teams know it.
Quantum-readiness mandates are landing. NIST FIPS-203 / 204 / 205, EU PQC migration timelines, Australia’s PQC roadmap — all assume that the underlying transport substrate supports trust-anchor migration. DNS-as-trust-anchor does not; cryptographic-peer-ID-as-trust-anchor does, and the migration path is straightforward.

Architecture, briefly

  • Bootstrap edge — cert-pinned DoH resolves the federation’s bootstrap multi-addresses (wp-9A). One DNS dependency, hardened to the limit DNS can be hardened.
  • Peer discovery — Kademlia DHT operated by the customer’s federation + ITOTCCA-co-validator nodes (wp-9B). Peer-ID-keyed; no name indirection.
  • Connection establishment — libp2p with Noise authenticated handshake, gated by wp-06 enterprise-CA peer-identity verification. Every successful connection is provably between two parties whose certs trace to the customer’s PKI root.
  • Audit trail — every connection-accept, every connection-reject, every cert-rotation is committed to the ChubbyChecker BFT audit mesh and periodically anchored to a public DLT (via an Anchor Interface) for jurisdiction-independent verifiability.

 

The customer-facing surface, today and roadmap:

  • Local HTTP CONNECT proxy daemon — built (governance@4189439, cmd/sovereign-proxy): for unmodified browsers + most legacy software via the standard HTTPS_PROXY env var / proxy config. Point it at a peer-ID-shaped pseudo-hostname (<base32-peer-id>.p2p — Tor .onion-style, since Kademlia here is peer-ID-keyed and a browser only ever sends a hostname); the daemon TLS-terminates locally against a one-time-installed root cert, resolves the peer over Kademlia gated on wp-06 verification, and relays the decrypted request over libp2p straight into h3-rpc-gw‘s existing, unmodified wire protocol. Ordinary internet hosts pass straight through untouched, so one HTTPS_PROXY setting covers both.
  • SDK for native applications that can be modified or rebuilt — not a direct libp2p SDK per language (that would mean re-implementing wp-06’s handshake protocol in each target language separately, real ongoing maintenance burden for no benefit). Instead: sovereign-proxy also serves a small gRPC API (sovereign_proxy.v1.RelayService, proto@61c0248) over a local Unix socket, in the same process as the CONNECT proxy, sharing the same Kademlia/wp-06 machinery — a native app calls it with its own credentials instead of the daemon’s shared browser token. All four target languages built and verified end-to-end against a real running daemon (governance@91e6a96 / @d394ac3 / @71fd755 / @b32963a): Java (sdk/java), Python (sdk/python), Node (sdk/node), .NET (sdk/dotnet). Each generates or loads client stubs the idiomatic way for its own ecosystem — Go/Java/Python commit generated code (matching gen/go‘s own convention); Node loads the proto at runtime via @grpc/proto-loader; .NET generates at build time via Grpc.Tools — rather than forcing one mechanical convention where it doesn’t fit the target language’s own norms.
  • SOCKS5 (RFC 1928) — built (governance@1195a81): alongside the CONNECT proxy, for clients that specifically need a SOCKS setting rather than HTTPS_PROXY (Firefox’s native SOCKS proxy config is the canonical example). Same port, auto-detected per connection, same TLS-terminate-and-relay path for .p2p targets, same passthrough for ordinary ones — one daemon, one port, both protocols.
  • TUN virtual interface — built, both variants (governance@046eab7 userspace-networking, governance@adaa09d real kernel device): an operator-configured table of virtual-address → peer-ID allocations served on either an in-process TCP/IP stack (no kernel privileges, reached by direct dial or an operator-provided bridge) or a real kernel TUN device (needs CAP_NET_ADMIN once to create; ordinary OS-level routing reaches it transparently thereafter, once the operator assigns its addresses/routes) — the same TLS-terminate-and-relay path as CONNECT and SOCKS5 either way.
 

ADNS – Near-Absence of DNS –
Enterprise System (if Chosen)

 

ChubbyChecker: GoAnchor Interface to:
Blockchain underwriting Databases: 

 

Factory 0: Factory-0
Factory 1: Factory-1
Factory 2: Factory-2
Bucordo Hiero

Anchor Interface to Blockchain

  • Zero Trust,
  • Zero Tolerated Faults,
  • Utter Data Privacy
  • Near-Absence of DNS if Chosen

 

(ADNS)

Bucordo Security (Tendermint & Raft)
merged with libp2p/kademlia and:

ChubbyChecker“ChubbyChecker“

Hiero Kademlia Transport, End-to-End Encryption,
6-Stage Independent Cross-Checking,
No Operator Read Access,
No Operator Write Access

The Checker Anchors
Merkle Roots to Blockchain


and stores all Transaction Trace
evidence on WORM Drive

Tendermint/Raft               optional Kademlia Protocol
                        TCP & QUIC Transport               QUIC transport to/from the Edge
in the DataCentre   Global DHT (Peer Discovery by Id)
if Chosen

quasupledNetworks
Main Enterprise Data on PostGIS
Merkle Roots Anchored                     All Transaction Trace Evidence Stored

Immutably to Blockchain ..
                     to Write-Once Read-Many Drive
postgres secure databaseElastos databaseWORM Drive

BFT/Raft/DHT/Anchor
Tx-Rails

Striving for
the Gold Standard

Octo-Quadruple-Networked

 

________________________________________________________________________

tx-rails-logo

Tx-Rails Provides Access to Databases via Composable GO Actions, we call ‘Atoms’. When Authorised, You Form Your Own Business Processes from Atoms, in the Overseer Design Studio.

The Overseer then enforces those procedures, including conditional branching. This is the deepest rung of an adoption ladder that begins as a change-nothing audit underlay — you climb to it only if and when you choose. See “From underlay to substrate” below.

Tx-Rails Incorporates:

1. The Following Twelve Operational “Rails”

The system is organized into a hierarchy of twelve distinct layers, each with its own Byzantine Fault Tolerance (BFT) quorum (n = 3f + 1)
In the table below, the Statement of Risk pertains to the BFT systems in isolation.
The actions of ChubbyChecker will detect any occurrence of r > f, and raise an alert:
Layer Nodes (n) Tolerance (f) Statement of Risk (r = f + 1) Role
Member-Classes (Orgs) 4 1 2 servers are corrupted Source of Truth for Private Enterprise Data
Overseers 7 2 3 servers are corrupted Business Process Design & Governance
Governance 7 2 3 servers are corrupted Transaction regulation and commercial (unregulated) governance
Regulators 7 2 3 servers are corrupted Supra-company regulation
Aggregators 10 3 4 servers are corrupted Cross-Network Consolidation and Merkle Root Calculation
Tophats 13 4 5 servers are corrupted Forensic Replay and Hedera Blockchain Anchoring
**Auditors-Orgs 4(orgs) 1 2 servers are corrupted 74 Trace Metadata Cross-Checks
**Auditors-Overseers 7(oseers) 2 3 servers are corrupted 32 Trace Metadata Cross-Checks
**Auditors-Governors 7(oseers) 2 3 servers are corrupted 32 Trace Metadata Cross-Checks
**Auditors-Regulators 7(oseers) 2 3 servers are corrupted 32 Trace Metadata Cross-Checks
**Auditors-Cross-Network 10(agg) 3 4 servers are corrupted 6 Trace Metadata Cross-Checks
**Auditors-Cross-Network 13(tophats) 4 5 servers are corrupted 3 Trace Metadata Cross-Checks and 14 classified as Integrity checks

2. These Four Technical Pillars

1st Network: Kubernetes
(Project-Wide)

kubernetes

PostGIS

3rd Network:
Global Distributed
Hash Table Network

if Chosen for Client Connections

DHT

libp2p-kad-dht/kademlia

2nd Network: GoldBFT

(Individual Orgs & Overseer Layer
Federations of Organisations
Pan-Network Aggregators
Pan-Network Tophats
Site-Wide Auditors)
Byzantine Fault Tolerance

Introducing Preferred Transports
QUIC/HTTP3,
gRPC/HTTP2

4th Network:
Anchor Interface

Tophats Anchor across
Business Supply Networks

Final Source of Truth

Hiero

 

__________________

The following Underlay! System is completely compatible with our Sovereign Name Resolution Overlay. Your traditional Systems reside above the Underlay and, if appropriate, also beneath the Overlay.

Indicative pricing

Pricing is per-pyramid + per-federation, calibrated against your deployment Shape (see [federation-trust-model.md](../federation-trust-model.md)). Sovereign Name Resolution is included in the base platform subscription; what changes per tier is the number of federations + cross-jurisdictional peer co-validator nodes operated on your behalf:

 

Customer profile Typical deployment Indicative A$ / year
Single-organisation, single-jurisdiction 1 pyramid, 1-2 federations (Shape 1) 50k – 150k
Multi-organisation or multi-jurisdiction federation 1-2 pyramids, 3-5 federations (Shape 2 grouped) 250k – 700k
Sovereign / supranational / critical-national-infrastructure 3-5 pyramids, 5-10 federations (Shape 2 or 3 sovereign) 1M – 3M

The pricing is calibrated against breach-cost avoidance, not against feature count. Engagements typically begin with a customer-led estimate of the actuarial cost of their current DNS-mediated risk surface — cyber-insurance premium attributable to DNS-mediated phishing / registrar-hijack / cache-poisoning vectors, SOC FTE attributable to DNS-incident remediation, and lost-contract opportunity attributable to procurement-RFP supply-chain integrity questions you cannot currently answer. The subscription is sized below that number.

Excluded: integration work by your IT team (your engineers, against our built sovereign-proxy CONNECT + SOCKS5 + TUN daemon and Java / Python / Node / .NET SDKs) and any sovereign infrastructure you elect to host in-house vs on ITOTCCA-operated co-validator nodes. Pilot deployments use a separate timeboxed model (3-month parallel-run, walk-away clause — terms on request).

What we’d ask of you to start

Identify one flow whose compromise would be unacceptable — typically a regulator-facing endpoint, a counterparty-trust-bearing API, or a multi-party settlement channel. Move that one flow onto the Sovereign Name Resolution substrate via the integration shape that best fits — today, that means sovereign-proxy‘s CONNECT, SOCKS5, or TUN front end, or, for a native application, its RelayService SDK in Java, Python, Node, or .NET. Keep DNS for everything else. At the end of the pilot you have:

  • A verifiable connection-acceptance log for that flow’s complete history, signed by your federation, anchored to a public DLT
  • A measurable reduction in the DNS-mediated attack surface for the flow that mattered most
  • A concrete cyber-insurance conversation about whether the carrier will reprice the reduced-DNS-dependency posture
  • A reference architecture you can extend to additional flows at the pace your operational appetite supports

 

We then have a real conversation about what that’s worth on your next NIS2 / SoCI / CIRCIA assurance audit, your next ransomware-readiness drill, your next cyber-insurance renewal, your next sovereign-wealth tender, or your next coalition-information-sharing agreement.

See the companion documents on this website for the audit-capture and business-process layers that consume the verifiable-transport substrate Sovereign Name Resolution provides.

Contact: john@itotchaincloud.com.au

MINDERS

________________________________________________________________________

Every transaction is processed locally, but verifiable globally.

The two parts below are named the other way around from what they each actually do — the Local View (Part 2) is what makes a single transaction checkable by anyone, anywhere, without trusting Tx-Rails; the Global View (Part 3) is the deployment topology deciding which VM in which pyramid handles it. Read that inversion as the claim, not the section titles.

Watch for the same underlying move made three separate times as you read on: Part 1’s peer discovery is optionally absent DNS; Part 2’s anchor choice below is chain-selectable — pick the ledger that fits your own risk/cost tradeoff; Part 3’s deployment Shapes are an explicit spectrum from a fully isolated Tower to a maximally shared mesh. None of these three sections reference each other, but each one is the same principle applied to a different layer: never hard-code a central dependency — make it a configuration axis the customer owns. Optionality of centralization is that principle’s name.


PART 2: Tx-Rails for Security, Action and IIoT

The Local View

Tx-Rails — Underlay Integration Patterns

One-line summary: Tx-Rails is an underlay, not a replacement. Customer companies keep the front-ends they trust (their banking app, ERP, clinical system, procurement portal, comms platform) and bind Tx-Rails beneath as a continuous cryptographic audit layer. Today that binding happens through one real, built, verified, packaged integration path — hash-only attestation, with three deeper paths that now run and commit in our own estate as reference implementations rather than packaged products. This document describes what each path actually does and what it doesn’t. Two independent axes run through everything below: four integration Modes (A–D) decide how content reaches Tx-Rails; the four-rung Data Visibility Ladder, immediately after the Modes, decides who can read it once it does.


The underlay philosophy

The single most important positioning point: Tx-Rails does not ask customers to replace systems they already trust. That is the difference between an “underlay” pitch and a “blockchain” pitch.

A blockchain pitch says: “Migrate your data and your front-end onto our new platform.” The underlay pitch says: “Keep your platform. Bind us underneath. Every transaction your existing system commits also gets a cryptographic fingerprint, cross-checked and anchored — without changing how your users interact with your product.”

This is the only positioning that makes sense for regulated incumbents (banks, housing associations, hospitals, government agencies) who have spent decades and tens or hundreds of millions of pounds/dollars building front-ends their staff and customers understand. Asking them to throw that away is a non-starter. Asking them to add one small, well-scoped call to an underlay that gives them tamper-evident, cross-jurisdictionally-verifiable proof is a tractable conversation.

The auditor subsystem (ChubbyChecker) is what makes the underlay distinct from “just put it on a blockchain”. ChubbyChecker performs independent cross-checks per transaction/block, operated by parties independent from the BFT validators. Compromise detection is automatic: when the count of provably-compromised servers exceeds the BFT threshold f, ChubbyChecker raises an alert — it does not halt the platform, and a human triages. This is the load-bearing safety net no blockchain pitch can credibly offer.


From underlay to substrate — one engine, your pace

Two things we say can sound like opposites: “keep the systems you trust — we bind beneath as an audit underlay” and “compose your own business processes from our Atoms.” They are not opposites, and they are not two products. They are the same deterministic action engine seen at different depths of adoption — and you choose the depth, at your own pace.

Today that ladder has two real, fully-packaged rungs — the fuller menu once sketched here, including the “edge-mediated” (Mode C) and “write-mediated” (Mode D) rungs described in the roadmap section below, now also has its core mechanisms built, each as a reference implementation a customer’s own team adapts rather than a rung a customer can simply step onto:

  1. Pure underlay — change nothing. Hash-only attestation. Your apps and screens are untouched; we faithfully anchor the cryptographic fingerprint of what they already commit. The Atom library runs behind the audit — as the schema ChubbyChecker validates against — and you never see it.
  2. Substrate — compose with us. For greenfield builds, or customers who want deeper adoption, you author business processes from Atoms in the Overseer Design Studio and the Overseer enforces them. Here Tx-Rails is the application substrate, not just the audit floor.

The through-line: the same audited, deterministic action engine that records a fingerprint of what your existing systems already commit can also run new processes directly — when, and only when, you choose to compose them. The underlay is complete on its own; composing is an expansion you grow into, never a condition of entry. That is why “underlay” and “build on us” are one continuous offer rather than a contradiction.


Mode A — Hash-only attestation: what’s actually built

The original design for this platform sketched four integration modes, trading integration invasiveness for how much of the 37-field Transaction Metadata Trace (see below) lands without changes to the customer’s screens. Only the first of the four is a fully built, packaged path a customer can adopt today. A second (Mode D) now has its core mechanism built and verified too, as a reference implementation rather than a customer-ready product. This section documents what Mode A actually does; the next section is honest about where the other three — including Mode D’s real caveats — actually stand.

What changes in the customer’s system: the customer’s transaction commit path is extended to publish a cryptographic hash of each committed transaction to the Tx-Rails underlay, via a signed call carrying a verified tenant identity.

What Tx-Rails receives: the hash, plus the identity/block-position metadata needed to place it. Not the transaction body, not the parties, not the amounts, not the timestamps as authoritative inputs.

Guarantees Mode A provides:

  • Tamper-evidence: “this hash was committed at this time” is provable later, by anyone, using a portable proof artifact and public cryptographic primitives — not a claim that requires trusting the Tx-Rails database or software.
  • Forward-only audit trail: the customer can prove their own hash sequence matches what was actually anchored.
  • Cross-jurisdictional verifiability: Merkle roots of block slabs are anchored to Hedera, so a third party in another jurisdiction can verify the hash sequence existed without trusting the customer or Tx-Rails.
  • Durable evidence, not a single-validator dependency: the raw block data and transaction-location index a proof is built from are both independently archived (cmd/block-archiver), not held only on the validator’s own disk — and a proof can be located from the transaction’s own content hash, not only from an internal Tx-Rails record of where it landed.
  • Choice of anchor, not lock-in to one: Hedera is the default, but the anchor submitter is chain-selectable, and a built, tested Ethereum path already exists alongside it — a deployment picks the anchor that fits its own risk/cost tradeoff rather than inheriting a single fixed choice.

Guarantees Mode A does NOT provide:

  • Independent re-verification of transaction contents — ChubbyChecker cannot run cross-checks against data it doesn’t have. (Where re-verification is structurally possible at all — two independent parties each submitting a claim about the same event — it’s Regime C’s bilateral settlement predicate that already provides it, not a Mode A/B/C/D gap; see below.)
  • Detection of “the customer published a hash of a fake transaction body that they later substituted into their own system” — Mode A trusts the customer’s hash submission for what it represents.
  • The full BFT cross-validation story: with only hashes, the BFT mesh has nothing semantic to validate.

When Mode A is appropriate:

  • Customers in proof-of-existence regimes where merely showing “this record existed at this time” satisfies the regulatory requirement.
  • High-volume / low-margin transaction streams where richer integration overhead would be prohibitive.
  • Initial pilot phase before a customer commits to deeper integration — noting the deeper modes below, while their core mechanisms are built, aren’t packaged products a customer can simply install yet.
  • Customers whose regulatory environment forbids transmitting transaction details to an external system at all — Mode A already satisfies this by construction, since it never receives them.

Roadmap: the deeper integration menu

The original design sketched three additional integration modes beyond Mode A. All three are now deployed in our own estate and committing through consensus (goldbftd + org-server-abci + org-gateway, plus a real Postgres for the two that need one). On 30 September 2026 a change made at the source of each produced a new attestation, committed and read back identically from two independent validators — Mode B at block 760822, Mode C at 760824, Mode D at 760826. That test matters because the gateway returns a success code and a real transaction id as soon as a submission passes admission control, and admission control runs neither the action’s validation nor the authorization check — so all three had previously been reported as working on evidence that proved nothing had committed. See below for exactly what each one covers and doesn’t. None is a packaged, install-and-go product; no customer has been onboarded through any of them yet. This document stays honest about that gap rather than presenting more than what’s actually there. Most customers will eventually want more than one mode running at once, per workflow. No customer has been onboarded through any mode, including Mode A: everything described here runs in our own estate against our own data. Mode A is the only one that is a packaged, adoptable product; the other three are reference implementations for a customer’s own team to adapt. Adopting one of B/C/D answers how content reaches Tx-Rails; it says nothing yet about who can read it once it arrives — that’s the separate Data Visibility Ladder, covered right after Mode D below.

Mode B — CDC / change-data-capture observer: deployed and committing

What changes in the customer’s system: nothing. cdc-observer attaches to the customer’s Postgres write-ahead log as a genuine logical-replication client and observes committed changes asynchronously, with no change to the customer’s application.

What’s built: a real Postgres logical-replication consumer (pglogrepl, decoding pgoutput directly — no Debezium/Kafka dependency), verified against a real Postgres with wal_level=logical. The WAL operation itself (INSERT/UPDATE/DELETE) maps directly onto the matching RequType value, so no per-table semantic-intent config is needed. Identity attribution uses one coarse service-account credential per customer deployment — real tenant boundary, but per-user attribution is lost — reusing the exact same static-token pattern Mode D’s outbox-relay already has, no new verifier code required. A mapping layer back to real identity from the customer’s own audit columns has no prior art anywhere in this codebase and remains unbuilt. Ships in connectrpc/services/org-gateway/cmd/cdc-observer.

Forensic, not preventative: the customer’s transaction is already committed to their own database by the time this mode observes it via CDC — it detects and proves a problem after the fact, never blocks it in flight.

Where it fits: large enterprises whose systems genuinely cannot be modified (frozen vendor packages, regulatory-frozen code, end-of-life systems still processing material volume), and customers who can’t tolerate any commit-path latency at all — once a customer actually adopts the reference implementation.

Mode C — Gateway-mediated: deployed and committing

What changes in the customer’s system: application traffic routed through edge-gateway at the network edge, deriving attribution from a JWT and semantic intent from an explicit route config — the application itself unmodified.

What’s built: a real inline HTTP reverse proxy, not the fragile heuristic REST-inference engine early sketches worried this mode would need — semantic inference from arbitrary REST shapes doesn’t generalize across customers’ API conventions, so this reference implementation uses an explicit per-customer route-mapping config (method + path prefix → atom) instead. It reuses org-gateway’s existing JWT verification entirely — edge-gateway never inspects a credential itself, only forwards it through, so no new auth code was needed. It sits inline in the customer’s live production traffic, a materially different reliability commitment than an out-of-band audit sidecar — an outage there breaks the customer’s application, not just their audit trail. Ships in connectrpc/services/org-gateway/cmd/edge-gateway, verified end-to-end including the fail-closed case (an unauthenticated request is blocked before ever reaching the backend).

What it adds over Mode B: deterministic JWT-derived attribution (no dependency on the customer’s tables carrying audit columns), and — because it sits inline — genuine preventative rejection: fail-closed, unconditionally, by design. This is the one of the three that can actually refuse a bad transaction before it reaches the customer’s backend; Mode D’s shipped outbox variant explicitly cannot.

Where it fits: customers with a single, clean externally-exposed API edge, and high-value flows where JWT-derived attribution matters but the application code itself can’t be touched — once a customer actually adopts the reference implementation.

Mode D — SDK / atomic dual-write: deployed and committing

What changes in the customer’s system: the application calls Tx-Rails alongside its own database write, with explicit semantic-intent tagging (REVERSAL / CORRECTION / RESTATEMENT vs ordinary CREATE / UPDATE / DELETE — all real RequType values now, not a sketch).

What’s built: this is the cleanest of the three from a trust-model standpoint — the customer’s own authenticated session makes the call directly, no inference, no identity-federation problem. True cross-system atomicity is a hard distributed-systems problem in practice; the realistic version, and the one that’s built, is an outbox pattern (write intent locally, relay asynchronously) — eventually-consistent, not literally atomic. org-gateway‘s ExecuteAction accepts a client-supplied idempotency key and derives a deterministic transaction id from it, so a crashed or retried relay never double-applies the customer’s write — verified end-to-end against a real goldbftd + org-server-abci + org-gateway stack, including the case where CometBFT’s own mempool rejects an exact-duplicate retry outright before it ever reaches the application layer. A reference outbox-relay implementation (Postgres-backed store, Connect-RPC client, a runnable poller) ships in connectrpc/services/org-gateway/cmd/dualwrite-relay.

What’s still missing: packaged, documented client libraries beyond the reference Go implementation — the generated Connect stubs mean any language can call the gateway directly, but there’s no polished multi-language SDK yet — and no customer has been onboarded through this path. Not yet a product a customer can simply install; a reference a customer’s own team adapts to their own outbox table.

What it provides now: the full transaction payload and explicit semantic intent — fine-grained REVERSAL/CORRECTION/RESTATEMENT distinctions that no inference layer could recover after the fact. Independent content re-verification is a different question this doesn’t answer: for a single submitter there’s no independent fact to check a claim against, so Mode D’s content delivery doesn’t unlock re-verification the way it unlocks semantic-intent tagging. Where genuine re-verification is possible — two independent parties each submitting a claim about the same event — that’s Regime C’s bilateral predicate, a different mechanism entirely.

Where it fits: high-value flows where explicit application-decided semantic-intent tagging matters for regulatory purposes (settlement reversal semantics, financial-correction audit, restatement of regulatory submissions) — once a customer actually adopts the reference implementation. Not a fit for independently re-deriving single-party claims like balance sufficiency or KYC status — Tx-Rails has no independent fact to check those against regardless of which mode delivers the content; genuinely multi-party checks (authorisation chains, counterparty agreement) are Regime C’s domain, not Mode D’s.

If and when any of the three become packaged, install-and-go products, this document will describe them that way — the same standard applied here for each one’s core mechanism.


The Data Visibility Ladder — four rungs, independent of which Mode you pick

The four Modes above answer how content reaches Tx-Rails at all — nothing, a WAL observer, a gateway, or a direct SDK call. A separate question, orthogonal to all four, is who can actually read whatever content does arrive once one of them is sending it. That’s the Data Visibility Ladder: four rungs, each an explicit answer to “who can decrypt this field, and what does the platform give up or gain in exchange.” A customer climbs the rung that matches their own risk tolerance against how much platform-side service — cross-checking, referential validation, independent audit — they want in return. The full design lives in structured-atom-privacy-ladder-design.md; this section is the customer-facing summary, kept in sync with it.

Rung Who can decrypt What the platform gives up Status
1 — Plaintext Everyone in Tx-Rails’ own operational chain Nothing — full validation, full ChubbyChecker cross-checking Default today, for every content-receiving Mode (B, C, D), once adopted
2 — Platform-key encrypted Tx-Rails (customer explicitly consents) Nothing structurally — the platform can always decrypt to validate/cross-check, same as plaintext, just protected from anyone outside the platform’s own key custody (a stolen DB backup, a network intercept) Mechanism built, carrying no production data. Ten fields of every transaction record are already sealed individually by it, each under its own per-record data key bound to the record and field it belongs to: the client node, the signing string, the user and role, the amount mantissas and exponents, and the database, schema, table and record identifiers. That last group matters more than it looks — a pointer to the exact customer row a transaction touched is a de-anonymisation index if left in the clear, whatever else is protected. The sealer and its schema exist and are exercised by tests, and organisations.tenant_sealed_fields is present in the live schema — but measured 2026-10-02 it held zero rows, against 33,964 rows in trace.slab_anchors on the same tier. No record has been sealed in a running deployment. This is the intended floor for the content-receiving Modes and the current direction of travel, not a capability available today.
3 — Customer-key encrypted Only the customer — Tx-Rails genuinely cannot decrypt, even in principle Depends on the field — nothing, if the platform never validated that field’s content anyway; the rest of the cross-check catalogue, for the narrower case where we are expected to validate data only the customer can read Already solved today for fields Tx-Rails never validates. Genuinely open only for the narrower case where we are expected to validate customer key-encrypted data.
4 — Partner-key encrypted Only a named third party the customer chooses (a manufacturing partner, a regulator) — asymmetric, multi-recipient N/A — separate key-management machinery layered on top of Rung 3 Undesigned. No code anywhere.

Rung 1 — Plaintext: what every content-receiving Mode ships with today

Whatever structured content a customer’s chosen Mode (B, C, or D) delivers, it arrives unencrypted, and Tx-Rails’ own validators read it directly — the same fields our referential-integrity and cross-field checks already parse. This is where every real deployment sits today: Mode A never receives content at all (stricter than even this rung — see “Why Mode A is the most private option” below), and none of B/C/D has shipped a visibility control yet. Full ChubbyChecker checking is available at this rung by construction, since nothing is hidden from the validators those checks run against.

Rung 2 — Platform-key encrypted: concretely scoped, not yet wired

The customer explicitly consents to Tx-Rails being able to read a field, in exchange for the platform keeping the ability to independently verify it. The concrete, scoped use case is amounts-constancy checking — proving a business record’s numeric values didn’t silently change between submission and recording, a check cc029‘s own amount-field-consistency logic already performs today, in plaintext. The design: encrypt one generic positional array (mantissa/exponent big-int pairs, no field names — the same shape the Trace’s own int64Amounts/int32Exponents already use) under Tx-Rails’ own key immediately after it’s copied from the source record, then decrypt both the pre- and post-submission arrays to compare plaintext values — never comparing ciphertext directly, since AEAD’s fresh-nonce-per-encryption means an unchanged value never re-encrypts to the same bytes twice. This reuses the Encryptor/KeyProvider mechanics already live for the ten Trace fields the sealer covers (ClientNodeID, TxSignStr, UserID, RoleID, Int64Amounts, Int32Exponents, and the Database, Schema, Table and RecordID row pointers — counted from the sealing code itself, 1 October 2026; this page previously said six, which predated the four row-pointer fields) — extended to one more generic array, not a new system. Since the independent constancy check should run inside ChubbyChecker rather than the validator itself — that’s the entire point of an independent auditor — chubbychecker-joint now has its own KeyProvider/Vault wiring (2026-08-17, mirroring org-server-abci‘s construction exactly), and the constancy check itself is built on top of it: cc-bpd-038 compares the raw, consensus-agreed submitted amounts against the decrypted, quorum-verified persisted amounts across every configured replica, positionally. Verified end-to-end against a real single-node goldbftd + org-server-abci + chubbychecker-joint stack plus a real Vault dev-mode container, both directions: a genuinely-committed, genuinely-encrypted transaction’s amounts matched cleanly (no finding); the same persisted row, then directly corrupted, was correctly caught as CatastrophicFailure once chubbychecker-joint rechecked that block height. Full design: structured-atom-privacy-ladder-design.md, Rung 2.

Rung 3 — Customer-key encrypted: solved for one case, genuinely hard for another

Tx-Rails genuinely cannot decrypt — not “chooses not to,” structurally cannot. This splits cleanly into two cases. Fields the platform never validates — free text nobody cross-checks — are already solvable today, with zero new engineering: store the value as a blob addressed by its own content hash, exactly the way content-store already handles bulk attachments (documents, images, scans) under Mode D, and put only the hash in the atom’s payload. This is Rung 1’s own opaque-reference pattern applied to a structured field’s free text, not a new capability — it’s why Mode D’s bulk-attachment path can honestly claim genuine customer-key encryption today, with zero platform code changes, since content-store never parses what it stores. Fields the platform structurally needs to read — a foreign-key check like requireCoAAccountExists, a cross-field consistency check, a typed column another table’s constraints depend on — are where the real tension lives: the platform cannot validate a value it cannot see, so if it can decrypt to validate, this rung’s core property no longer holds for that field. This narrower case is a real ~6–9 month build (struct-tag classification, a customer-supplied-KEK KeyProvider, ChubbyChecker cross-checks that shift from validating content to validating ciphertext/AEAD-tag integrity, mirroring the shift the already-encrypted Trace fields already require of any consumer) — scoped per-field, per-atom, once a real customer need names the specific field, not a platform-wide rollout.

Rung 4 — Partner-key encrypted: undesigned

The customer encrypts for a named third party’s public key — a manufacturing partner, a regulator, a downstream counterparty — not for themselves. See “Sharing content with manufacturing partners” below for the sketch. This is a different key-management model (asymmetric, multi-recipient) layered on top of whichever of Rungs 2 or 3 it applies to, not a variant of either — building Rung 2 or Rung 3 does not get this rung for free, since it’s separate key-management machinery. Nothing exists in code for this today.

Where each Mode sits on the ladder today: Mode A is stricter than Rung 1 by construction — it never sends content at all, so there’s nothing to encrypt or leak in the first place. Modes B, C, and D — once a customer adopts one — all ship at Rung 1 for structured fields; Rung 2 is concretely scoped but not yet wired into any of them; Rungs 3 and 4 remain undesigned for structured fields specifically. The one standing exception is Mode D’s bulk-attachment path through content-store, which already delivers Rung-3-equivalent privacy today for documents and images — just not for the structured fields sitting alongside them in the same Trace.


The Transaction Metadata Trace contract — what Tx-Rails actually sees

Every transaction processed by Tx-Rails generates a Trace record under a fixed, design-frozen 37-field schema — the substrate ChubbyChecker’s cross-checks run against. The schema does not vary by customer, deployment, or integration mode: every transaction across the platform produces a Trace of exactly this shape, which is what makes the contract auditable by a technical reviewer independent of which integration mode a given customer uses.

What varies by mode is which of those 33 slots actually get filled. Under Mode A — the only mode that is a packaged, adoptable product, though no customer has been onboarded through it — only the identity/location-pointer, cryptographic-commitment, BFT-consensus, and operation-discriminator fields are populated (tenant boundary, transaction id, block/slab position, the hash itself, block id/height, op-code tags). The fields that would carry business content, quantitative facts, or semantic intent are, by design, empty: Tx-Rails never receives that content under Mode A. Each of the three reference implementations, once a customer adopts it, fills the rest — business content and explicit semantic intent (RequType) all flow through ExecuteActionRequest today — this is one fixed contract with mode-dependent fill, not four different schemas. Two of the 33 (isTower/counterIsTower, used for Regime C peer selection — see §4 of the Global View below) are newer additions at the proto level (CoreMeta fields 64/65, orgnodes-overseer@8e2e40f); the trace-store’s own Postgres schema carries both, though their value stays false/false today since nothing upstream sets CoreMeta‘s IsTower/CounterIsTower yet.

Channel Visibility today (Mode A) Purpose
Transaction Metadata Trace Tx-Rails (always); ChubbyChecker auditors (always) — for the identity/crypto/BFT/discriminator fields that Mode A actually populates The cryptographic envelope around the transaction — the substrate the ChubbyChecker checks run against
Content Customer (always); Tx-Rails: never, under Mode A. Under the Mode D reference implementation, once a customer adopts it, Tx-Rails receives structured payload fields as sent — no field-level encryption or visibility controls yet for those. Bulk attachments (documents, images, scans) are the exception: routed through content-store, which never parses what it stores, so customer-key encryption for those is a real, working convention today, not undesigned — see the Mode D section above. Structured-field customer-key encryption remains undesigned regardless of mode. The actual business payload — descriptions, party names, document attachments, free-text fields, anything strategic. Not sent to Tx-Rails today, under any circumstances.

The 33 fields, by category

Category Fields What they expose to Tx-Rails
Identity & location pointers (populated under Mode A) federationId, counterFederationId, recordId, txId, sector, pyramid, counterSector, counterPyramid, entnum, counterEntnum, dataCentre, counterDataCentre, country, counterCountry, database, schema, table, clientNodeId, userId, roleId, isTower, counterIsTower Opaque tokens — who, where, and which slot, in an externally-anonymous form. A user ID is a verified but opaque tenant marker, not a name. A table reference is the schema slot, not the business meaning. The mapping from token to human-readable identity stays on the customer side. isTower/counterIsTower are a routing flag pair (which of national-meta-federation vs national-aggregators is the Regime C peer), not identity in the same sense as the rest of this row — grouped here for lack of a better-fitting category.
Cryptographic commitments (populated under Mode A) hash (sha256 digest), txSignStr, merkleRootHex Pure cryptographic objects. No business meaning. The hash is a sha256 of the signing string, computed by us — it is not itself the Merkle leaf. The leaves this pipeline anchors are CometBFT block hashes, so an inclusion proof for one transaction reaches the anchored root through CometBFT’s own transaction and header trees rather than through this field. The signature establishes provenance; the Merkle root is the block-level commitment.
BFT consensus metadata (populated under Mode A) blockId, slabId, blockHeight Where the transaction lives in the ledger — block, slab (the block-group anchored to Hedera), height. Reveals nothing about content.
Operation discriminators (populated under Mode A) opCodeExec, opCodeCommit, reqType Tags identifying the kind of operation (commit / pre-commit / read / etc.) without exposing what the operation is about.
Quantitative facts (empty under Mode A — see below) int64Amounts, int32Exponents Numeric values, decoupled from unit and meaning, once a customer adopts a content-receiving mode (Mode D today). Tx-Rails would see that a transaction had value 12345 × 10⁻² — not whether that’s USD, GBP, tonnes of grain, hours of labour, or kilowatt-hours. Not sent at all under Mode A.

Why Mode A is the most private option, not the least

Because Tx-Rails never receives transaction content at all under Mode A, there is no leakage question to manage the way there would be for the content-receiving modes above. A Tx-Rails operator looking at a Mode A Trace sees only that some opaque, verified entity committed some operation at some block height, with cryptographic proofs attached — identity tokens, hashes, consensus housekeeping, and operation tags, none of which carry business meaning by construction. That’s not a current limitation to work around; it’s the actual privacy property Mode A is built to provide.

All three roadmap modes, now that all three are deployed and committing, already expose this gap concretely: any customer who adopts one of them sends Tx-Rails full, unencrypted structured content today (the fields our server-side validators parse and check referential integrity against — amounts, descriptions, party references), sitting at Rung 1 of the Data Visibility Ladder above. Each still needs its own move up that ladder for content-level visibility — starting with the amounts field, which is the one place any substantive information would leak, and even then only pseudonymously (the numeric value visible, the unit and meaning not). The one exception: Mode D’s bulk-attachment path (documents, images, scans — anything routed through content-store rather than a structured field) already sits at Rung 3 today, with zero platform code changes, since content-store never parses what it stores — see the Mode D section above.

Amounts specifically: one rung now concretely scoped

For customer audiences whose threat model would treat any quantitative leakage as a sovereignty breach — defence aviation, export-controlled goods, certain competitively-sensitive industries — the amounts field is the sharpest instance of the general Data Visibility Ladder above, since it’s the one place a content-receiving Mode currently exposes any substantive information at all. Today, once a customer adopts one of the three content-receiving reference implementations, amounts sit at Rung 1 (plaintext) like every other structured field. Rung 2 (platform-key encrypted) is the one concretely scoped beyond the sketch — see the Ladder section above for the full design, and structured-atom-privacy-ladder-design.md for the underlying detail. Rungs 3 and 4 remain undesigned for amounts specifically, for the same reason they’re undesigned generally: amounts are exactly the kind of field the platform structurally needs to read (constancy checks, conservation-of-amounts cross-checks), the harder case Rung 3 describes. The honest answer for a customer who needs true customer-key privacy on amounts specifically, today, is still “Mode A already gives you the strictest version of this for free, because we don’t receive amounts at all yet.”

What this means for ChubbyChecker

ChubbyChecker’s cross-checks operate on the Trace, not on the content — and today, on only the categories Mode A actually populates. They verify:

  • Signature validity against the validator’s public key (cryptographic commitments category)
  • Merkle inclusion of each transaction in the slab root anchored to Hedera (cryptographic commitments + BFT metadata)
  • BFT quorum and proposer evidence at the relevant block height (BFT metadata)
  • Operation-code sequence consistency (discriminators)
  • Identity-token consistency across related transactions (identity pointers)
  • Slab-anchor cross-references (BFT metadata + cryptographic commitments)

Checks that depend on quantitative facts — conservation of amounts across operation pairs that should balance, range checks, pattern checks — have nothing to run against under Mode A, since amounts are never sent. They activate once a customer adopts a content-receiving mode (Mode D today). None of the checks above need to see content to work today; integrity at the cryptographic and consensus level is fully provable without business-semantic visibility.

And the checks always have something deterministic to verify against: every atom executes from block-deterministic inputs only — the BFT-consensused block time (never a wall clock) and deterministic record IDs — so every replica re-derives byte-identical state from the same transaction stream. This is enforced in the codebase by an automated test that rejects any wall-clock use in atom code. It is the property that makes ChubbyChecker’s divergence detection meaningful: a state mismatch can only be a fault, never benign non-determinism.

Sharing content with manufacturing partners (roadmap)

This presumes Tx-Rails is receiving content — true for Mode D’s reference implementation today, still false under Mode A. It’s not built even for Mode D, though: the outbox-relay passes the raw payload straight through, with no partner-encryption mediation layer. The sketch, for when it applies: content destined for a manufacturing partner, regulator, or counterparty would use a customer-side asymmetric mechanism — the customer encrypts the content under the partner’s public key, and only the partner can decrypt. Tx-Rails would mediate the exchange by validating that the corresponding Trace is structurally consistent and cryptographically committed, without ever decrypting the content itself. The partner relationship and the integrity guarantee stay decoupled. Not available today.


FAQ — common customer-architect questions

These are the questions customer architects and technical-due-diligence reviewers tend to raise once they’ve absorbed the Mode A / roadmap distinction and the Kademlia overlay (see kademlia-edge-overlay.md). The answers below are the recommended canonical responses; adapt phrasing to the audience but do not deviate from the substance without checking back to memory.

Q1. Are your domain-specific actions completely redundant for a Mode A customer?

Short answer: Dormant for you, not redundant for the platform.

Long answer:

Tx-Rails ships with a large library of transaction-schema actions spanning many business domains — asset maintenance, banking, healthcare, housing, food and beverage, mining, manufacturing, energy, transport, real estate, pharmacies, construction, aviation, procurement, and a full finance/accounting domain (budget, chart of accounts, P&L+BS, accounts receivable, bank reconciliation, payroll, tax). Each one is the validation + persistence schema for a specific business event committed to the tx-rails BFT state machine.

A Mode A customer invokes exactly one of them: a generic HashAttestation action. The rest are dormant for that customer’s day-to-day operations. They are not removed from the platform because:

  1. The breadth is itself a pitch asset. A large, mature action library demonstrates platform maturity to a CIO or investor evaluating fit, and shows the shape the substrate path can grow into.
  2. They are the eventual upgrade path. A customer who starts in Mode A but later wants stronger audit guarantees can move to one of the roadmap modes, each now reachable via its own reference implementation, without a platform redesign. The schemas are already there, waiting on the ingestion side that connects to them.
  3. Unused schemas have zero runtime cost. A validator that never receives a given action type never invokes its handler. The cost is container image size and codebase surface, not production compute or latency.

The honest framing for a Mode A customer: “Most of the platform’s schema depth is dormant for you today. You get the underlay capabilities — cryptographic anchoring, tamper-evidence, cross-jurisdictional verifiability — without any schema-integration cost. If you ever want stronger audit guarantees, the upgrade path is in place; it just isn’t built yet.”

Q2. Is Kubernetes a requirement for us as a customer?

Short answer: No.

Long answer:

The tx-rails platform infrastructure itself runs on Kubernetes (microk8s clusters for workload BFT validators and Patroni replicas) plus LXD (machine charms for the ChubbyChecker auditor mesh — the parallel orchestration stack reinforces the BFT-independence story). This is a deployment-side concern for the tx-rails operator; the customer does not deal with it directly.

The customer’s existing infrastructure is irrelevant to our K8s usage. The customer’s legacy front-ends and databases continue to run wherever they run today — mainframes, traditional VMs, hosted SaaS, the customer’s own container platform. Mode A asks the customer to add a hash-publish call to their commit path; this is a small library call, not an orchestration change.

The customer’s edge devices, if any participate in the Kademlia overlay, do so via libp2p, which is a library compiled into the device’s runtime (mobile, IoT, branch-server, point-of-sale). No containers, no Kubernetes required for that either.

The one forward-looking case where K8s becomes relevant on a customer’s side: if the customer later chooses to host their own tx-rails BFT validator or auditor node — analogous to a bank hosting its own SWIFT node rather than using a shared one — they would need K8s or LXD on their infrastructure to host the validator stack. This is optional, typically a Y2-Y3 conversation for customers with operational maturity to run a BFT node, and not part of an initial deployment.

In short: tx-rails has an opinion about its own deployment substrate (K8s + LXD). It has no opinion about the customer’s deployment substrate, and the customer is free to run anything they like.

Q3. If most of the action schemas are dormant for our Mode A integration, are we paying for unused complexity?

Short answer: No — the unused schemas have zero runtime cost to a Mode A customer.

Long answer:

The schemas exist in the validator container images, but a validator that never receives, say, a MaintenanceCostRecord action will never invoke its handler. There is no per-schema runtime cost; only the cost of the actions that actually flow through the system, which for a Mode A customer is HashAttestation and nothing else.

The cost of carrying the unused schemas is in container image size (megabytes) and developer cognitive load when reading the codebase, not in production runtime, throughput, latency, or compute spend. The customer is not paying for unused complexity in any operational sense.

Q4. Can we start in Mode A and migrate to a deeper mode later without a forklift upgrade?

Short answer: That’s the intent of the design — and it’s now a real path for all three deeper modes, each via its own reference implementation, not just a design intent.

Long answer:

The platform is architected so that a Mode A → Mode D migration, using Mode D’s now-built core mechanism, operationally looks like:

  1. Identify which transactions in the customer’s legacy system the customer wants to dual-write to tx-rails.
  2. Map each transaction type to a tx-rails action from the existing schema library (or, in the rare case the customer’s transaction type isn’t already modelled, write a new action — a one-day engineering task for a typical domain).
  3. Add the tx-rails write to the customer’s commit path, via the outbox pattern Mode D actually ships with (the reference implementation in connectrpc/services/org-gateway/cmd/dualwrite-relay — see the roadmap section above).
  4. Keep the Mode A hash-attestation in place for older transactions — historical data anchored in Mode A remains verifiable, while new transactions are mirrored fully via the newer mode.

The same shape applies to a future Mode A → Mode B (CDC, no commit-path change, an added stream subscriber) or Mode A → Mode C (a gateway added in front of the API edge, a DNS/load-balancer change) migration.

In all cases, the underlay infrastructure already deployed for Mode A would continue to operate unchanged — the migration is additive, not a replacement. All three modes’ core mechanisms are real today, though a migration still means a customer’s own team adapting a reference implementation (the outbox-relay, the edge-gateway route config, or the cdc-observer table mapping), not flipping a switch, and no customer has actually made any of these migrations yet. Say that plainly rather than implying any of this is a phone call away.

Q5. Does the Kademlia overlay add value if we never adopt a deeper mode?

Short answer: Partially, today — the overlay itself is a mix of built and roadmap, independent of which data-plane integration mode a customer runs.

Long answer:

Even a customer locked to Mode A can use the Kademlia overlay described in kademlia-edge-overlay.md — but be precise about what’s actually shipped versus sketched there, per that document’s own implementation-status table:

  • Serverless peer discovery + JWT-gated stream auth — built and live today. Edge devices, branches, and partner-org nodes find each other without a central directory.
  • Content-addressed verification (fetching a record and checking it against a published commitment) — roadmap, individually scoped against the security workplan.
  • Pub/sub at the edge (gossipsub) — roadmap, same workplan track.
  • Cross-org and cross-jurisdiction routing — partial: discovery works today; enterprise-CA identity and permissioned membership are roadmap.

For many customers in regulated verticals, peer discovery alone is a genuine capability their existing legacy stack doesn’t provide, at no additional integration cost — it piggy-backs on the same peer mesh the BFT validators use. The other three overlay capabilities are real, scoped, workplan-tracked direction, not currently live; don’t present them as available without checking that workplan’s current state first.

Q6. What if our edge devices can’t run libp2p (embedded, very low RAM, no networking flexibility)?

Short answer: A lightweight gateway pattern works — a libp2p-capable proxy device represents the embedded devices in the overlay.

Long answer:

libp2p requires a few megabytes of RAM, a TCP/IP stack, and the ability to maintain outbound connections. Most modern embedded devices (anything with an ARM Cortex-M4 or above) comfortably meet this. For genuinely constrained devices (older sensors, simple meters, single-purpose IoT with no spare memory), the standard pattern is:

  1. Deploy a libp2p gateway device at the edge cluster — typically a branch-server or industrial PC.
  2. Constrained devices speak whatever local protocol they speak (MQTT, Modbus, BLE, LoRaWAN, raw serial) to the gateway.
  3. The gateway translates between local protocol and overlay primitives. It holds the device’s certificate or proxies on behalf of an authenticated upstream identity.

This is the same gateway pattern most IoT deployments already use for protocol translation — nothing unusual here. As with Q5, note that today the gateway rides on the peer-discovery layer that’s actually live; the enterprise-CA identity story it references is itself part of the roadmap, not shipped.


Edge cases that refine but do not invalidate the framework

Greenfield customers (no front-end to preserve)

The framework applies but the framing shifts. With no existing system to preserve, the pitch is not “underlay” (sit beneath what you have) but “substrate” (build your new system on top of us) — using the compose-with-Atoms path described above, not the deeper integration modes in the roadmap section, which are irrelevant here regardless of build status: greenfield customers have no existing write path to dual-write alongside in the first place.

Bulk-payload workloads (documents, multimedia, large signed PDFs) — core mechanism built

Relevant once a customer actually adopts Mode D’s reference implementation — Mode A never receives payload content, bulk or otherwise. CometBFT’s own transaction-size ceiling (~1MB, unmodified across this platform’s deployments) makes it structurally impossible for Mode D’s outbox-relay to carry bulk content through the chain directly, so it never does: a real, working content-store reference implementation (connectrpc/services/content-store) now exists, built and verified end-to-end against a real chain 2026-08-16. The deployment pattern is exactly the one this document originally sketched, now real rather than anticipated:

  • Bulk content is uploaded once to content-store (content-addressed by its own SHA-256 hash — the server computes it, a caller can’t claim one that doesn’t match) — a local-filesystem-backed reference implementation today, same “reference, not packaged product” bar as Modes B/C/D themselves; a production deployment swaps in an S3-compatible backend via the same three-method Store interface, no other code changes needed
  • Canonical transaction metadata + the content hash flows through Mode D’s atomic dual-write — no proto or outbox schema change needed at all: the existing HashAttestationAction atom (unmodified) already carries exactly a content_hash field, the same pattern Mode A itself uses
  • The hash in the underlay binds the metadata to the content; content is independently retrievable and hash-verifiable from content-store at any later point

Verified concretely: a 3MB blob (well over CometBFT’s own ~1MB tx ceiling) uploaded to content-store, committed on-chain as a 64-byte hash reference via the unmodified HashAttestationAction, and independently retrieved back byte-for-byte with its hash re-verified. This is Mode D in spirit — the audit chain unbroken — handling bulk data efficiently. Like the rest of Mode D, this is a reference implementation a customer’s own team adapts, not a packaged product yet, and no customer has been onboarded through it.

Air-gapped / public-DLT-prohibited environments

Some regulated environments (defence, national-security, certain financial-services back-offices) prohibit anchoring any data — even Merkle roots — to a public distributed ledger like Hedera. Mode A still works within the customer’s own network in this case: hash attestation and BFT cross-validation are unaffected. What’s lost is the cross-jurisdictional verifiability story — a third party outside the customer’s network can’t check Hedera to verify anything, because nothing was anchored there. The audit chain becomes verifiable only by parties the customer admits to their own network. For most regulated commercial workloads, Hedera anchoring is permitted and the full cross-jurisdictional story holds.

Data sovereignty without public-DLT prohibition

A more common variant of the above: customers (especially government and critical-infrastructure) require the source-of-truth to remain in-jurisdiction. Mode A already satisfies this by construction — Tx-Rails never receives the transaction content at all, so there’s no content to keep in- or out-of-jurisdiction. Only the hash and the block-slab Merkle roots leave the customer’s control, and the latter go to Hedera by design. Mode D, now that it’s built, needs its own sovereignty answer for customers who adopt it — that’s future work, not a gap in Mode A today.


What this document is and is not

This document describes the integration pattern that’s actually built, and is explicit about what’s roadmap rather than reality. It is deliberately silent on:

  • Specific protocol details (gRPC schemas, retry semantics, secret management)
  • The BFT consensus implementation (CometBFT / goldbftd internals)
  • The ChubbyChecker cross-check catalogue
  • The Hedera anchoring cadence and cost model
  • Per-vertical regulatory framings (covered in vertical-specific pitch documents)

For those, see underlay-integration-patterns.html for Mode A and the same honest roadmap framing, tx-rails-master-pitch.md for the cross-vertical narrative and financials, and the CLAUDE.md at repo root for the BFT architecture summary.


How to choose: a quick decision tree

  1. Does “this record existed, unaltered, at this time” satisfy the audit requirement?
  • Yes → Mode A is not just sufficient, it’s the right fit, today, as-is.
  • No, independent content re-verification is required → check whether the claim is genuinely multi-party (two independent submitters whose claims must agree) or single-party. Genuinely multi-party: that’s Regime C’s bilateral predicate, already built. Single-party (e.g. “is this balance sufficient,” “is this KYC status current”): there’s no independent fact to check it against regardless of which mode delivers the content — say so plainly rather than implying a roadmap mode will eventually cover it. If inline rejection specifically is what’s needed, Mode C’s reference implementation provides it today, fail-closed by design.
  1. Is explicit semantic-intent tagging (REVERSAL vs CORRECTION vs RESTATEMENT) a compliance requirement?
  • Yes → this is Mode D territory specifically; the core mechanism (real RequType values, verified end-to-end) is built, but flag the reference-implementation caveat — it’s not a packaged product a customer installs, and no customer has been onboarded through it yet.
  • No → Mode A’s proof-of-existence guarantee is enough.
  1. Is public-DLT anchoring permitted in the customer’s regulatory environment?
  • Yes → standard architecture, Merkle slab roots → Hedera.
  • No → in-network anchoring only; document the cross-jurisdictional verifiability gap as a constraint. Mode A itself still works either way.
  1. Is this a greenfield build?
  • Yes → frame as “substrate”, compose with Atoms from day one.
  • No → frame as “underlay”; Mode A today, be explicit that Modes B/C are roadmap and Mode D is a real but unpackaged reference implementation.

Why hash-only still holds up across verticals

Every customer scenario in every vertical can use Mode A today for exactly what it’s good at: proving a record existed, unaltered, at a specific time, verifiably by a third party who trusts nothing about Tx-Rails or the customer. Independent content re-verification isn’t something any of Modes B/C/D are missing — it’s only structurally possible where two independent parties each submit a claim about the same event, and that’s Regime C’s bilateral settlement predicate, not a gap in the integration modes. Explicit semantic-intent tagging is available now via Mode D’s reference implementation, but not through Mode A itself:

  • Banking / FCA financial services: Mode A gives proof-of-existence and tamper-evidence for every payment / KYC event / suitability decision today. Balance sufficiency is a single-party claim — Tx-Rails has no independent fact to check it against regardless of which mode delivers the content, so this isn’t a gap to close. Authorisation chains that are genuinely multi-party (two independent parties’ claims must agree) are Regime C’s shape, not something Modes B/C/D need to add; inline rejection of fraud-flagged transactions at the API edge is available now via Mode C’s reference implementation, fail-closed by design.
  • UK Social Housing (Awaab’s Law, Consumer Standards): Mode A gives tamper-evident, third-party-verifiable proof of repair tickets and tenant communications today — the audit-grade evidence is the compliance product even at this level. Full-payload content evidence is available via Mode D’s reference implementation now.
  • NSW Health / TGA UDI / GS1 chain-of-custody: Mode A anchors every supply-chain event’s existence today. The bulk-data content variant for clinical documents is available now via Mode D’s content-store reference implementation (see above).
  • Defence / national security supply chain: Mode A works today with the air-gapped refinement — in-network verifiability without Hedera anchoring.
  • Frozen-vendor enterprise: Mode A is the right and sufficient starting point today; Mode B (CDC observer) is the natural next step via its reference implementation, for vendors whose application source can’t be touched.
  • Greenfield regulated build: substrate framing (compose with Atoms) from day one — not the roadmap integration modes.
  • Proof-of-existence regulatory regimes: Mode A is sufficient and cheapest, today, as-is.
  • Customer with a clean API edge (new-deployment SaaS, government service-delivery program): Mode A works today; Mode C (gateway-mediated, deterministic JWT-based attribution, fail-closed inline rejection) is the natural upgrade via its reference implementation.

This is the right level of generality for an investor pitch and a customer technical conversation. Pitch the underlay philosophy first; be upfront that Mode A is the one real, fully-packaged integration path today; introduce Modes B, C, and D as real, verified core mechanisms that are each reference implementations, not packaged products yet.


What would stay true across all four rungs of the Data Visibility Ladder, once it’s fully wired

Today there’s nothing to choose — Mode A never sends amounts (or anything else) at all, so the question is moot and the answer is already stricter than any rung by default, at zero configuration cost. Mode D now receives content (unencrypted, at Rung 1), so the “nothing to choose” framing already doesn’t hold for Mode D adopters even though Rungs 2–4 remain mostly unwired. Once the higher rungs are actually wired in — for Mode D, or for Modes B/C once they exist — the design intends for this to hold regardless of which rung the customer picks:

  • The other 31 of the 33 Trace fields are unaffected — identity tokens, cryptographic commitments, BFT metadata, and operation discriminators behave identically, exactly as they do under Mode A today.
  • ChubbyChecker still runs the cryptographic-integrity checks (signature validity, Merkle inclusion, BFT quorum, slab anchoring), which are the load-bearing safety net — true today, under Mode A, already.
  • The content channel splits in two: structured fields (descriptions, party names in plaintext, other validated payload fields) would move up the Data Visibility Ladder as each rung gets wired — Rung 1 is the only one live for structured fields today, for any mode. Documents/bulk attachments are different: Mode D’s content-store path already sits at Rung 3 today, zero platform changes needed, since content-store never parses what it stores. Under Mode A, no content of any kind is visible to Tx-Rails at all — not encrypted-and-withheld, simply never sent, which is stricter still than any rung.
  • The Hedera slab-anchoring guarantee — cross-jurisdictional tamper-evidence via a public ledger — is intended to work identically whichever mode eventually gets built; it already works this way under Mode A.

The amount-visibility choice is purely about how much numeric information Tx-Rails sees for the cross-checks, once there’s numeric information for it to see at all — true today for Mode D adopters, unencrypted (Rung 1). Of the Data Visibility Ladder’s rungs, only Rung 2 (platform-key encrypted) is concretely scoped so far for amounts specifically (keeps that visibility, just protected against a storage breach or network intercept) — see the Data Visibility Ladder section above.

__________________

PART 3: The Global View: Tx-Rails Data Procesing and Smart Contracts EITHER in your own Datacentre or in a public Cloud

 

Tx-Rails
Federation Trust Model +
Inter-Federation/Pyramid/Sector Trade

Decision date: 2026-05-23. Authors: ITOTCCA architecture. Status: ratified — adopted as the production default for all vertical rollouts (energy, mining, supermarkets, transport, IIoT, finance, housing, health, aviation).

 


1. The core decision

One business network installation = variable number of tx-rails federations = one pyramid.

A group of federations in tx-rails terms is now defined by a four-way equivalence:

  • Business Federation — the commercial scope (e.g. Sector = Energy; Federations = electricity-generation in the UK, gas-midstream in EU. Sector = Supermarkets; Federation = meat-processing in AU). Identified by a human-readable name (tx-rails-energy-generation) and a numeric federationId: int64 carried on every transaction.
  • Either:
    1. Pyramid — the assembled hardware stack of 4 BFT meshes (2 workload — member-classes / overseers — plus 2 auditor mirrors) deployed on dedicated virtual machines. Denoted by an int64 integer and a name. OR:
    2. Tower — the most isolated hardware stack of 8 BFT meshes (4 workload — member-classes / overseers / aggregators / tophats — plus 4 auditor mirrors) deployed on dedicated virtual machines. Denoted by an int64 integer for “Pyramid” (in place of “Tower”).
  • Sector — the assembled stack of Pyramids (or a single Tower) within the boundaries defining a sector (eg the Energy Sector). Denoted by an int64 integer.
  • Member set — the cohort of organisations authorised to transact in their pyramid or tower, each scoped by its own entnum.

Your access to the Tx-Rails Smart Contract System is for a small blockchain-equivalent system running on the network you lease ie on PostGIS databases.

These four are co-extensive. Adding a federation does not necessarily mean provisioning a pyramid (except for the Tower Shape and Shape 1, where 1 federation = 1 pyramid – see below) because an appropriate Pyramid may already exist. Decommissioning a pyramid means retiring one federation (the Tower Shape and Shape 1) or a group of federations (Shapes 2 and 3). A federation has no hardware footprint without its pyramid or tower; the pyramid or tower has no business meaning without the federation(s) it carries.

Why Shape 1 is the default

  1. Allowing the Tower Shape to take its place as the ultimate in isolation, Shape 1 represents the next strongest possible trust isolation, whilst still allowing cross-pyramid transacting. Different BFT validator pools per federation. A compromise of one federation’s mesh cannot propagate into another, because there are zero shared enterprise data replicas. Software-level multi-tenancy via entnum is much weaker than hardware separation, and the regulators + procurement teams we sell-to recognise this distinction.
  2. Sovereignty story holds. For both the Tower Shape and for Shape 1 a UK federation’s hardware sits in UK data centres; an Australian federation’s hardware in Australian data centres. There can be no cross-pyramid commingling of enterprise data with only audit metadata at the aggregator/anchoring layer being mixed, in the case of Shape 1, to allow audited cross-pyramid transacting (and even then, still confined within data centre/national boundaries). Holds up under UK Social Housing Regulator scrutiny, EU GDPR Article 44 transfer rules, Australian APRA CPS 234, and equivalent obligations across the verticals we target.
  3. Clean commercial unit. “One business network = one federation = one pyramid = $X / month” is a unit a procurement team can sign off on without a security review on multi-tenancy. The cost line is legible, the upgrade boundary is legible, the SLA boundary is legible.
  4. Independent rotation + upgrades. Each federation can run its own change-management window across its 4 or 8 VMs. Regulated customers that cannot co-ordinate upgrades with their peers in the sector get the autonomy they need.
  5. Per-pyramid DID trust list. Each pyramid has its own gateway with its own Elastos-DID trusted-issuer list. Generators authenticate to one trust list; regulators to another. No cross-cohort permission machinery required.
  6. No premature compression of trust boundaries. Two federations might share regulators today but diverge tomorrow. Hardware separation is reversible upward (you can always merge later); software multi-tenancy is irreversible downward (once you co-locate, separating is a migration).

Cost (per-federation sovereign sizing)

  • 4 VMs per pyramid (production sizing ~32 GB RAM per VM, so ~128 GB (Shape 1) or ~256 GB per pyramid (Tower).
  • Shape 1: 26 energy federations × 4 = 104 VMs at full energy rollout (if every federation gets its own pyramid).
  • Across the eight verticals we target at scale (~246 federations), the maximum per-federation sovereign upper bound is ~984 VMs at Shape 1 (246 × 4) and ~1,968 VMs at Tower (246 × 8). This is the upper bound, not the operating shape — see the Shape 2 figures below.

This per-federation-sovereign sizing is only part of full-vertical-rollout and is the upper bound, not the expected operating shape. Charter-member onboarding typically lights up 1–3 pyramids at a time; the operating-cost ramp is incremental and matches revenue ramp. At full scale, most customers will deploy the grouped-pyramids shape (next section) rather than (taking the Energy example) 26 sovereign pyramids per vertical.

In addition to this, each overall vertical sector must carry one set of 4 virtual machines enabling cross-pyramid transacting. These are 2 virtual aggregator machines and 2 mirrored auditing virtual machines.

Deployment shapes — the four production patterns

The trust model above hints at possible deployment shapes. Four production patterns coexist and tx-rails supports all of them. Customers choose by jurisdictional + regulatory + cost trade-off.

Both manual and Automated trading is possible, where IIoT devices such as sensors, meters and general telemetry cou;d trigger smart contracts for fully regulated trade among and between Companies and Pyramids, including international trade.

______________________________________

In the following, icons such as:
MINDERS represent Virtual Machines

_____________________________________

National-Meta Pyramid

as Intra/Extra Sector Tower/Shape Coordinator

MINDERS
commercial-exec
MINDERS
audit-comm-exec
MINDERS
governor
MINDERS
audit-governor
Single Detached Pyramid 1 Federation carried. Overseen by Human Governance. Virtual Machines Carried: 4 VMs. Governance Layer: 2 VMs
National-Meta-Pyramid National-Meta-Federation 4 VMs: member-classes, audit-m-c, overseers, audit-overseers

_____________

The Tower: — Per-federation sovereign (premium-plus tier)

X federations, one Tower, 4 dedicated VMs/federation, sharing no validators with other federations. Strongest trust isolation; highest cost.

MINDERS
intra-member-classes-1
MINDERS
intra-overseers-1
MINDERS
audit-member-classes-1
MINDERS
audit-overseers-1
  • 4 VMs in detached federation
  • When to use: All Trade between parties with at least one Tower-Side.
  • Customer profile: All Tower customers.
  • Price point: highest per-federation; lowest operational risk.

_____________

Intra-Meta Level for Single Tower of Pyramids X (0 < x < X+1) Federations overseen by Human Governance Meta-Level: 4 VMs: governance-meta, audi-gov-meta; aggregator-meta-data-centre; audit-agg-meta
Pyramid 1 Federation 1: 8 Operational VMs: intra-member-classes-1, intra-overseers-1, audit-member-classes-1, audit-overseers-1; aggregator-1-data-centre; tophats-1-data-centre; audit-agg-1; audit-tophats-1
Pyramid 2 Federation 2: 8 Operational VMs: intra-member-classes-2, intra-overseers-2, audit-member-classes-2, audit-overseers-2; aggregator-2-data-centre; tophats-2-data-centre; audit-agg-2; audit-tophats-2
etc etc etc
Pyramid X Federation X: 8 Operational VMs: intra-member-classes-X, intra-overseers-X, audit-member-classes-X, audit-overseers-X; aggregator-X-data-centre; tophats-X-data-centre; audit-agg-X; audit-tophats-X
  • 4 VMs per federation
  • When to use: federations with statutory sovereignty obligations (a national wholesale market operator), federations with explicit regulator demands for hardware isolation, federations that compete commercially with peers in the same vertical and cannot share infrastructure.
  • Customer profile: Tier-1 regulated utility, market operator, central bank-adjacent settlement layer, regulator running its own audit pyramid.
  • Price point: highest per-federation; lowest operational risk.

_____________________

National-Meta-Federation

as Sector-Shape 1 Coordinator

MINDERS
governor
MINDERS
audit-gov
MINDERS
comm-exec
MINDERS
audit-comm-exec

_____________

MINDERS
intra-member-classes-1
MINDERS
intra-overseers-1
MINDERS
audit-member-classes-1
MINDERS
audit-overseers-1
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS

 

 

 

 

_____________

Sector-Shape 1 — Per-federation sovereign (premium tier; the default we sell)

Shared Aggregator Level Aggregating, Coordinating Tx for, and Anchoring All Pyramids. Automated. 6 National Aggregators: xpyr-aggregator-data-centre; xpyr-tophats-data-centre; audit-agg-xpyr; audit-tophats-xpyr; xnet-gov-sector-data-centre; audit-gov-sector-data-centre
Sector-Shape 1 Pyramid Shape 1. One Federation carried per Pyramid 4 Virtual Machines Carried/Pyramid
Pyramid 1 Federation 1 intra-member-classes-1, intra-overseers-1, audit-member-classes-1, audit-overseers-1
Pyramid 2 Federation 2 intra-member-classes-2, intra-overseers-2, audit-member-classes-2, audit-overseers-2
Pyramid 3 Federation 3 intra-member-classes-3, intra-overseers-3, audit-member-classes-3, audit-overseers-3
etc etc intra-member-classes-x, intra-overseers-x, audit-member-classes-x, audit-overseers-x

_____________________

Nationa-Meta-Federation

as Sector-Shape 2 Coordinator

MINDERS
xpyr-governor-data-centre
MINDERS
xpyr-audit-gov
MINDERS
comm-exec-xpyr
MINDERS
audit-comm-exec

_____________

MINDERS
intra-member-classes-1
MINDERS
intra-overseers-1
MINDERS
audit-member-classes-1
MINDERS
audit-overseers-1
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS
MINDERS MINDERS MINDERS MINDERS

 

 

 

 

_____________

Sector-Shape 2 — Grouped pyramids by trust cluster (the realistic full-scale shape)

5–7 pyramids covering the (exemplary) 26 energy federations, grouped by coherent trust cluster — federations that already share regulators, members, and frequent transaction flow get co-located onto one pyramid. Multi-tenancy via entnum + CoreMeta.network within each pyramid; enterprise hardware separation across pyramids.

Example energy sector grouping:
Org & Overseers Levels Defining and Executing Transactions. 4 Virtual Machines: xpyr-orgnodes-data-centre; xpyr-overseers-data-centre; audit-orgnodes-xpyr; audit-overseers-xpyr Reason for grouping
Pyramid Federations carried 4 Virtual Machines Carried Why grouped
Wholesale + settlement market-ops, metering, payments, carbon-renewables (4) intra-member-classes-1, intra-overseers-1, audit-member-classes-1, audit-overseers-1 Same regulator (market regulator), same counterparty set, frequent inter-federation flow
Network operators generation, transmission, distribution, der-microgrids, flexibility, ev-charging (6) intra-member-classes-2, intra-overseers-2, audit-member-classes-2, audit-overseers-2 Different licensees but one network-codes regulator umbrella; shared dispatch flow
Retail + consumer retail, identity-kyc (2) intra-member-classes-3, intra-overseers-3, audit-member-classes-3, audit-overseers-3 Consumer-facing, consumer-protection regulator
Gas value chain gas-upstream, midstream, downstream, refining-lng (4) intra-member-classes-4, intra-overseers-4, audit-member-classes-4, audit-overseers-4 Different regulatory regime from electricity; coherent internally
Financial services overlay insurance, risk-compliance (2; payments may be in wholesale instead) intra-member-classes-5, intra-overseers-5, audit-member-classes-5, audit-overseers-5 Cross-vertical candidate (one pyramid serving energy + mining + transport)
Operational observability iot-scada, weather-geo, oems-maintenance, cybersec-soc, safety-operations (5) intra-member-classes-6, intra-overseers-6, audit-member-classes-6, audit-overseers-6 Cross-federation telemetry consumers; one pyramid serves all the operational federations

Cost: ~32 VMs covering 26 federations (7 pyramids × 4 VMs = 28, plus the 4 shared sector aggregator/auditor VMs) — ~69% cheaper than Shape 1 (26 × 4 = 104 VMs) and ~85% cheaper than Tower (26 × 8 = 208 VMs), with ~80% of the trust-isolation benefit.

Trust trade-off: Federations within a pyramid share validators. A bug in generation‘s action package cannot affect gas-upstream‘s state (separate pyramids), but could affect transmission‘s state (same pyramid). Defended by software gates (action-package isolation, per-network policy, entnum scoping) — but not by hardware separation. Acceptable for federations within an already-coherent regulatory cluster.

Inter-federation flows: Within-pyramid cross-federation flows are free (routed by network in the same state machine — no Mechanism 1–4 round-trip required). Cross-pyramid flows still use the eight mechanisms in §2.

When to use: this is the default we expect most full-scale customer deployments to land at. The per-federation sovereign shape (Shape 1) is what we sell; the grouped shape is what we operate once a customer has more than 3–4 federations on the platform.

Customer profile: Tier-1 retailer with 6 federations across the value chain; national network operator covering generation through distribution; consortium of 4 regulators sharing audit infrastructure.

_____________________

National-Meta-Federation

as Sector-Shape 3 Coordinator

MINDERS
xpyr-comm-exec-data-centre
MINDERS
xpyr-governor-data-centre
MINDERS
audit-comm-exec-xpyr
MINDERS
audit-governor-xpyr

_____________

MINDERS
intra-member-classes-1
MINDERS
intra-overseers-1
MINDERS
audit-member-classes-1
MINDERS
audit-overseers-1

_____________

Sector-Shape 3 — Single multi-tenant pyramid per jurisdiction (budget tier)

All federations within one jurisdiction (e.g. UK energy) carried on one pyramid. 8 Operational VMs total.

  • Substrate work to enable: per-network DID trusted-issuer lists (~1–2 weeks), per-network member-registry gating (~1 week), per-network audit-window scoping (~2 weeks). Total ~4–5 weeks beyond v1.
  • When to use: a single national regulator that wants one audit surface for all energy federations within its jurisdiction; does allow single point of failure; a pilot or test environment; a small jurisdiction where the trust gap between energy sub-sectors is small.
  • What you give up: granular regulator read-windows become harder (one pyramid carries all energy data; regulator filters by network); a single point of failure across the whole national energy sector; member-set commingling.
  • Customer profile: small-jurisdiction regulator running its own pilot, charter-member opt-in tier.
Nationa-Meta-Federation Level Coordinating Tx for all Pyramids. 4 National-Meta-Federation VMs: xpyr-comm-exec-data-centre; xpyr-governor-data-centre; audit-comm-exec-xpyr; audit-governor-xpyr
One Pyramid All Federations carried 4 Virtual Machines Carried
UK Energy market-ops, metering, payments, carbon-renewables, generation, transmission, distribution, der-microgrids, flexibility, ev-charging, retail, identity-kyc, gas-upstream, midstream, downstream, refining-lng, insurance, risk-compliance, iot-scada, weather-geo, oems-maintenance, cybersec-soc, safety-operations, meta-federation, authorities, audit-compliance intra-member-classes-1, intra-overseers-1, audit-member-classes-1, audit-overseers-1 (4 VMs)

_____________________

_____________________

National MerkleFunnel: All federations within one jurisdiction send all metadata to the Funnel.

National Merkle Funnel Level Calculating Merkle Roots for All Pyramids, Anchoring and cross-checking replays. 1 National Meta Federation: (gov; audit-gov) 4 Virtual Machines Carried: aggd; audit-agg; tophats; audit-tophats
MINDERS aggd-1 MINDERS tophats-1 MINDERS audit-agg-1 MINDERS audit-tophats-1

_____________________

FAQ (cont’d) Q7. What exactly does the “CDC observer” in Mode B do?

Short answer: cdc-observer subscribes to the customer’s Postgres database as a read-only logical-replication client. The legacy application is unmodified; every committed change is observed asynchronously and translated into a Tx-Rails action commit. This is built and verified against a real Postgres — see the Roadmap section above — as a reference implementation, not a packaged product yet.

Long answer:

CDC = Change Data Capture. It is a roughly two-decade-old database technique for streaming every committed change in a database — INSERTs, UPDATEs, DELETEs — out of the database in near-real-time, by reading the database’s own write-ahead log (WAL) rather than by re-querying the tables. A typical CDC architecture looks like:

[ legacy app ] ── commits ──▶ [ legacy DB ]
                                   │
                                   │ writes WAL entries (its own
                                   │ transaction log, used for
                                   │ crash recovery)
                                   ▼
                              [ DB write-ahead log ]
                                   │
                                   │ tailed by a CDC reader
                                   ▼
                          [ CDC stream — Debezium, Maxwell,
                            AWS DMS, Google Datastream, native
                            log replication, etc. ]
                                   │
                                   ▼
                          consumers subscribe to changes

The crucial property: the legacy application would be completely unmodified. It commits the way it always has. The CDC tooling sits beside the database and reads the change stream out-of-band. From the legacy app’s perspective nothing would be different.

cdc-observer is a real logical-replication client (pglogrepl, decoding pgoutput directly), not a downstream consumer of a separate CDC product — it talks to Postgres’s own replication protocol, so there’s no Debezium/Kafka middle tier to stand up. A customer whose CDC pipeline already runs through Debezium or an equivalent could still point that at their database instead and feed a translation layer into ExecuteAction, but the reference implementation that ships doesn’t need one.

The word “observer” in our taxonomy names three properties this pattern has, now verified against a real Postgres:

  1. Read-only on the customer’s side. Tx-Rails never writes back into the legacy DB — the only thing it writes is the replication slot’s own position, standard Postgres bookkeeping, not customer data.
  2. Asynchronous. The CDC stream is processed after the legacy DB has already committed the change. No lock contention, no commit-path latency added to the legacy app, no chance Tx-Rails could block a write.
  3. Non-invasive. The legacy application’s source code doesn’t change. Many regulated customers have systems where the source is frozen by vendor contract, regulatory certification, or end-of-life status — Mode B works on these systems specifically because no source change is required.

The trade-off versus Mode D, both of whose core mechanisms are now built:

  • Mode D can be preventative — a customer who calls ExecuteAction synchronously, before committing locally, gets a hard gate: a transaction Tx-Rails rejects never lands in the legacy DB either. But the reference implementation that’s actually built (dualwrite-relay) is the outbox variant specifically — write the local DB row and an outbox row in the same local transaction, then relay asynchronously — which is not preventative in that build: the local write has already happened by the time Tx-Rails would reject it. A customer wanting the preventative property has to call the gateway inline themselves; it isn’t what the shipped reference does.
  • Mode B is forensic — the transaction is already committed to the legacy DB by the time Tx-Rails sees it, via replication. Tx-Rails can detect, audit, and cryptographically prove a problem after the fact, but never prevent it.

For most regulated incumbents, forensic (or the outbox variant of Mode D, which behaves the same way) is acceptable — and often it’s the only shape a customer’s risk team permits, since a synchronous, preventative Mode D call adds a hard dependency on Tx-Rails availability to the customer’s own commit path, which a frozen vendor contract or regulatory certification frequently won’t allow. Mode C sits between the two on the prevention spectrum: inline at the API edge, genuinely preventative there (fail-closed by design), while Mode B and the outbox variant of Mode D both stay forensic on whatever the database actually committed.

When Mode B is the right recommendation:

  • The customer’s transaction system is a frozen vendor product (SAP, Oracle Financials, a hospital EHR) where modifying the commit path is contractually or operationally impossible AND there is no clean API edge to put a gateway in front of.
  • The customer’s commit-path latency budget is already tight and they cannot afford even a few milliseconds of additional overhead.
  • The customer wants the lowest-risk integration first and would migrate to Mode C or D later once they trust the underlay.

Where CDC is a poor fit:

  • The customer’s database isn’t Postgres, or has no stable, well-supported logical-replication equivalent. This reference implementation is Postgres-specific (pglogrepl); other databases would need their own CDC tooling, which may be fragile, expensive, or unreliable — Mode D or Mode C would be the simpler path despite being more invasive.
  • The customer requires real-time prevention with regulatory veto over individual transactions — CDC is forensic by construction; Mode C, or a synchronous (non-outbox) call into Mode D’s gateway, is required for prevention.

Q8. What user interfaces does Tx-Rails provide, and what stays on our side?

Short answer: Your existing front-ends remain unchanged. Tx-Rails provides only thin operator and verification UIs that have no incumbent, plus an SDK for embedding into your own apps. We do not build customer-facing transaction front-ends. This answer holds regardless of integration mode.

Long answer:

For medium-to-large customers and government agencies, the right working assumption is that Tx-Rails does not provide a customer-facing transaction front-end. The customer’s existing user interfaces — banking apps, online banking, branch teller systems, EHR clinical interfaces, patient portals, tenant portals, maintenance-request apps, citizen benefit portals, vendor procurement portals, ERP modules — remain in place. The customer’s staff and end-users never see Tx-Rails. The underlay does its work invisibly and any verification artefact is rendered through whatever UI conventions the customer’s existing app already uses.

That accounts for roughly 95-98% of front-end surface area in any given customer’s workflow.

There are, however, a small number of UI surfaces that do not have a customer-side incumbent — the capabilities are new and the customer has no team to build them. Tx-Rails provides these as Tier 2 products:

_______________________

Surface Audience Purpose
Operations console Customer IT / SecOps team Peer mesh health, validator status, certificate management, CA operations. Tool, not product — equivalent to a Kubernetes operator UI.
Verification / evidence portal Internal auditors, external regulators, counterparties, courts Retrieve cryptographic proofs of specific transactions; render Merkle inclusion proofs; show Hedera anchor. This is what merkle-audit and the artifact format it produces are for. Skinnable, default theme provided.
Trust-management UI Customer operations team Cert issuance, revocation, partner-org onboarding for the enterprise CA. Bare-CLI is acceptable for PoC; web UI planned.
Edge SDK + sample apps Customer engineering team libp2p-based SDK for customers who want to embed Tx-Rails capability into their own mobile or branch apps. Customer integrates; we ship the library and reference code.
Auditor operations console (optional) Third party operating the auditor mesh (audit firm, regulator, or us) Operational visibility into the ChubbyChecker auditor stack. Only relevant if the customer chooses to operate auditors themselves or if a third party operates auditors on their behalf.

There are two carve-outs from the “no customer front-end” rule, both of which we explicitly handle:

  1. Greenfield government programs. A government agency launching a new benefit scheme, regulatory regime, or service delivery program has no incumbent front-end to preserve. The substrate framing applies (see the “Greenfield” edge case earlier in this document) and the customer may legitimately want us to provide an end-to-end stack including the citizen-facing UI. Rare in our pipeline but high-value when it appears. We can scope and quote such engagements project-by-project.
  2. End-user self-verification UIs. Some end-users will want to independently verify their own records — “show me the audit trail for my benefit application”, “prove to me my health records weren’t tampered with”. The customer organisation will not build this; it’s outside their UX competence and outside their commercial incentive. A Tx-Rails-provided consumer app, white-labelled to the customer, fills this gap. Optional Tier 2 product, available against signed customer demand.

Operational implication for the customer: the only Tx-Rails-provided surfaces your operations team will routinely interact with are the operations console and the trust-management UI. Verification portal access is on-demand (audit response, regulator query). The edge SDK is your developers’ integration target, not an ops surface. Everything else stays on your side, in the UIs and workflows your users already know.

Commercial implication for the customer: because Tx-Rails does not absorb UX engineering cost into its product, the per-customer integration cost is bounded and predictable. There is no UI customisation project layered on top of the underlay deployment. Pricing reflects this — Tx-Rails is sold as platform capacity (peer count, transaction volume, anchor depth, retention), not as a managed-UX service.

Q9. We’re in aviation / defence / a sensitive regulated industry. Even the numeric amounts in the Trace sound like too much. What can we do?

Short answer: If you need amounts to be invisible even to Tx-Rails, nothing to do today — Mode A never receives amounts at all, so that’s already the strictest possible answer, and stricter than any Data Visibility Ladder rung below could offer. If you’d accept Tx-Rails being able to read amounts in exchange for us keeping our own constancy checks on them, Rung 2 of the ladder is concretely scoped, not just sketched — see “Platform-key encrypted” below.

Long answer:

Earlier in this document explains why: under Mode A, the quantitative-facts fields (int64Amounts, int32Exponents) are simply never populated. There’s no visibility question to manage because there’s no data to be visible. This is stricter than any Data Visibility Ladder rung below could offer, because it isn’t a redaction of data received — it’s data never sent.

_______________________

Once a content-receiving mode (B, C, or D) exists, some customer audiences will still want a configurable answer for amounts specifically, because they’d then be sent as bare numeric values (semantically opaque — no unit, no meaning — but visible as numbers). The Data Visibility Ladder, right after the Roadmap section above, is the current design thinking for that future state, applied to the amounts field specifically:

Rung What Tx-Rails would see What ChubbyChecker could still check Fit
1 — Plaintext Bare numeric value, semantically opaque Amount conservation, range, and pattern checks Civil aviation maintenance, healthcare audit, housing, most commercial verticals
2 — Platform-key encrypted Nothing extra versus Rung 1 — the platform still decrypts to check, just protected from anyone outside its own key custody Full amount conservation, range, and pattern checks — no loss versus Rung 1; the constancy check itself (cc-bpd-038) is built and verified end-to-end against a real live stack, both the clean-match and tamper-detection paths (see the Data Visibility Ladder section above) Same verticals as Rung 1, plus anyone additionally worried about a storage breach or network intercept, not about the platform itself reading the value
3 — Customer-key encrypted Ciphertext only; Tx-Rails cannot decrypt Loses the amount-arithmetic checks; retains signature, Merkle, BFT, sequence, identity-token, opcode, and slab-anchor checks Classified defence aviation, ITAR-controlled goods, EAR dual-use, sovereign-data-prohibited contexts — amounts are exactly the kind of platform-validated field that makes this rung’s genuinely-hard case (see the Data Visibility Ladder section above), so this row stays undesigned longest of the four
4 — Partner-key encrypted Ciphertext readable only by the customer-named partner (a manufacturing partner, a regulator) — Tx-Rails still cannot decrypt Same as Rung 3 — this rung is a delivery mechanism layered on top, not an independent set of checks Same audiences as Rung 3, when the amount also needs sharing with one named third party rather than only the customer

Decision rule for the customer conversation

When an aviation customer (or any sensitive-data customer) asks the privacy question today, the right framing is:

“Right now we don’t receive your amounts at all — Mode A never sees them. If you eventually want us to, tell us the most sensitive data class you’d be putting through the platform, and that maps to one of four rungs on our Data Visibility Ladder — one of which (platform-key encrypted) is now concretely scoped, the other three still design-only.”

This is more credible than implying a live, configurable privacy control exists. It also gives the customer the agency to see that the design has already thought through their risk register, even before there’s anything to switch on.

This same Data Visibility Ladder is the answer Part 4’s IIoT/Smart-Contracts pitch will eventually need too, for the identical aviation/defence audiences: production counts, throughput, and proprietary process parameters are the same shape of problem as amounts — a customer who’ll accept cryptographic commitment but not raw-number visibility — just wearing IIoT’s label instead of a Trace’s. Once a content-receiving mode wires the higher rungs in, the design intends to generalise from “amount visibility” to “quantitative-fact visibility” rather than needing a second, parallel ladder for telemetry.

_______________________

Q10. We’ve never traded with this counterparty before. How do we even find and verify them before wiring money across a border?

Short answer: Kademlia — the same enterprise-CA-gated peer-discovery substrate Part 1 pitches as a DNS alternative — is also how a national aggregator finds and cryptographically verifies a Regime C counterparty it’s never traded with before. A federation publishes a self-signed AgreementAnnouncement over the DHT; a prospective counterparty discovers it, refuses to trust anything served by a peer that hasn’t independently passed enterprise-CA verification, and reviews the result before registering the bilateral agreement itself.

Long answer:

§B above states Regime C’s bilateral agreement (M4) is “pre-established” — exchanged DIDs/keys, no per-tx trust created on the fly — without ever saying how that exchange happens. In practice, that’s always meant an out-of-band process: emails, phone calls, a spreadsheet somewhere, someone pasting a public key into a message. For money crossing a border, that’s the weakest link in an otherwise cryptographically rigorous design.

Kademlia closes it. A federation wanting to be discoverable signs an AgreementAnnouncement — its own FederationID, its Hedera anchor topic, and the ed25519 public key it intends as its CounterSigningPublicKey — with the private key matching that public key. That’s a self-consistency proof: whoever published this controls the claimed key. It’s published on the DHT under a CID derived from the federation’s own ID, the same Provide/FindProviders mechanism this platform already uses for BFT validator peering (Part 1, wp-9B). A prospective counterparty finds it by federation ID, and — the load-bearing check — only trusts it if it was served by a libp2p peer that has independently passed wp-06 enterprise-CA verification: a CA-signed certificate binding that peer’s libp2p identity to the announcing operator’s own PKI. An unverified peer’s announcement is refused at the point it’s served, not merely distrusted at the point it’s read.

The result is a runnable, one-shot lookup, not a design sketch: an operator runs h3-rpc-gw --regimec-discover-federation-id=<id> and gets back the counterparty’s anchor topic and signing key as JSON — cryptographically tied to a verified enterprise identity, not a name someone typed into an email — to review before doing anything else.

_______________________

Decision rule for the corridor-onboarding conversation

When a prospective Regime C customer asks how they’re supposed to safely find a first-time trading partner, the right framing is:

“You don’t exchange keys over email. Your counterparty publishes a self-signed announcement of their own settlement identity over the same enterprise-CA-gated network that replaces DNS for your other high-value flows. You look them up, the network itself refuses to hand you anything served by a peer that hasn’t proven who they are, and you review what comes back before you register the agreement. Finding a legitimate first-time counterparty and registering a fraudulent one now go through two different, appropriately-weighted steps — not one email thread doing both jobs at once.”

This is deliberately not full automation: discovery surfaces a verified result, it never registers the agreement on its own. The discovery half is cryptographically rigorous end to end; the decision to actually trust a newly-found counterparty with cross-border settlement stays a human call, on purpose.

_______________________________

What these decisions deliberately do NOT cover

  • Federation lifecycle events (creating a new federation, retiring a federation, merging two federations). The meta-federation framework supports these but the operational runbook is TBD. Defer until v2.
  • Cross-jurisdictional governance (what happens when a federation spans UK + AU and the two regulators disagree). Likely solved by separate jurisdictional pyramids of the same federation (i.e. tx-rails-energy-generation-uk and tx-rails-energy-generation-au are distinct federations, even though they share an action surface), with Mechanism 1 handoff between them. Defer until a customer with a multi-jurisdictional footprint asks for it.

__________________

Status

Aspect State
Underlay philosophy Canonical; lead positioning in all customer/investor conversations
Mode A (hash-only attestation) Built and verified end-to-end against a real chain. The only fully packaged, customer-adoptable integration path that currently exists.
SDK / atomic dual-write (Mode D) Core mechanism built and verified end-to-end against a real running stack (goldbftd + org-server-abci + org-gateway): idempotency-key-derived deterministic tx_id, RequType semantic-intent tagging, a reference outbox-relay implementation (connectrpc/services/org-gateway/cmd/dualwrite-relay). Reference implementation for a customer’s own team to adapt, not a packaged SDK — no customer onboarded through it yet. Do not present it as an install-and-go product.
Gateway-mediated (Mode C) Core mechanism built and verified end-to-end against a real running stack (connectrpc/services/org-gateway/cmd/edge-gateway): explicit route config, reuses org-gateway’s existing JWT auth unchanged, fail-closed inline rejection — the one of the three that’s genuinely preventative. Reference implementation, not a packaged product — no customer onboarded through it yet.
CDC observer (Mode B) Core mechanism built and verified end-to-end against a real running stack (connectrpc/services/org-gateway/cmd/cdc-observer): real Postgres logical replication via pglogrepl, coarse service-account attribution, idempotency-key-derived tx_id. Forensic, not preventative. Reference implementation, not a packaged product — no customer onboarded through it yet.
Data Visibility Ladder Rung 1 (plaintext) is what every content-receiving Mode ships with today. Rung 2 (platform-key encrypted) is built and verified end-to-end against a real goldbftd + org-server-abci + chubbychecker-joint + Vault stack (both directions: a real encrypted amounts match, and a corrupted persisted row correctly caught): chubbychecker-joint‘s KeyProvider/Vault wiring plus cc-bpd-038‘s amounts-constancy check (positional mantissa/exponent array, decrypt-then-compare — see structured-atom-privacy-ladder-design.md). Rung 3 is partially solved (fields the platform never validates); its narrower platform-validated-field case and Rung 4 (partner-key) remain design-only. Mode A itself is already maximally private (no content sent at all).
Bulk-data variant of Mode D Built and verified 2026-08-16 (connectrpc/services/content-store) — real and necessary for healthcare/legal-evidence verticals, now a reference implementation rather than a sketch; see the Edge cases section above
Air-gapped degradation Applies to Mode A today; acknowledged edge case; small subset of customers; not lead narrative
Greenfield “substrate” framing Available; use only when there’s no front-end to preserve
Anchor chain options Two, both built and tested today: Hedera (default) and Ethereum. The Ethereum path is EVM-generic by RPC endpoint and chain ID alone — any EVM-compatible network, no code change. A third, non-EVM chain is an extension of the same chain-selectable interface, not a rebuild. Reachable directly or, for callers that want a uniform interface regardless of which chain a deployment runs, via a gRPC bridge (tophats.v1.AnchorService).

__________________