Skip links

Designing the ERC-TRUST Enforceability Architecture

A rubber stamp reading TRUST that prints ruled empty fields onto a filed form; ERC-TRUST enforceability

TL;DR

  • On today’s token standards, a regulator’s freeze and a court’s confiscation come down to the same on-chain call. ERC-TRUST records the legal effect of the six regulatory actions (their reversibility and ownership effect) as distinct, typed, first-class objects that an auditor or a regulator can actually point to.
  • It also closes the regulatory dynamics within a declared domain (reversal, terminality, rejection, custody), leaves typed authorizations and canonical receipts with provenance, and requires an evidence chain that runs from the abstract model down to deployed bytecode. That last axis is absent from existing Final ERCs.
  • The form is an ERC-7943 conformance extension over an ERC-20 base. The public machine surface is kept minimal and precise so any third implementer can reproduce and verify it, and the weight of the design lives in the depth of the conformance and evidence stack beneath it.
  • The reference trust model is an immutable minimal kernel with versioned, fail-closed adapters. ERC-3643 is an optional interoperability profile, and Diamond, a full standalone suite, and wrapper-first were considered and set aside with reasons.
  • The normative design is frozen. A Solidity implementation, TRUST-specific formal verification, and third-party audits are later stages, and this article does not claim any of them as done.

On the token standards deployed today, a regulator-ordered freeze (temporary, reversible, ownership preserved) and a court-ordered confiscation (permanent, irreversible, ownership transferred) come down to the same contract call. ERC-7943’s forcedTransfer and ERC-3643’s forced transfer move the asset, but say nothing about whether the move can be undone or where ownership goes. Two legally opposite acts are indistinguishable anywhere on-chain, in any form a standard, an auditor, or a regulator could cite.

Making that distinction legible on-chain is where the ERC-TRUST enforceability architecture begins. Where the Regulatory Compliance Protocol (RCP), proposed as ERC-8319, defined the legal effect of the six regulatory actions as a vocabulary, ERC-TRUST carries that meaning into a token’s execution: each action’s legal effect becomes typed state and observable outcome, tied by evidence all the way to what is deployed. RCP settled the “what”; this ERC-7943 conformance extension fills in the “how” as normative rules and conformance.

The name states what the standard is for. ERC-TRUST stands for Typed Regulatory Uniformity for Security Tokens: a comprehensive and adaptable execution standard for regulatory actions on security tokens. The words map onto the design directly: actions are typed so each carries a distinct legal effect, uniformity is the guarantee that independent implementations reproduce the same result, and the standard stays adaptable because policy lives in versioned adapters while the action semantics stay fixed.

What follows sets out what the design newly creates, where the standard’s boundary and form sit, how it fits with existing systems, and, in one place, what can be claimed today and what remains ahead.

The moment a reversible freeze and an irreversible confiscation are seen to collapse into one generic call.

What This Design Newly Creates On-Chain

Start with what this actually adds. The layers existing ERCs already provide, ERC-20 balances and ERC-7943’s permission views and freeze and forced-transfer primitives, are reused as they are. On top of them, this ERC-7943 conformance extension builds four things.

First, actions with distinct legal effect. The six regulatory actions (FREEZE, SEIZE, CONFISCATE, LIQUIDATE, RESTRICT, RECOVER) become first-class objects with different values and different observability. Reversibility and ownership effect are bound to each, so a freeze and a confiscation can never collapse into the same thing. Inferring which regulatory act a bare forcedTransfer(from, to, amount) represents does not satisfy conformance. This is the core capability of the design.

Second, closed regulatory dynamics. Within a declared state and action domain, success, rejection, order effects, reversal, terminality, and custody are closed into one coherent model. What follows a FREEZE, and the fact that a CONFISCATE has no exit, are fixed by stated rules rather than argued in prose. “Closed” here means mathematical completeness within the declared scope, not completeness across every jurisdiction’s law, and that bounded completeness is the strength of the model.

Third, auditable typed authorization and receipts. Every regulatory action runs as a typed record bound to domain, subject, authority, policy, and provenance, with scoped delegation, replay protection, and a canonical receipt that links action, authority, policy, and pre/post observation. An indexer reads that receipt instead of guessing the regulatory act from a generic event.

