Cube

What Is ERC-3643?

Learn what ERC-3643 is, why it exists, and how this ERC-20-compatible standard uses identity and compliance checks for permissioned tokens.

What Is ERC-3643? hero image

Introduction

ERC-3643 is a token standard for permissioned assets: tokens that can exist on a public blockchain, but cannot be freely held or transferred by just any address. That sounds almost contradictory at first. Public chains were built around open access, while regulated assets such as securities, funds, bonds, and some real-world asset tokens often require the opposite: the issuer must know who holders are, restrict transfers, freeze balances in some cases, and recover positions if a key is lost.

That tension is the reason ERC-3643 exists. The standard, also known as T-REX for Token for Regulated EXchanges, takes the familiar ERC-20 token model and adds a second layer: identity-aware transfer validation. The central idea is simple but consequential: a transfer is not valid merely because the sender signed it and has enough balance. It is valid only if the transaction also passes a set of on-chain eligibility and compliance checks.

If you already understand ERC-20, the fastest way to see ERC-3643 is this: ERC-20 asks, *does the sender control the tokens? * ERC-3643 asks that, but also asks, *is the recipient allowed to hold them, are both sides in good standing, and does this transfer fit the rules of the offering? * That extra question is what makes the standard useful for regulated issuance; and what makes it less permissionless than ordinary crypto tokens.

Why do regulated assets need ERC-3643 instead of plain ERC-20?

A standard fungible token works well when the main invariant is ownership. If Alice owns 100 tokens and signs a transfer of 10 to Bob, the system mainly checks authorization and balances. For many crypto-native assets, that is enough. But for regulated financial instruments, it is not enough at all.

The issuer of a tokenized bond, fund share, or equity instrument may need to enforce rules such as: only verified investors may hold the token; residents of some jurisdictions may face additional restrictions; a single investor may be capped; transfers may need to pause during an operational event; and in some cases an issuer must be able to force a transfer, burn, or recovery action. These are not decorative features. In that setting, they are part of what the asset is.

This creates a mismatch with plain ERC-20. ERC-20 is intentionally simple and broadly composable, but it has no built-in concept of verified identity, trusted claim issuers, transfer eligibility, or administrative intervention. You can layer some of that around an ERC-20 token with separate application logic, but then the compliance rules live outside the token’s core transfer mechanism. That is fragile, because the token can still move through any integration that only speaks vanilla ERC-20.

ERC-3643 solves this by moving compliance checks into the transfer path itself. In the standard, the token remains ERC-20 compatible, but transfer() and transferFrom() are no longer unconditional balance updates. They become gated operations. The token contract must consult identity and compliance components before it allows state to change.

That is the key design choice. **Compliance is not advisory metadata around the token; it is part of the token’s movement rule. **

How ERC-3643 separates token balances from transfer approval (modular policy design)

The deepest idea in ERC-3643 is modularity. The standard does not try to cram every regulatory rule directly into one giant token contract. Instead, it separates concerns into a set of contracts that each answer a narrower question.

The token contract keeps balances and exposes ERC-20-compatible behavior. But when someone tries to transfer, it asks other contracts for the information it cannot know by itself. Is this wallet linked to an approved identity? Does that identity carry the required claims? Are those claims signed by issuers the token trusts? Does the transfer respect the offering’s own rules? Only if those answers line up does the transfer proceed.

The specification defines a modular suite of interfaces around that process: Token, Identity Registry, Identity Registry Storage, Compliance, Trusted Issuers Registry, and Claim Topics Registry. This architecture matters because issuers need flexibility. Different offerings may share the same token mechanics but require different trusted issuers, different claims, and different compliance policies. By pulling those concerns apart, ERC-3643 makes the standard reusable without pretending every regulated asset has the same rulebook.

You can think of it as a token with an externalized policy engine. That analogy helps explain the structure, but it also has a limit: these are not merely passive policy documents. They are live contracts that the token queries on each relevant action, and their answers directly determine whether the blockchain state changes.

