HomeThe Standard

How ERC-3643 works.

What an ERC-3643 token relies on, the two checks it runs on every transfer, and the controls it adds to ERC-20.

What it is

An open token standard for assets that come with rules, like fund units, bonds and shares.

It is

  • Public and free to implement
  • ERC-20 compatible
  • Built on by many organisations

It isn’t

  • A blockchain
  • A product or a company
  • A regulator’s approval

ONCHAINID and the compliance module

Every ERC-3643 token relies on two things outside the token contract: an identity for each investor, and a set of rules for the offering.

Who the investor is

ONCHAINID

An onchain identity contract that each investor controls. Their wallets are linked to it, and it holds signed claims from verifiers such as KYC providers: KYC passed, accredited investor, country of residence. The documents behind a check stay off chain.

Because the identity belongs to the investor, not to one token, the same verified claims can be checked by every ERC-3643 token that trusts the verifier. Investors are verified once, not once per platform.

What the offering allows

Compliance module

A contract attached to the token that holds the offering’s rules: permitted countries, maximum number of holders, lock-up periods, investment limits. Rules are added as separate modules, so the issuer can change them without reissuing the token.

Every transfer must pass it. If a transfer would break a rule, it fails before anything moves.

Two checks on every transfer

  1. Who is receiving?

    The receiver’s wallet must be linked to an ONCHAINID that holds the claims the token requires, such as KYC, from a verifier it trusts.

    isVerified()
  2. Do the rules allow it?

    The compliance module checks the transfer against the offering’s rules, such as permitted countries, holder limits and lock-ups.

    canTransfer()
  3. Both passUnits move and the register updates.
    Either failsNothing moves.

Before both, the token confirms it isn’t paused and nothing involved is frozen.

What an ERC-3643 token can do that an ERC-20 can’t

A plain ERC-20 token has none of these controls once it’s issued. In ERC-3643 they’re part of the standard. The token’s owner, usually the issuer, appoints authorised agents to use them, and every action is recorded onchain. Try them in the demo.

  • Freeze a wallet

    Sanctions hit, legal hold or a compromised wallet.

    setAddressFrozen()
  • Freeze part of a balance

    Some units are pledged or in dispute.

    freezePartialTokens()
  • Pause the token

    A corporate action or an incident.

    pause()
  • Recover a holding

    An investor has lost their key.

    recoveryAddress()
  • Force a transfer

    A court order or a booking error.

    forcedTransfer()
  • Issue and cancel units

    Subscriptions and redemptions, singly or in batches.

    mint()burn()

Try it

Runs in your browser, in the same order as the reference implementation.

Send 250 units from Investor A in Luxembourg to a new investor in Germany.

Flip any condition, then send.

Result

From
To

  1. Token is activepaused()
  2. Wallets are not frozenisFrozen()
  3. Balance is free to movegetFrozenTokens()
  4. Receiver is a verified investorisVerified()
  5. The offering’s rules allow itcanTransfer()
Checking…

// not sent yet

Inside the standard

For technical readers. Seven interfaces in three parts, so the token, its holders and its rules can each change on their own.

Who may hold it

IIdentityRegistryLinks wallets to identities. Answers isVerified().
IIdentityRegistryStorageStores those links. Shareable across tokens.
ITrustedIssuersRegistryWhich verifiers the token trusts.
IClaimTopicsRegistryWhich claims a holder needs.

The token

IERC3643Transfers, agent controls, issuance. Extends ERC-20.
IAgentRoleWho can act as an agent.

The rules

IComplianceThe offering’s rules. Answers canTransfer().
The eleven requirements, quoted from the specification
  1. MUST be ERC-20 compatible.
  2. MUST be used in combination with an onchain Identity system
  3. MUST be able to apply any rule of compliance that is required by the regulator or by the token issuer
  4. MUST have a standard interface to pre-check if a transfer is going to pass or fail before sending it to the blockchain
  5. MUST have a recovery system in case an investor loses access to his private key
  6. MUST be able to freeze tokens on the wallet of investors if needed, partially or totally
  7. MUST have the possibility to pause the token
  8. MUST be able to mint and burn tokens
  9. MUST define an Agent role and an Owner (token issuer) role
  10. MUST be able to force transfers from an Agent wallet
  11. MUST be able to issue transactions in batch

Source: EIP-3643, Specification

History

  1. Created as T-REX (Token for Regulated EXchanges) by Tokeny.
  2. Proposed to Ethereum as EIP-3643.
  3. Merged into the Ethereum proposals repository as pull request 3643.
  4. ERC3643 Association founded as a non-profit in Luxembourg.
  5. Final status in Ethereum’s standards process.
  6. ISO standardisation work announced via ISO TC 307.

Questions

Does ERC-3643 make a token legally compliant?
No standard can do that alone. It gives issuers and agents the controls to enforce the rules they’re responsible for. Full answer
How is it different from ERC-20?
It extends ERC-20, so wallets can read it, but it only moves between verified holders when the rules allow. Full answer
Is it only for Ethereum?
No, but it is for EVM-compatible networks. ERC-3643 runs on Ethereum and on any EVM-compatible chain or layer 2. It isn’t compatible with non-EVM chains. Full answer
Who owns it?
No one. The specification is public domain and the reference code is open source. Full answer
How does it relate to T-REX?

ERC-3643 is the open standard authored by the founders of Tokeny and T-REX Network.

The standard began as the T-REX protocol (Token for Regulated EXchanges), created in 2018 and proposed to Ethereum as ERC-3643 in 2021. It is now governed by the ERC3643 Association, not by T-REX Network.

T-REX Network is built on top of the ERC-3643 standard. It is shared market infrastructure that keeps an ERC-3643 asset’s ownership and compliance state coherent across multiple EVM and non-EVM chains.

More answers in the Library