Fourth, model-to-deployment assurance. Connecting the abstract model, concrete verification, and deployment artifacts into a single evidence ladder is a design obligation. Normative statements descend to state, authority, and observation, and are then traced through Solidity and bytecode to the deployed artifact. Existing Final ERCs do not require this model-to-deployment evidence, and it is the fourth axis ERC-TRUST purely adds.

These four are the net increment over what ERC-20, ERC-7943, and ERC-3643 already provide. If the standard only re-described the existence of freeze, allowlist, or forced transfer, there would be nothing to add. What it adds is not a count of features but the distinction of legal effect, the closure of regulatory dynamics, and evidence that the meaning survives all the way to deployment.

Actions grouped by legal effect, and the outcome model FREEZE and RESTRICT are reversible holding actions with ownership kept. SEIZE is custodial with ownership kept. CONFISCATE and LIQUIDATE are terminal with ownership ending. RECOVER is restorative. Six product actions are not the seven transition labels. Every call resolves to Applied, Rejected, or OperationalFailure. HOLDING · owner kept CUSTODIAL · owner kept TERMINAL · ownership ends RESTORATIVE FREEZE Reversible · owner kept frozen amount; reversal stays open RESTRICT Configurable · owner kept policy ref; restriction_clear SEIZE Conditional · owner kept custody moves to authority, declared prior-holder ref kept balance move alone does not imply a change of legal title CONFISCATE Irreversible · ownership moves authorized terminal transfer LIQUIDATE Irreversible · ownership ends settlement commitment; sale external RECOVER One-time · ownership restored entitlement commitment, consumed exactly once off the finality ladder, like RESTRICT Six product actions are not the seven transition labels. Reversal labels UNFREEZE, RELEASE, UNRESTRICT are commands, not RCP action identities. Every call resolves to exactly one outcome Applied one canonical step; nonce and action consumed; receipt last. AppliedOnChain, not legal or economic completion. Rejected authorization, transition, or policy precondition denied. All observable state equals pre-state. No receipt. OperationalFailure module unavailable, revert, malformed, version mismatch. State preserved, fail closed. Ambient failure is out of scope.
Holding · owner kept
FREEZE
Reversible · owner kept
frozen amount; reversal stays open
RESTRICT
Configurable · owner kept
policy ref; restriction_clear gate
Custodial · owner kept
SEIZE
Conditional · owner kept
custody moves to authority; declared prior-holder ref kept. A balance move alone does not imply a change of legal title.
Terminal · ownership ends
CONFISCATE
Irreversible · ownership moves
authorized terminal transfer
LIQUIDATE
Irreversible · ownership ends
settlement commitment; the actual sale is external
Restorative
RECOVER
One-time · ownership restored
entitlement commitment, consumed exactly once. Off the finality ladder, like RESTRICT.
Six product actions are not the seven transition labels. Reversal labels UNFREEZE, RELEASE, UNRESTRICT are commands, not RCP action identities.
Every call resolves to exactly one outcome
Applied — one canonical step; nonce and action consumed; receipt emitted last. AppliedOnChain, not legal or economic completion.
Rejected — authorization, transition, or policy precondition denied. All observable state equals pre-state. No receipt.
OperationalFailure — module unavailable, revert, malformed, version mismatch. State preserved, fail closed. Ambient failure is out of scope.

Figure 1: Six regulatory actions mapped to typed observables, separated from reversal labels, with the three-way outcome model

The six regulatory actions are the product-facing command set, and they do not map one-to-one onto the composition model’s seven transition labels (FREEZE, UNFREEZE, SEIZE, RELEASE, CONFISCATE, RESTRICT, UNRESTRICT). UNFREEZE, RELEASE, and UNRESTRICT are reversal commands, not RCP action identities, and RECOVER and LIQUIDATE belong to the transfer and settlement layer. Treating the six and the seven as the same would break the very distinction the standard promises, so keeping them apart is central to the norm. Outcomes split cleanly into three: Applied (exactly one canonical transition, with the nonce and action consumed; here Applied means the declared code-level state effect took hold, not legal or economic completion), Rejected (an authorization, transition, or policy precondition denied), and OperationalFailure (a contract-detectable module outage, revert, or version mismatch). The three are disjoint, and on rejection or failure the observable state is preserved.