How ERC-3643 uses on-chain identity and claims to control transfers

ModelHow eligibility provenRevocationWallet portabilityPrivacy
Simple allowlistAddress added to listManual remove list entryTied to a specific addressLow privacy; on-chain links
Claims-based (ONCHAINID)Signed attestations/claimsRevoke claim or expiryIdentity can map multiple walletsPersonal data kept off-chain
Figure 423.1: Allowlist vs claims-based identity for tokens

The standard explicitly requires that ERC-3643 be used with an on-chain identity system. This is not optional decoration. It is the mechanism that lets a public address stand for a legally or operationally qualified participant without putting raw personal data directly into the token logic.

In the ERC-3643 model, a wallet address is associated through an Identity Registry with an identity contract and a country code. The Identity Registry exposes a function such as isVerified() that tells the token whether a wallet is eligible. But that answer is not arbitrary. It depends on whether the linked identity holds the claims the token requires, and whether those claims were signed by trusted claim issuers recognized by the token’s issuer.

This is where the standard’s design becomes more precise than a simple whitelist. A basic allowlist says, “this address is allowed.” ERC-3643’s identity system says, in effect, “this address is linked to an identity that has the right attestations from trusted issuers.” That distinction matters because it supports revocation, changing eligibility conditions, and richer policy logic. An investor may remain the same person while changing wallets; an issuer may change which attestations count; a claim may expire or be revoked. The identity layer gives the system a way to express those facts.

The T-REX whitepaper and surrounding implementation materials tie this to ONCHAINID, which is built around ERC-734 and ERC-735-style identity and claims management. In that model, claims are on-chain attestations issued by trusted parties, while sensitive personal data is intended to remain off-chain. The important point is not the branding of a specific implementation. The important point is the structure: eligibility is proven by claims, not merely by a hardcoded address list.

That said, the privacy story has limits. Even if personal data is kept off-chain, the system still creates on-chain links between wallets, identity contracts, claim structures, and administrative decisions. The standard gives you programmable eligibility, not anonymity.

Step-by-step: what happens during an ERC-3643 transfer?

The easiest way to make ERC-3643 concrete is to follow a transfer from start to finish.

Imagine an issuer has tokenized shares in a private fund. Alice already holds some tokens. Bob wants to receive them. On a normal ERC-20 token, Alice signs a transfer, the contract checks that she has enough balance, and Bob’s balance increases. On ERC-3643, that is only the first layer.

When Alice initiates the transfer, the token checks whether she has enough free balance; not just total balance, but balance not frozen by administrative controls. The token then checks whether Bob’s wallet is present in the Identity Registry and whether isVerified() returns true for Bob. That in turn depends on whether Bob’s linked identity has the required claims, and whether those claims were issued by trusted issuers recognized in the registries this token uses.

The token also checks whether Alice’s wallet or Bob’s wallet is frozen, whether the token itself is paused, and whether the Compliance contract’s canTransfer logic says the transfer is allowed. That compliance decision might encode rules such as a cap on holders from a specific country, limits per investor, or other offering-specific constraints. If any of those checks fail, the transfer does not partially complete. It simply reverts.

This atomicity is important. The whole point is that compliance is enforced at the same moment as token movement, not as an after-the-fact monitoring process.

Mechanically, this is why ERC-3643 can stay ERC-20 compatible while still behaving very differently from a plain ERC-20 token. Wallets and integrations may still see familiar interfaces, but their assumptions must change. A call to transfer() can fail for reasons that have nothing to do with balance or approval and everything to do with identity, compliance, or administrative state.

Where offering rules run: the Compliance contract’s role in ERC-3643

Identity answers who a participant is, or more precisely whether their identity meets certain requirements. The Compliance contract answers a different question: *is this specific transfer allowed under this specific offering’s rules right now? *

That distinction is easy to miss, but it matters. An investor may be fully verified and still be unable to receive more tokens because the offering has reached a concentration limit, a geographic threshold, or another dynamic condition. So ERC-3643 separates investor eligibility from transaction-level compliance.