Margin note splitting Applied, Rejected and OperationalFailure as disjoint; ERC-TRUST enforceability

A margin note separating the six actions from the seven transition labels, and fixing the outcomes as three disjoint cases.

The Standard’s Boundary and Form

How much of this capability belongs in the standard is set by a dual-use rule. The normative surface carries only what Oraclizer’s full-enforcement product actually uses and what independent issuers, tokens, adapters, and indexers also need in order to coordinate; product-only conveniences stay in the product layer. So Oraclizer’s evidence-only and policy-precheck modes work without this standard, and when Oraclizer claims full on-chain enforcement of the six actions or conformance to it, that path must terminate at a single standard endpoint, a native token or a verified profile adapter. This is where the standard’s neutrality and the product’s core enforcement claim are bound to the same evidence chain.

Keeping the public machine surface minimal and precise is a deliberate strength, not a limitation. The smaller and more precise the surface, the easier it is for a third implementer to reproduce the same actions, rejections, and receipts, and the easier that surface is to verify mechanically. The real weight of the standard comes not from the size of the surface but from the depth of the conformance vectors and model-to-deployment evidence beneath it. If only one internal product ever read these receipts, a library would be enough; a public standard is needed precisely because independent implementers must reproduce the same meaning, and this precise surface is what makes that reproduction possible.

Thin normative surface over a deep reference and evidence stack External truth sits outside the standard as an assume-guarantee boundary. The thin normative surface holds action identity, case dynamics, typed authorization, receipt with provenance, and conformance discovery, and is the only layer the ERC defines. Below it the deep conformance and evidence stack holds the reference-only implementation, and the reused ERC-20 and ERC-7943 base. External, outside the standard (assumed) Assume-guarantee boundary. Truth and legitimacy are external responsibilities. Legal judgment: jurisdiction, rightful owner Policy & identity truth: eligibility Settlement & entitlement facts Normative standard surface Only where product need and independent coordination value overlap. Action identity 6 legal-effect actions, ERC-8319 Case dynamics reversal, terminal, rejection Typed authority record, delegation, replay, cancel Receipt + provenance commitments Conformance capability discovery Reference-only region, not normative A conforming deployment may choose another architecture. Immutable minimal kernel + versioned fail-closed adapters Clean-room reference implementation + tests Conformance vectors + model-to-deployment evidence Reused base, existing standards by reference No net increment here. Keeps working for systems that do not know the extension. ERC-20 ledger ERC-7943 primitives: canTransfer, setFrozenTokens, forcedTransfer MINIMAL precise surface, so anyone can reproduce & verify DEEP conformance & evidence stack the real substance
External, outside the standard (assumed)
Assume-guarantee boundary. Truth and legitimacy are external.
Legal judgment: jurisdiction, rightful owner Policy & identity truth Settlement & entitlement facts
MINIMAL, precise surface · so anyone can reproduce & verify
Normative standard surface
Only where product need and independent coordination value overlap.
Action identity: 6 legal-effect actions (ERC-8319) Case dynamics: reversal, terminality, rejection Typed authorization: record, delegation, replay, cancel Receipt + provenance Conformance discovery
DEEP conformance & evidence stack · the real substance
Reference-only region, not normative
A conforming deployment may choose another architecture.
Immutable minimal kernel + versioned fail-closed adapters Clean-room reference implementation + tests Conformance vectors + model-to-deployment evidence
Reused base, existing standards by reference
No net increment here. Keeps working for systems that do not know the extension.
ERC-20 ledger ERC-7943: canTransfer, setFrozenTokens, forcedTransfer

Figure 2: A minimal, precise normative surface over a deep conformance and evidence stack, with external truth and the reused base outside it

An ERC-7943 conformance extension, by design

The form is an independently numbered ERC-7943 conformance extension. It is a standalone ERC with its own number, Specification, Security Considerations, and conformance surface, and it does not redefine ERC-20 or ERC-7943; on top of them it adds only RCP action identity, regulatory dynamics, typed authorization, receipts and provenance, and a verifiable conformance boundary. Following EIP-1, it stays a single focused proposal and uses requires only where another EIP’s concept is needed to understand or implement it. What it references is the base token and the meaning of the regulatory actions, not their code, so this ERC-7943 conformance extension relates to RCP by reference, not by inheritance or import.

The reference implementation’s trust model is an immutable minimal kernel with versioned, fail-closed policy and identity adapters. Action semantics, case transitions, authorization consumption, and receipt emission sit inside the immutable kernel and stay fixed while the deployed code stands; policy and identity are separated into read-only adapters. Because regulatory policy changes with jurisdiction and time while the legal meaning of the six actions and the receipt structure must hold, a policy change swaps a versioned module rather than touching the kernel, and that separation keeps a policy change from invalidating the kernel’s proofs.

The standard does not mandate an implementation architecture, so a proxy deployment can be conformant if it proves its conditions, but the reference default excludes proxies to keep that proof burden off the default path. Diamond (ERC-2535) adds selector routing, facets, cut authority, storage-namespace collisions, and delegatecall targets on top of a small surface, so its cost is out of proportion and it was set aside; inheriting ERC-3643’s GPL implementation and a wrapper-first approach were set aside as well, for licensing-and-surface and custody-and-bypass reasons. These are earlier-exploration options, not premises of the current design. One boundary is held fixed: the legal meaning and distinguishability of the six actions is the standard’s identity, so no architecture may erase or merge them into something unobservable.

Standard-form and reference-architecture candidates with verdicts Standard-form candidates: full standalone suite rejected, pure prose profile fallback, thin ERC-7943 conformance extension recommended, ERC-3643 extension optional profile, library only rejected. Reference-architecture candidates: immutable monolith second, immutable minimal kernel with versioned adapters recommended, proxy conditional, Diamond rejected, ERC-3643 full-suite import rejected, wrapper-first rejected. A. STANDARD FORM VERDICT REASON Full standalone security-token suite Rejected Overlaps ERC-20/7943/3643; oversized proof surface Pure prose profile (ERC-7943 + ERC-8319) Fallback Weak common target; selector/event/replay vary Thin ERC-7943 conformance extension (own number) Recommended Typed identity + bounded proof target, minimal overlap ERC-3643 extension Optional profile Binds the whole proposal to one ecosystem Library / reference implementation only Rejected No standard-level net improvement B. REFERENCE ARCHITECTURE VERDICT REASON Immutable monolith Second Policy change forces migration Immutable minimal kernel + versioned adapters Recommended Fixed action semantics, isolated policy change Transparent / UUPS proxy Conditional Allowed with full upgrade proof, not the default Diamond (multi-facet proxy) Rejected Selector routing, facet, namespace, delegatecall cost ERC-3643 full-suite import / inheritance Rejected GPL hygiene and large surface Wrapper-first Rejected Custody, multi-tx, unwrap bypass; fallback only
A. Standard form
Full standalone security-token suite
Rejected
Overlaps ERC-20/7943/3643; oversized proof surface.
Pure prose profile (ERC-7943 + ERC-8319)
Fallback
Weak common target; selector, event, and replay vary by implementation.
Thin ERC-7943 conformance extension (own number)
Recommended
Typed identity and a bounded proof target with minimal overlap.
ERC-3643 extension
Optional profile
Binds the whole proposal to one ecosystem.
Library / reference implementation only
Rejected
No standard-level net improvement.
B. Reference architecture
Immutable monolith
Second
Policy change forces migration.
Immutable minimal kernel + versioned adapters
Recommended
Fixed action semantics with isolated, versioned policy change.
Transparent / UUPS proxy
Conditional
Allowed with full upgrade proof, but not the reference default.
Diamond (multi-facet proxy)
Rejected
Selector routing, facet, namespace, and delegatecall cost.
ERC-3643 full-suite import / inheritance
Rejected
GPL hygiene and large surface.
Wrapper-first
Rejected
Custody, multi-transaction, and unwrap bypass; fallback only.

Figure 3: Standard-form and reference-architecture candidates with their verdicts

Compatibility and Interoperability, in Three Questions

Two words are worth separating first. Compatibility means this extension implements ERC-7943’s interface directly, so existing integrators interact through the same calls. Interoperability means an ERC-3643 token is left in place and this extension binds to its authority model. The two behave differently, so three questions make the practical picture clear.