The specification describes the Compliance contract as being triggered on every transaction and returning true or false depending on whether the transfer respects the rules of the offering. This makes the compliance layer programmable. Rather than baking one jurisdiction’s assumptions into the standard, ERC-3643 provides a place where issuers can implement or compose the rules they need.

That modularity is one reason the standard is attractive for tokenized real-world assets. A tokenized bond issuance and a tokenized private equity fund may both need identity-gated transfers, but their exact constraints can differ. ERC-3643 does not claim there is one universal policy. It provides the hook where policy becomes executable.

The trade-off is that flexibility moves complexity into governance and implementation. The standard tells you where compliance logic goes, but not what the correct compliance logic is for every case. That remains an issuer and jurisdiction problem, and often an off-chain legal and operational one before it becomes an on-chain rule.

Why ERC-3643 standardizes agents, freezes, forced transfers, and recovery

If you approach tokens from a purely permissionless-crypto background, ERC-3643’s administrative controls can feel like a betrayal of the medium. But from the perspective of regulated assets, they are often the point.

The standard relies on ERC-173 ownership and defines an Agent role appointed by the owner. Agents can be given authority over operational functions such as minting, burning, freezing wallets or token amounts, pausing the token, executing forced transfers, batch operations, and recovery procedures. This is not an accidental addition around the edges. It reflects the fact that regulated instruments usually have lifecycle events and remedial processes that cannot be reduced to “the private key is law.”

A simple example is key loss. If an investor loses access to a wallet that holds tokenized securities, the real-world claim on the asset may still exist. The standard therefore requires a recovery system. In practice, the issuer or agent can, after whatever verification process they adopt, move the economic position from the lost wallet to a new approved wallet. The whitepaper describes this as burning or recovering from the inaccessible address and reissuing to a new one, while recording the event on-chain.

Another example is a legal or operational freeze. If a token represents a regulated instrument, the issuer may need to suspend transfers globally, freeze a specific wallet, or forcibly transfer assets under a court order or compliance event. ERC-3643 gives the issuer-side system the mechanical ability to do that.

Here the standard becomes clear about its philosophy: it prioritizes enforceable control over censorship resistance. That is why it fits tokenized securities and similar assets better than bearer-like crypto assets. The same feature that makes an institution comfortable may make a decentralization purist uncomfortable.

Can ERC-3643 tokens be treated like ERC-20 tokens in wallets and DeFi?

AspectTransfer ruleComposabilityCommon failure reasonsBest for
ERC-20Key + balance onlyHigh permissionless composabilityInsufficient balance or approvalPermissionless tokens and DeFi
ERC-3643Key + identity + complianceLimited with permissionless DeFiIdentity, compliance, or admin stateRegulated assets and RWAs
Figure 423.2: ERC-20 vs ERC-3643

The specification requires ERC-20 compatibility, and this is important for integration. It means ERC-3643 tokens can speak the language many wallets, custody systems, and infrastructure tools already understand. Balance queries, approvals, and transfer functions are still present in recognizable form.

But compatibility here should not be mistaken for sameness. The behavioral contract is different. A DEX, lending market, or wallet built on the assumption that any valid ERC-20 transfer between addresses should succeed may break or produce poor user experience when faced with ERC-3643. A receiver may appear to have an address like any other address while lacking the verified identity linkage required to accept the token. A transfer path that works at the interface level may fail at the policy level.

This is why ERC-3643 does not naturally inherit all of DeFi’s composability. Permissionless liquidity assumes open transferability. ERC-3643 deliberately constrains that assumption. The whitepaper notes that some market structures, especially pooled exchange wallets, are a poor fit because the issuer loses visibility into the actual beneficial holders. In regulated contexts, that is not a minor inconvenience; it can undermine the whole compliance model.

So the right mental model is not “ERC-20 plus some extras.” It is ERC-20-shaped infrastructure for assets whose transferability is fundamentally conditional.

What assets and use cases are best suited for ERC-3643?