Do existing ERC-20 and ERC-7943 systems keep working without knowing about this standard? Yes. Because it sits on top of the base, the base token’s balances and transfers and ERC-7943’s permission views work as before for wallets and protocols that never heard of it. The reverse is not automatic: an already-deployed immutable ERC-7943 token does not start supporting this standard on its own. Native conformance holds for newly deployed or upgradeable tokens, and existing tokens join through the profile paths below.

Can a token, adapter, or indexer that does know this standard reproduce the same capability and results? Making that reproducible is the reason for a public standard, and the core of its value. A conforming implementation represents each supported action as a distinct, separately observable operation, and lets its per-action capability be queried mechanically. Because the same action record is the shared input to the authorization hash and the receipt hash, different implementations leave the same rejections, terminality, and receipts for the same typed action. Unsupported actions are declared false or unsupported rather than faked by a name that always reverts.

How does an ERC-3643 environment attach as an optional profile? ERC-3643 is not a required dependency; it is an optional profile that leaves the token in place and binds in order of smallest bypass surface. A Compliance binding provides ordinary-transfer eligibility and policy precheck, but not full enforcement on its own, because in ERC-3643 a forced transfer bypasses the Compliance precheck (in ERC-3643, mint and forcedTransfer only require the receiver to be verified and skip the Compliance rules). An Agent adapter path offers a subset of typed freeze, forced transfer, and recovery, provided the adapter holds exclusive authority and the owner cannot route around it; upgrade and migration move toward the native surface but require carrying over and re-verifying state, authority, and history. None of these is an automatic conversion, and a profile declares its supported subset and unsupported paths honestly in a manifest. Every native, compatibility, and interoperability path runs through the same canonical kernel, so any path where a legacy selector bypasses authority, replay protection, action identity, or receipts falls outside full conformance.

What We Can Claim Today, and What Comes Next

The formal ground is stated plainly. The regulatory-action composition model this design rests on was already machine-checked in Isabelle/HOL in the earlier ERC-8319 work, and this design uses it as an input. The practical value of that verification is concrete: the most draining part of a standards debate is hidden exceptions and combinatorial contradictions, and moving questions such as “what remains after a FREEZE followed by a SEIZE?” or “can an ordinary transfer route around enforcement?” from prose into transition tables, theorems, and runnable counterexamples means a reviewer can check the rules directly instead of trusting the designer’s reading. That is the kind of defensibility this aims for.

On that ground, public claims are staged. What can be said now reaches as far as the composition model being machine-checked. TRUST-specific abstract semantics and the compatibility mapping, a pilot’s limited implementation properties, and verification bound to source, bytecode, and deployment are each later stages, and each claim points only at its own stage’s evidence. This discipline does not lower the value of the design; it states exactly where the work stands and ties each claim to reproducible evidence. For the same reason, the standardization path does not make a paid third-party audit a required gate: EIP-1 asks for a sufficient Security Considerations section, and ERC-7943 itself reached Final without a formal audit, its reference code marked “not audited” (ERC-7943). An external audit is placed honestly at the point where a production deployment handling real assets triggers it.

Open Questions and Remaining Limits

Freezing the design fixed the questions to verify, and those are closed from here through formalization and implementation. The hardest is expressing SEIZE’s custody and retained ownership non-vacuously over a fungible balance: without equating an ERC-20 balance with legal title, the custodian and a declared prior-holder reference have to be kept as a case and recoverable even from a commingled balance. LIQUIDATE and RECOVER have to keep external facts (an actual sale, a debt discharge, a rightful owner) out of token events while still fixing action identity and the Applied condition. Implementation then has to show that ERC-7943’s sensitive selectors can carry typed context while satisfying the official behavior and usable interoperability, and that converging every path on one kernel leaves the supported paths genuinely usable. These close only when the abstract model is shown to be non-vacuous and a real implementation is shown to refine it.

Some judgment stays outside formal evidence: whether each action’s legal meaning fits a jurisdiction, whether an authority is legitimate, whether an off-chain determination is true. Formal verification does not replace these; it closes what a machine can close so that people can focus on what they have to decide. On timing, ERC-7943 states that additional features may be added as extensions and gives a legal-proof example, which is grounds that the space for a follow-on like this is open, not a claim of ownership over it. We have not confirmed the ERC-7943 authors’ follow-on plans, and absence of evidence is not evidence of absence.

Closing

What ERC-TRUST sets up, as an ERC-7943 conformance extension, is an enforceability architecture that makes regulatory enforcement legally legible and machine-verifiable on-chain: the legal effect of the six actions becomes a distinct, first-class object, the regulatory dynamics close within a declared domain, and the meaning is carried by evidence from model to deployment. Keeping the public surface minimal and precise is the means that lets independent implementers reproduce and verify it, while the real depth lives in the conformance and evidence stack beneath. The normative design has reached this point; next is showing, with evidence, that the meaning is non-vacuous and that real code preserves it. The open question we leave for the reader: to insulate a standard from regulatory change, what has to stay fixed and what has to remain revisable? We chose to fix the legal concepts, reversibility and ownership effect, and to keep the dated requirements base revisable.


References

  1. Kim, J., Viglione, R., Spuller, D. (2026). ERC-8319: Regulatory Compliance Protocol (Pull Request #1848, ethereum/ERCs). https://github.com/ethereum/ERCs/pull/1848
  2. Kim, J., Viglione, R., Spuller, D. (2026). ERC-8319: Regulatory Compliance Protocol (discussion thread). Ethereum Magicians. https://ethereum-magicians.org/t/28917
  3. Lo Buglio, D., et al. (2026). ERC-7943: uRWA – Universal Real World Asset Interface. https://eips.ethereum.org/EIPS/eip-7943
  4. Tokeny, et al. (2021). ERC-3643: T-REX – Token for Regulated EXchanges. https://eips.ethereum.org/EIPS/eip-3643
  5. Mudge, N. (2020). ERC-2535: Diamonds, Multi-Facet Proxy. https://eips.ethereum.org/EIPS/eip-2535

Read Next

Our State Synchronization Research Is Now on Ethereum’s Research Forum
Two Oraclizer research posts now stand on ethresear.ch, Ethereum's research forum: machine-checked proofs that atomic cross-domain synchronization behaves correctly, and a follow-up giving synchronization strength a formal, checkable basis. In between, a public exchange with an Ethereum researcher sharpened the work into what it is now.
Oraclizer Core ⋅ Jul 21, 2026
The Cross-Domain State Preservation Functor: What It Closed, and What It Was For
The cross-domain state preservation proofs are closed: homomorphism, functor completion, a natural-transformation tower, and unconditional bounded convergence. Ten theory files, zero sorry. The harder work was catching what passes a prover while saying nothing: a trivial functor, a bypassed threshold, a witness outside the roster. Each retreat left the rest firmer.
Oraclizer Core ⋅ Jul 16, 2026
Sync Degree Enforcement: What Turns a Classification Into a Constraint
A classification does nothing on its own. Sync degree enforcement closes the gap between labeling an asset S2 and having the system refuse to touch it any other way. It rests on a two-directional result: over-provisioning preserves every guarantee, under-provisioning admits a state that defeats all of them. So the check leaves runtime and enters Rust's type system.
Oraclizer Core ⋅ Jul 16, 2026
ERC-8319: A Citable Regulatory Constitution for Tokenized Assets
The ERC-8319 Regulatory Compliance Protocol has entered Ethereum's standards repository. It defines the legal effect of six enforcement actions on tokenized assets, from a reversible freeze to an irreversible confiscation, and compiles 31 requirements from 15 regulators under five principles. A convention, not an interface, under one permanent, citable identifier.
Oraclizer Core ⋅ Jul 14, 2026
ERC-8319 Regulatory Compliance Protocol Enters the Ethereum Standards Process
Oraclizer's Regulatory Compliance Protocol has been submitted to ethereum/ERCs as ERC-8319 and is under editor review. Not a glossary but a reference bundling a taxonomy of six enforcement actions, their legal effect, the dynamics between them, and 31 regulator requirements, layered non-invasively on existing standards. Co-authored with Horizen Labs and Dan Spuller.
Oraclizer Core ⋅ Jul 11, 2026