The official project materials position ERC-3643 as a standard for tokenizing real-world assets, especially where holder eligibility and transfer controls matter. That includes securities such as funds, equities, bonds, ETFs, and loans, but the architecture is also presented as usable for other permissioned assets like some forms of e-money, commodities, collectibles, or loyalty instruments.

The common thread is not the asset category itself. The common thread is the need for restricted ownership and controlled transfer. If an issuer needs to know that only qualified or verified participants can hold the token, and needs those constraints enforced by the token contract rather than by a separate registry or platform database, ERC-3643 is aiming at that problem.

The standard is also described as EVM-compatible, which means implementations can be deployed on Ethereum-compatible chains rather than being tied to a single network. That matters in practice because institutions often choose execution environments based on cost, privacy layers, available infrastructure, or ecosystem support while still wanting the same compliance-aware token behavior.

And the concept is not only meaningful on EVM chains. A useful comparison comes from Solana’s Token-2022 extensions, where transfer hooks, freeze authority, and permanent delegate mechanisms can be composed to reproduce ERC-3643-like behavior. The implementation details differ (Solana does not literally run ERC-3643) but the deeper idea carries over: regulated tokenization needs the token transfer itself to consult eligibility and control logic, not merely expose balances on a ledger.

What are the trust assumptions and failure modes of ERC-3643?

Trust surfaceWho controls itMain riskCommon mitigations
Identity / claim issuersIssuer or trusted verifiersCensorship or single-point failureMultiple issuers; decentralize verifiers
Owner / Agent rolesToken owner and appointed agentsOperational abuse or centralizationMultisig or governance policies
Compliance modulesSelected policy implementersBuggy rules or DoS failuresCode audits and automated tests
Upgrades and codeUpgrade governance (admins)Malicious or flawed upgradesTime locks; multisig upgrade control
Figure 423.3: ERC-3643 trust and failure modes

ERC-3643 is often described as bringing compliance on-chain. That is true in one sense and misleading in another.

It is true because eligibility checks and transfer restrictions are enforced by smart contracts at the moment of transfer. Once the rules and registries are in place, an unauthorized transfer cannot simply slip through because an exchange forgot to consult an API. On-chain enforcement is real.

But the system still depends on off-chain and governance trust. Someone decides which claim issuers are trusted. Someone verifies investors in the first place. Someone controls the owner and agent roles. Someone decides how recovery requests are authenticated, how freezes are authorized, and when compliance modules are upgraded or replaced. The protocol makes these powers executable; it does not make them disappear.

This is the central trade-off. ERC-3643 reduces reliance on ad hoc off-chain enforcement by embedding policy checks into the token, but it increases reliance on administrative actors and identity infrastructure. In effect, it replaces the trust assumption “everyone can hold this token” with the trust assumption “the issuer and its delegated compliance system will manage access correctly and fairly.”

There are also implementation risks. The specification mentions external audits of the reference approach and implementation, but audits do not generalize perfectly across all deployments. A separate Hacken audit of Tokeny’s T-REX v4 codebase found issues, including a critical access-control and denial-of-service issue that was later fixed. That is a useful reminder of a basic fact: a compliance-heavy token system has a larger attack and bug surface than a minimal ERC-20, because it contains more modules, more privileged operations, and more cross-contract assumptions.

Upgradeability introduces another trade-off. Official materials emphasize upgradable smart contracts, which helps adapt the system to changing requirements, but that flexibility also means users must trust upgrade governance. If a token can change its logic, the holder is not only trusting current code but future administrators.

Quick summary: how to remember what ERC-3643 changes about token transfers

ERC-3643 is best understood as a change to the meaning of a token transfer.

In a plain fungible token, a transfer mostly means, “the owner authorized movement of balance.” In ERC-3643, a transfer means, “the owner authorized movement of balance and the ecosystem around this token agrees the movement is allowed.” That ecosystem includes identity registries, trusted claim issuers, claim requirements, compliance modules, and administrative roles.

Everything else follows from that. The standard remains close enough to ERC-20 to reuse familiar tooling, but far enough from ERC-20 to support regulated assets. It is useful precisely because it is not fully permissionless. And its main cost is also the same fact: the token becomes part of an administered compliance system rather than a neutral bearer instrument.

If you remember one sentence tomorrow, make it this: **ERC-3643 is ERC-20-compatible token infrastructure for assets whose transfers must be approved not just by keys and balances, but by identity and compliance rules. **

Frequently Asked Questions

How can ERC-3643 keep ERC-20 compatibility while still blocking transfers for non‑verified wallets?
+
ERC-3643 preserves the ERC-20 interfaces but makes transfer() and transferFrom() gated operations: the token contract queries identity and compliance contracts (e.g., Identity Registry and Compliance) and will revert a transfer for policy reasons even if balances and approvals are sufficient. This lets integrations see familiar ERC-20 calls while changing the behavioral contract of a transfer.
What is an Identity Registry in ERC-3643 and how does it decide if a wallet is eligible?
+
An Identity Registry links a wallet address to an on‑chain identity contract and metadata (like a country code) and exposes checks such as isVerified(), which are true only if the linked identity holds the required claims signed by trusted claim issuers (the article ties this model to ONCHAINID and ERC‑734/735-style claims).
Can ERC-3643 tokens be used freely in DeFi (DEXs, lending, pooled liquidity) like normal ERC-20 tokens?
+
Not reliably — although ERC-3643 is ERC‑20‑shaped, its permissioning breaks common DeFi assumptions: transfers can fail for identity or compliance reasons and pooled or custodial addresses may hide beneficial holders, so many permissionless DeFi primitives will not work without adaptation.
Who can freeze, force-transfer, or recover ERC-3643 tokens, and what does that imply for trust?
+
The standard defines owner and Agent roles (using ERC‑173 ownership semantics) that can pause the token, freeze wallets, mint/burn, execute forced transfers and perform recovery; this centralizes operational authority with the issuer and its agents and replaces the permissionless trust model with trust in those administrators.
How does ERC-3643 handle lost private keys (token recovery), and is the recovery process standardized?
+
ERC-3643/T‑REX includes an on‑chain recovery mechanism where an issuer or appointed agent can move economic positions from an inaccessible wallet (burn/recover and reissue to a new approved wallet) and record the event on‑chain, but the specification leaves the human/off‑chain governance and exact verification steps for authorizing recovery largely unspecified.
What are the privacy implications of using ERC-3643’s on‑chain identity and claims?
+
Storing identity links, claim structures, and administrative events on‑chain reduces anonymity: the spec recommends keeping personal data off‑chain but still creates permanent on‑chain links between wallets and identity attestations, and it does not fully prescribe privacy‑preserving measures.
Have ERC-3643 implementations been audited, and do audit results apply to all implementations?
+
There have been external audits of reference implementations (for example Hacken and other reports focused on Tokeny’s T‑REX), and those audits found issues that were fixed; however, the evidence stresses that audit findings were primarily about specific implementations and therefore do not automatically generalize to every ERC‑3643 deployment.
Is ERC-3643 limited to Ethereum, or can similar permissioned-token behavior be implemented on other blockchains like Solana?
+
ERC-3643 is specified for EVM-compatible chains and is intended to be deployable across Ethereum‑compatible networks, and analogous functionality (transfer hooks, freeze authority, delegates) can be reproduced on other platforms like Solana (e.g., Token‑2022), but the implementation details and guarantees differ by chain.
Does ERC-3643 remove the need for off‑chain KYC/legal processes and resolve cross‑jurisdictional enforceability?
+
No — while ERC-3643 moves compliance checks on‑chain, it does not remove off‑chain or legal work: the system depends on off‑chain identity vetting, selection of trusted claim issuers, governance of owner/agent roles, and jurisdictional legal processes, and the specification leaves many of those governance and legal‑enforceability questions to issuers and local law.

Your Trades, Your Crypto